An enterprise faced significant challenges in maintaining the efficiency and reliability of their Salesforce operations. The existing process for making changes to the Salesforce system was manual, slow, and tedious, which hindered their ability to react quickly to business needs. The objective was to build a robust and efficient process for releasing changes to Salesforce, addressing the organization’s slow and error-prone release process.
The deployment activity was manual, labor-intensive, and delayed due to waiting for results to be manually verified, resulting in slow feedback and resolution. The client needed a way of working that tightly coupled its deployment approach to an automated verification framework to streamline their deployment processes and ensure consistent, reliable results.
High-level Business Value
By implementing Sentify’s automation pattern, the client achieved significant operational efficiency and reliability in their Salesforce operations. Automation reduced manual effort, increased test coverage, and provided rapid defect identification. This led to cost savings, faster time-to-market for updates, and enhanced confidence in their Salesforce environment. Sentify’s expertise in Salesforce deployment and Continuous Integration empowered the client delivery team.
Strategy and Approach
Getting Started: A Quick Proof of Concept
Sentify initiated the project with a quick proof of concept, automating an initial scenario within a few days. This initial phase was driven by UI tests and soon incorporated API interactions, making the tests more robust and comprehensive. The rapid success of this phase demonstrated the potential of automation and set the stage for broader implementation.
Building a Comprehensive Framework
The test automation framework was built using several key components:
-
Ruby: Chosen for its modularity, flexibility, and expandability. Ruby was also widely used in Ruby on Rails systems, promoting a common language between developers and QAs.
-
Watir: This Ruby gem facilitated testing interactions across multiple web browsers, ensuring the UI behaved as expected.
-
Backend Integration: The Salesforce REST API was used to validate data, set it up, and tear it down. SOQL was utilized within these REST requests for CRUD operations and business rule exercises, while SOAP was used to test data imports. The Gmail API was to validate emails.
-
Cucumber and RSpec: Cucumber described user stories in business-friendly terms, making it easy to communicate with stakeholders. RSpec was used for data-driven tests, providing clear and concise representations of expected system behavior through custom matchers.
Salesforce Implementation: Core Business Scenarios and Permission Checks
The initial proof of concept included creating a suite of 20 core business scenarios written as Cucumber specifications. These tests performed actions on the browser and verified that the expected data appeared in the back-end, UI, and emails. Additionally, 36 RSpec examples checked user permissions for viewing and reassigning cases, conducted purely through REST API integration tests. One notable achievement was creating tests that checked around 60 fields of a file sent to finance, ensuring data accuracy and compliance.
Leveraging Scripts for Efficiency
Automation scripts were created to aid manual testing by generating data in specific states, significantly reducing the manual overhead of test preparations. A particularly impactful success was the ability to create over 200 cases with bank account details linked to a payee for a finance file in less than 10 minutes, a task that would have taken several minutes per case manually. These scripts enabled rapid defect identification and retesting, which would have been impractical with manual setup.
Streamlined Test Execution with Jenkins
Jenkins was configured to run tests nightly and upon every code change to the test suite. This setup ensured that any issues introduced in the previous day’s code changes were immediately identified. The plan was eventually to run tests after every code change once integrating developers’ code into source control was complete. This would provide continuous feedback and assurance to developers, as the full regression suite took less than six minutes to run.
Empowering the QA Team
Over time, the primary QA responsible for testing Salesforce was trained to add and update tests, greatly reducing reliance on manual testing. This empowerment led to more frequent and thorough regression testing. Additionally, the setup supported automated tests and scripted data setups, further streamlining the testing process.
Results
The comprehensive, high-value consulting engagement with Sentify lasting over a year significantly enhanced the efficiency and reliability of Salesforce test automation at this client. The automation solutions reduced manual effort, increased test coverage, and demonstrated the strategic value of automation, leading to greater operational efficiency and confidence in their Salesforce operations.
Summary of Approach
Sentify’s approach involved a quick proof of concept followed by the development of a comprehensive automation framework. The implementation included core business scenarios, permission checks, and leveraging scripts for efficiency. Jenkins was configured for CI, and the team was empowered to manage and update verification, reducing reliance on manual checks.
Conclusion
Sentify’s approach to Salesforce deployment and verification not only enhanced delivery efficiency and reliability but also demonstrated the strategic value of automation. By reducing manual effort and increasing coverage, Sentify helped this client to achieve greater operational efficiency and confidence in their Salesforce operations. This case study underscores Sentify’s commitment to delivering innovative, impactful solutions that align with client needs and drive long-term success.