Author : Rohan Ambasta
Date : May 30, 2023
In today’s fast-paced digital world, Salesforce has become a critical tool for businesses to manage customer relationships and drive growth. Globally, increasing number of companies continue to adopt Salesforce as their
primary customer relationship management (CRM) platform. That being said, managing the high volume of testing for Salesforce applications is a big task in itself. Salesforce testing is resource intensive and has its own set of challenges. Often, automation is proposed as the solution to these challenges but, on contrary, automation has its own challenges. Let’s try to look at critical Salesforce test automation challenges and how to handle them.
Challenge #1: Huge scale of implementation
Salesforce CRM implementations happen across the globe. Imagine a large manufacturing company having their
presence across five continents. They will be having multiple tracks – each for a continent or a country running
simultaneously. While 40-50% of the implementation remains constant for each of the tracks, the remaining part is
customised according to the local policies, laws, regulations, taxation, government compliance etc. To consider even
a simple scenario, if a country or region has its different currency, that Salesforce implementation has to be tweaked
to handle that particular currency. Same goes with complex taxation rules, product bundling, varying import duties
on raw materials, etc. To cut it short, it is just impossible to describe the complexity of a global Salesforce
implementation. The volume of testing is proportional to the volume and complexity of the implementation.
The story does not end with one time implementation. During the course of operation, continuous change requests
and enhancements are inevitable. New user stories will be implemented. New system level changes would be
introduced. This means that there will always be a large number of scenarios to be tested for the quality of release
and the impact of change.
Many organisations do not estimate for this volume, scale and speed and as a result, defects are leaked into the UAT
Challenge #2: Dynamic UI elements:
Since Salesforce processes are highly customised and specific to regions, products, etc. they use dynamic UI
elements heavily. Dynamic UI elements lack a fixed ID and lead to script failures. In addition to dynamic UI elements,
shadow DOMs also make Salesforce test automation challenging. Browsers and their versions add to the overall
complexity of Salesforce test automation. ALl these factors combined make it very difficult to make automation
consistent and scalable.
Challenge #3: High reusability:
Time is you enemy. Why? Tracks, environment As we saw earlier, for a Salesforce implementation across multiple
tracks, 40-50% of the test cases are common whereas rest of them change as per the context. This essentially means
that you are wasting a lot of time and energy by automating the common 40-50% of the application across every
track. In simpler words, during a global Salesforce implementation, a lot of redundant and duplicate testing will
happen just because the testing tool lacks reusability features.
You can automate at speed only if you have superior automation design.
Challenge #4: Complexity of environments
We just now saw how mammoth sized Salesforce implementations are. Imagine that size getting multiplied by a
factor of 5 or 6! During any Salesforce implementation, there will be multiple environments like Dev, Staging, Pre-production, Production etc. Through the testing lifecycle, every new change will make the application go through
Let us relook at the manufacturing company we discussed above. Imagine it has its Salesforce implementation going on in 7 tracks. Each of the tracks will have these five to six environments across which the testing would be done. At each of the environments, there is a chance of defects leaking into the next one. To ensure quality and reliability in such complex setup is a big challenges in itself.
Challenge #5: Flows cutting into multiple applications:
The sheer number of applications integrating into Salesforce is staggering. Imagine if the sales representative of this
manufacturing company has to come up with pricing of a customised machine for a client. The task looks simple
but it passes through many systems. Prices of components would be picked from SAP, cost of labour hours from
some other similar system. Data related to discounts or special concessions will be stored in another system. In
short, any particular process will flow through multiple applications. Even if a single change is made, one has to test
it not only for Salesforce but also for each of these other applications. This makes Salesforce test automation very
Legacy applications, PDF, mobile, single flow – infographic.
Challenge #6: Attrition and human dependency:
You must have realised that Salesforce automation will require a wide pool of talent specialising in domain
knowledge and programming language of your choice. There is a direct dependency on them for the thousands of
lines of code that they have written to automate the testing. Like change requests and enhancements attrition is
also enviable. The only way you can protect your investment in test automation and not lose the momentum and
quality of testing is by making test automation 100% scriptless.
Challenge #7: Speed of changes: Combine with reusability.
In any test automation project, changes are common. But when we talk about Salesforce in specific, the speed of
changes is just astounding. This is because of multiple sources of changes. A change at any of these levels will call
for testing everything:
– Change in Salesforce platform itself
– Change in any of the integrating applications
– Business logic level changes
– Changes in user permissions
– Changes in laws or regulations
The list is ever growing. To meet the speed at which these changes come and testing them quickly within timelines
is a daunting task.
With the given complexity of Salesforce automation, it cannot be left only to experts within the organisation. One
needs an end-to-end platform which ensures superior test design, execution and reporting. These are some of the
essential attributes of a truly amazing Salesforce test automation tool:
End to end testing capabilities:
As we discussed, the process flow in Salesforce cuts across multiple applications which widens the scope of testing
to include those applications as well. If the tool is not able to test across these integrations, testing process becomes
very complex and difficult to execute. Ideally, the tool that you use should be able to execute tests end-to-end across
all the integrations.
Ability to run tests on multiple environments:
Imagine, if your tool supports only one environment, your testing process will be linear. Test automation tool for
Salesforce should allow you to test simultaneously in multiple test environments.
40-50% of the applications remains the same across multiple Salesforce implementation tracks. The testing tool
should allow you to quickly build blocks which can be built once and used multiple times for the common part of
As you land on our website, you might notice a notification about cookies. No, not the delicious kind that grandma used to bake, but the digital ones that help us improve your browsing experience. Don’t worry, you’re in control! You can manage your cookie preferences and decide which ones to allow. It’s like being the master chef of your own digital kitchen.