We are aware of continuous testing by entering additional and uninterrupted testing activities throughout the shipping pipe. In this way, we validate the quality of small changes carried out on the application, and detect and prevent defects at the beginning of the technical requirements and stages of the software design. Analyzing the results of implementing sustainable testing practices in my project, I can say that introducing even these elements helps us increase the speed of the test process of 25% on average and improve the quality of the software by 30%.
Below, I summarize the foundation of the Sapizon approach to sustainable testing and register the practices we apply when preparing continuous testing for customers who beat QA Sapizon.
Continuous testing
Sciencesoft Approach for Sustainable Testing
I divide all the continuous testing activities into what we took before the actual development began and those we combined directly in the development process.
Continuous testing approach
Preparation activities
Splitting software into a module
Large and combined applications consist of several components that need to be compiled and used together cause difficulties for continuous testing. To get fast feedback about the quality of applications like that, we at Sapizon broke it into a module. We reward them based on functional similarities (for example, dividing electronic stores into the module as a user account and catalog management, checkout and payment, analytics and reporting, etc.) and prioritize them based on business risk to test and use it independently.
Take an optimized approach for infrastructure organizations
The incremental properties of continuous testing require a special approach to infrastructure organizations, namely preparing continuous integration / continuous shipping pipes. CI / CD pipes allow us to launch unit tests and API and UI tests automatically throughout the life cycle of software delivery and trigger this test without human involvement. My colleague Andy Lipnitsky, consultant Devops in Sapizon, said that his preference tool to prepare continuous integration / continuous shipping pipe was Jenkins, Bamboo, and good.
Continuous testing practices are included during the development
Increase the share of testing at the unit and fire level
The software can be validated at the unit, fire, and UI levels. And in the process of traditional testing, a larger test section lies in the test team that manually validates software at the UI level. In such cases, the software testing pyramid looks like this:
Traditional testing process
As for sustainable testing projects, in Sciencesoft, we shift the larger part of the testing activities to the left, involving the development team in the QA process, which makes the software testing pyramid look like this:
Continuous testing process
My colleague Vadim Belsky, the Head of Web Development in Sapizon, explained the need to increase the volume of testing units: "Relatively easy to write and take a few seconds to be executed, unit tests provide reliable insights about the quality of changes introduced to an application and help prevent bugs from entering the stage Next from the shipping cycle. To ensure that the results of testing units are reliable, we store unit tests regularly updated and put it in the practice of reviewing the general application code. "
Also, in projects with sustainable testing characterized by short release cycles and frequent changes, UI tests are quite difficult and expensive to be maintained. Thus, we use a fire test as a primary means to validate changes made to the application logic. Depending on the specific project and application, I can choose to test the Manual or Automation testing Company with API or choose a combination of both.
Comments