Editor’s note: Whether you’re challenged by critical bugs sneaking into production or missed iteration deadlines caused by a weighty volume of regression testing, ScienceSoft can solve these issues for you. Read on to get some valuable ideas about organizing regression testing in a project and turn to our software testing services.
In software development, code changes are common while a change to one feature may influence another feature (or features) in the most unpredictable way. Hence, to ensure the high quality of software, regression testing must be included in the testing scope.
Regression testing verifies that recent code changes haven’t altered or destroyed the already existing functionality of a system. Regression testing examples include iteration regression and full regression, and both can be covered with manual and automated test cases.
In this article, we share our 30-years software testing experience and show an example of how regression testing was run in our project featuring an image processing application. We will illustrate how regression testing works in real life and explain how to balance manual and automated regression testing efforts.
The project featured an iOS image processing app for a company specializing in processing, storing, printing and displaying digital images. The app had to be integrated with a branded mini-camera that allowed iOS device owners to take professional photos.
The project team followed the Scrum methodology with two-week sprints. The project lasted for about three years and involved 4-12 specialists at different stages, including 1-5 testing engineers.
Manual regression testing example
Manual regression testing was performed at the end of each iteration. Regression testing fully relied on test cases written during the development phase. The testing team ran the so-called sanity testing, an extensive test suite comprising about 200 test cases. The testing team regularly revised the test suite to delete obsolete or inefficient test cases. This helped to keep the regression test suite relatively stable (200 – 220 test cases) and avoid its unnecessary sprawling.
In the course of the project, one of the most frequently changed features was photo gallery management. And regression testing revealed that related functionality suffered with each new adjustment. Another issue found was crashed animation during layout changes (portrait – landscape – portrait).
Automated regression testing example
We see test automation as the way to sift more defects with wider test coverage and ensure faster releases. In the project under consideration, automated regression testing saved time in iterations and found bugs that went unnoticed during the manual testing phase, for example, the faulty functioning of the Flash and Timer buttons. One of the reasons why test automation allowed revealing these bugs was timeouts (waiting periods) characteristic of automation. If the waiting period was over and a test didn’t pass, the test was marked as failed. Then the test was run again until it passed. This is often the only way to detect occasional bugs. By comparison, in manual testing, if a bug doesn’t appear at once, it will probably remain unnoticed, as no test engineer would repeat manual tests endlessly.
Streamline your regression testing
Our experience proves that the key to regression testing success is to consider project specifics and choose a suitable ratio of manual and automated testing. If, despite all your efforts, regression testing still remains an obstacle to your project’s success, turn to ScienceSoft for software testing services.