Cases

Comprehensive Test Automation

Written by Forte Group | Apr 10, 2024

Client:
Global Telecommunications Company

Industry:
Telecommunications

Technology and Platforms:
System Technologies: Salesforce Apex, Salesforce Object Query Language (SOQL). 
Solution Technologies: JAVA, Selenium, Jenkins, Heroku, NodeJS and Azure Cloud Services.

Technical Challenge

The client's Salesforce instance was highly customized, which resulted in long quality assurance (QA) cycles involving numerous QA engineers. The Salesforce platform presents challenges in terms of release, deployments and testing. We needed to implement and extend a test automation framework in Salesforce that reduced the amount of manual regression testing effort, while remaining maintainable. In addition, the organization had difficulty coordinating manual and automation testing efforts across separate teams and projects, while establishing a consistent quality process.

Salesforce’s Lightning UI interface is a modern user experience framework specifically tailored for the Salesforce ecosystem. It streamlines processes and enhances productivity with a range of custom and reusable components. However, this sophistication comes with its own set of challenges, especially when it comes to automating tasks and testing customized interfaces. We were faced with complexities that make automation in Lightning UI challenging, including:

  • Dynamic Rendering
  • Complex Document Object Model (DOM)
  • Use of iFrames
  • Shadow DOM
  • Lack of Element IDs
  • Custom Elements

Approach and Solution

We delivered a comprehensive and custom test automation framework that addressed the challenges presented by the Salesforce Lightning UI interface. We shifted to a component-based test automation approach, which reduced the complexity of the tests and increased maintainability. Scripts were created to automate the process of setting up a new/refreshed development environments for testing. 

We created a distributed test execution approach in Jenkins to reduce the time that automated tests ran. In addition, we created a test definition interface to allow manual testers to write automated tests and execute them from within the Salesforce platform. Finally, we used custom Salesforce Apex components, Salesforce Object Query Language (SOQL) and Rest API calls to set up data and reduce the amount of required UI navigation steps.

Results and added value

Our client realized the significant benefits, including:
  • Test automation execution time was reduced from 12+ hours to 2.5 hours by using parallel execution in Jenkins and distributed execution in Azure.
  • Release cycles were reduced from week-long regression testing to 1-2 days by leveraging the fast feedback of nightly test automation executions.
  • Test environment setup was reduced from weeks to hours with automated development organizations and data setup scripts.