Salesforce blends powerful built-in capabilities with the flexibility to create your own low-code capabilities. But as any seasoned developer will tell you, building applications is the easy part. The real challenge is ensuring they don’t break over time and having robust protections in place to allow you to continue to build – and experiment – without fear of failure.
This is why testing, especially automated testing, is so important. Testing is a key aspect of achieving digital transformation. No matter the size of the company, if teams aren’t emphasizing testing, they won’t achieve the speed and reliability of changes they need.
Interested in knowing more about how teams are managing their testing processes, Copado surveyed more than 275 Salesforce professionals, who shared details of their teams’ strengths and weaknesses on testing. Here are a few big takeaways:
Testing needs to happen at many levels, from unit tests to cross-system UI testing. Salesforce unit tests are helpful, but the unit testing culture among Salesforce developers is far weaker than in other languages like Ruby.
Salesforce mandates 75% unit test code coverage to deploy to production, but because continuous integration wasn’t common on Salesforce until recently, most Salesforce developers don’t fully appreciate the importance of these tests. So, it’s common to see sloppy tests that meet the 75% threshold but provide little or no actual protection.
UI testing is also tricky on Salesforce, especially on their newer UI, Lightning. Lightning uses a shadow DOM (document object model) for security and performance purposes, but that makes it hard for tools like Selenium that rely on the DOM.
The underlying DOM is also subject to change without warning, which can make tests fail even if the actual system is working properly. This means that UI testing tools for Salesforce need to have significant intelligence built-in.
Salesforce is also frequently integrated with other systems like ServiceNow, SAP, and Oracle Financials. This means that testing tools need to be able to test all of the connected systems to ensure end-to-end functionality.
As a low-code platform, Salesforce development can move quite quickly. The underlying Salesforce platform is also updated three times a year. These faster software cycles mean more changes and updates that cause unwelcome surprises down the road if you don’t have good tests in place.
System behavior can also depend on the underlying data in the system. So test data management is important, especially when working with complex apps built on top of Salesforce like Salesforce CPQ, Veeva, and nCino.
Lastly, Salesforce is designed to give low coders a boost. This means that ideally, testing tools should be easy for non-coders to use also.
As Salesforce matures in scope and sophistication, organizations need to be ready for high-quality, cross-cloud customizations and verify third-party integrations across other technologies and platforms.
Teams in our survey (41%) said they don’t have enough time to sufficiently test all changes before a release. Our analysis shows that teams feel pressure to deliver features because of aggressive project timelines and that development takes longer than expected.
Testing, ultimately, gets thrown on the backburner as a result. Teams often fail to give testing the respect it deserves, and relegate it to the end of a sprint, rather than following test-driven development or other methods of shifting quality left.
Low-code platforms like Salesforce will continue to dominate the digital landscape as every business migrates its infrastructure to the cloud. The speed and ease of building on these platforms is unmatched, but they require robust testing to make sure changes don’t break existing systems.
Low-code platforms remain in the early stages of testing. Based on Salesforce’s research on its professionals, the majority of teams still mainly rely on manual efforts. But the rise of DevOps and the acceleration of change means that automated testing is the next frontier for today’s digital businesses.