This post was written by Radhika Manne, Lavanya Pulivarthi, and Pat Meeker.

Organizations rely on Salesforce to support a huge array of CRM and customer-focused functions including marketing, sales, analytics, customer service — the list goes on. Salesforce is a key business enabler for many organizations world-wide; this cloud-based application is scalable, highly customizable, and frequently integrated with many other applications.

With cloud-based applications, the time to tackle application changes is critical because these applications are updated more frequently. With apps like Salesforce, an organization has less handle over the timing of software changes and where those software changes occur. The timeline to manage changes in the cloud, and across the enterprise, can be very short — sometimes just hours. Testing changes and their impact on business processes is even more critical and needs to be done faster than that of on-premise applications because updates and upgrades happen on someone else’s schedule.

The Importance and Strategy of Testing

Salesforce testing can provide the best possible customer experience. It means that testing and quality are continually evaluated and promoted as part of the process from the very beginning, ensuring a quality product is delivered. Manual and Automated testing are the two types of testing we have currently in our testing process.

Involving Quality Engineers (QEs) and developers on the same feature team is great for collaboration and quick feedback loops. While developers focus on developing new features and writing unit test cases for at least 75% of code coverage, the QE team can focus on functional testing to strengthen the quality of the application. They are capable of identifying risks and mitigating them where possible, along with prioritizing all tasks that could help deliver a shippable product at the end of every sprint. The tester’s instinct inspires them to think wide with negative scenarios as well. They give continuous feedback to the entire development team on the status/progress of the product being designed. With the only focus being quality of the product, the QE team concentrates on documenting issues, bugs, and even negative testing — all while continually evaluating quality best practices.

Current Challenges of Manual Testing

  • Time: Comprehensive tests take days — if not weeks — depending on the size of the test suite and complexity of tests. Time is the constraint.
  • Coverage: Even the most thorough manual testers can’t test each and every test case in the given time. Sometimes testers may opt for priority based testing.
  • Accuracy: With many moving development changes, even thorough manual testing may not detect emerging regressions.
  • Repetitiveness: Repetitive smoke tests and regression tests — sometimes up to 2 or 3 times during the release/delivery process — can take a significant amount of time when timelines are critical.
  • User configurations: Supporting multiple versions of multiple browsers, on multiple platforms and devices, means a huge number of permutations to cover.
  • Accuracy: When working with test data, manual entry can have typos.
  • Speed: Test automation increases speed in the delivery process. This is especially true when a hotfix is needed. If it’s not possible to do a full manual regression in the shorter timeline, automation can make it possible.

Automated Testing

Test Automation can execute these routine, monotonous, and repetitive cases for the team. Automated testing needs the skill-set of a person who can develop/design tests. Initially, it is going to take some time to develop tests and make them functional. Once the tests are developed, the payback is continuous due to the costs of running the tests being near zero.

Some of the important types of tests that can undergo automation are:

  • Smoke tests for any application
  • Regression tests for any application
  • End to end tests for any application
  • UX tests for any application
  • Role-based tests in Salesforce application
  • Test data creation in Salesforce application/any application
  • Multiple mobile devices testing
  • Multiple browser testing

Our assets that help you drive automation:

  • Test data creation
  • Built-in testing framework for Salesforce projects
  • Built-in framework for hooking up tests for CI process like CircleCi
  • Run tests in remote environments using device cloud services

Types of automation we support:

  • UI Testing
  • API Testing
  • Performance Testing

Most of the challenges related to manual testing are easily addressed by automation. Automated tests do not make typos or fat-finger buttons, have trouble handling permutations or high volumes, nor do they necessitate compromising on coverage. Rather, automated tests allow for faster execution and results. All of this together means more meaningful, reliable, and comprehensive feedback for CodeScience teams sooner in the iteration cycle.

When taking advantage of the benefits of automation, our teams can be confident that regressions have been identified and address them earlier. This allows the entire team to optimize time management in the sprint, avoid stress related to deadlines, and even experience increased morale.

When stress happens, mistakes happen — so it follows that a happy team means better quality software products delivered for our clients. That’s just part of the CodeScience advantage. Test automation is one way our QE team helps contribute to this.


Need help automating your testing, or have some questions on building your next project? Feel free to drop us a line to talk AppExchange development and growth!