Salesforce provides standard applications such as Sales and Call Center. It provides the flexibility to customize the standard applications to match the way you work. In this regard, you can also build your own on-demand applications by grouping standard and custom tabs into new custom applications. In recent times, software testing has become a critical aspect of a successful application development. It has a strategic role to play in ensuring the quality of the application meets the business needs. Let’s look at some of the key areas to focus while testing Salesforce Applications:
- APEX Classes & Triggers Testing
Salesforce Functional testing differs from other applications testing in the execution of APEX Classes & Triggers.
Salesforce Programs (APEX Classes & Triggers) testing must be executed at the code coverage level as it is essential to test the written test classes for APEX classes and triggers to move from sandbox to production. The minimum code coverage must be 75%. This is to ensure that the code coverage is met as per the SFDC standards and eliminate maximum defects at the early stage of testing life cycle.
- SFDC Governing limits Testing
As SFDC is a multi-tenant environment (resources are shared), it sets the governing limits to ensure the application overcomes the performance issues and doesn’t monopolize the shared resources, to make the system robust and ensure effective running. Below are the Platform Apex Limits in order to avoid run time errors while executing.
Here are the Key limits to consider:
Number of SOQL queries: 0 out of 200
Number of query rows: 0 out of 50000
Number of SOSL queries: 0 out of 20
Number of DML statements: 0 out of 150
Number of DML rows: 0 out of 10000
Number of callouts: 0 out of 0
Number of Email Invocations: 0 out of 10
Number of future calls: 0 out of 0
Number of queueable jobs added to the queue: 0 out of 1
Number of Mobile Apex push calls: 0 out of 10
- Regression Testing
As part of the regression testing for salesforce applications, we design the test cases to test whether the code and config releases affect existing user process with in the system. Automated software testing can execute those routines, monotonous cases for you, freeing up your testing resources to concentrate on more interesting cases in your application. As part of a well-constructed automated test pyramid, you may want to have some level of UI-based automated tests. For web applications, that would mean automating the browser. While executing a project for one of our clients, we developed the regression cases in Selenium using our VTAF Framework. While executing this project in Agile, multiple quick releases had to be released within a short duration. By using this regression suite, we were able to achieve the following:
- reduce run time errors
- increase ease of maintenance
- increase focus on reusability
- customize reporting
- handle error and recovery better
- Performance Testing
Performance testing measures performance under a particular workload, and includes both stress testing and load testing. In Salesforce, we should go for Performance test only in cases of highly customized code or those having large transactional volumes. Following are the four primary goals to be targeted for performance testing of the Salesforce applications:
- Ensure that custom application or business logic meets your desired response times
- Determine whether your estimated transaction throughput of anticipated loads is accurate
- Maximum CPU time: 0 out of 60000
- Maximum heap size: 0 out of 12000000
Before considering performance testing, test specific features to identify performance benchmarks for your requests. Testers can use the Developer Console, Workbench, and debug logs to identify performance issues associated with Visualforce pages and Apex classes of application.
- Compatibility Testing
Compatibility testing is the process of reviewing and comparing the website functionality and styles across multiple browsers and different operation systems and mobile. In Salesforce, one of the main aspects of cross browser testing is to keep in mind the CSS styles are rendered differently across browsers/browser versions, in terms what is supported and what is not. Testers need to focus on cross browser testing to ensure:
- Consistent, stable cross-browser/platform rendering and functionality on all website pages.
- Simplified website maintenance and updates
- Ease of use/viewing for end-users
- Increased customer conversion ratio
By implementing the above 5 defined approaches, one can target to achieve the best testing results, with HIGH quality in no time, while testing any Salesforce application. This will ensure the required testing coverage specific to Salesforce applications are addressed well in advance to avoid last minute sudden surprises.