Performance testing integration into CI/CD process
Performance testing can be conditionally divided into 2 types of testing:
Resource use monitoring and System behavior evaluation under different types of load. These types of testing require not only various testing tools and techniques, but also differ in approach.
Evaluation of the system behavior under various types of load is a classic application testing scheme and can answer the questions:
- At what maximum load (simultaneous users, execution of complex scripts) the system will continue to work without failures?
- What is the average asset loading time?
- How long does the application work at a consistently high load?
As a rule, in order to build a test plan for load testing, we prepare a set of scenarios, generate test data, estimate load, prepare a dataset of expected results, and help deploy a prepared test environment.
Performance monitoring is both application log parsing and utilizing environment monitoring solutions to gather information about peak resource loads and assess the possibility of repeating the scenario in which peak loads occur. Initial monitoring during system testing allows us to later repeatedly reproduce stress issues to establish the root cause and develop mitigation measures.
Of course, application performance testing is always automated testing.
In our opinion, the optimal scenario for enabling performance testing in a CI / CD pipeline is to add a few additional steps to the pipeline:
- Adding static code analysis tools to build pipelines.
- Adding resource use monitoring to system testing. Performing automated system testing in and of itself generates a load on the system. With high coverage of existing automated system tests, the inclusion of resource monitoring will make it possible to see system load peaks in the early stages of testing.
- Execution of stress testing scenarios on a dedicated test environment. Usually, it requires prepared mocks for all 3rd-Party systems and a large volume of test data.
- Enabling resource use monitoring on the production environment. The operation of a “live” system often differs from automated testing scenarios. Obtaining information about peak system load will make it possible to optimize the use of resources by the application in a timely manner and help avoid system failure.
Thus, introducing performance testing already at the stage of project build and in the form of monitoring after system testing scenario execution, we “shift tests to the left“, enabling us to find resource use problems in the early stages.
By preparing a dedicated stress testing environment and generating large volumes of production-like data to execute performance testing scenarios, we “shift testing to the right” to obtain the most accurate results.
Managed Performance Testing Service
It is very likely that there are no testers with good experience in systems testing under load in the project. We propose to outsource this type of testing to the Tenendo team.
Why outsource Performance Testing to us:
- We will provide the best specialists “on-demand”.
- We will perform Performance Testing if you don’t have automated testing in the project.
- We will provide a test plan and report after completion of the work.
- We will undertake the preparation of test data
Details of how we deliver Managed Testing Services can be found in the section Managed Testing Services Delivery