Feb 13, 2020

4 Tests You Need In Your Salesforce Development Lifecycle

Tom DeMarco said in his book PeopleWare Productive Projects and Teams that “Quality is free, but only to those who are willing to pay heavily for it”. My interpretation is that quality is not given but earned. In the stress of budgets and deadlines, quality is an after thought. Software quality is earned by taking the time to properly test code before deploying it into Production.

There are four types of testing any large development project should perform before being able to be deployed; unit testing, integration testing, system testing and user-acceptance testing.

Unit Testing

Unit testing consists of testing individual components or procedures of a new application. This testing is typically performed by the programmer and not a tester. This type of testing requires detailed knowledge of the purpose, requirements, design and code.

Unit testing save times and stress later in the development. It allows developers to find bugs early and makes fixing them less costly. It is easier to find an error in a simple module than trying to locate it in a full program. It simplifies integration as well. With verification of individual units, there is less errors to expect during the integration stage. 

Integration Testing

Integration testing is combining individual modules to verify functionality. This type of testing builds a “working” version of the application by incrementally putting modules together. The objective is to ensure that as modules are added, functionality remains intact. It is necessary to prove that the modules can work in unity.

Integration testing provides a technique for assembling an application and uncovers errors as modules are integrated. Integration testing can be performed when relevant modules are completed. There is no need to wait until all modules are completed which helps in reducing testing time. Integration testing is more reliable and easier to isolate failure than waiting for the full app to be completed to start testing. 

User Acceptance Testing

User Acceptance Testing (UAT) is conducted by the end user. Its main focus is to verify/accept that the features meet the requirements and fits into the user day to day process. 

There are two main reason for performing UAT.

  • Developers have created the features based on their understanding of the requirements.
  • Requirement changes may not have been communicated to developer.

UAT is the most important phase in the overall testing as the actual end user get to validate the new development. In the past, UAT was one of the final steps before deployment. But agile methodology has increased customer interaction with shorter deployment and continuous customer feedback. It is now conducted earlier and more frequently in a feature build. 

Performance Testing

Performance testing demonstrates the new feature’s speed, scalability, and stability under the weight of all the data inside Production. This is performed inside a Full sandbox as this is the only sandbox without storage limits. Speed, whether it is response time or load time, is the biggest culprit that can hinder performance. Performance testing identifies long load time, poor response time, and bottlenecks before deploying into Production. A slow running app with reduce user adoption. 

There are different types of performance tests and each serve a specific purpose. 

  • Load testing – tests the feature’s ability to perform under large user loads
  • Stress testing – tests the feature against extreme workloads to see how it handles high traffic and processing
  • Endurance testing – tests the feature’s ability to handle expected loads over an extended period
  • Volume testing – tests the feature’s performance under various data volumes

Conclusion

Performing multiple types of testing can ensure good ROI on a project. It will help to reduce downtime and increase user adoption. Be sure to accommodate time in your development for proper testing.  It might take more time in the development stage, but it will save time and money on future support and maintenance. Automation and sound DevOps processes can help to shorten the necessary time for testing. It’s hard to put a price on quality, but not done thoroughly, it can cost you. 

Topics: Uncategorized ,

Subscribe to Email Updates

[pardot-form height="300" id="123" title="Blog Subscription"]

Share the joy

  •  
  •  
  •  
  •  
  •  
  •  
  •