Regression Testing

Regression Testing
Frequently, developers want to fix an issue in their product and they will introduce a code change in one part of their software that may result in a breakage to other parts of their total solution; or they may want to enhance their product with new features to make it more attractive or more powerful. Doing so may result in the introduction of new faults in their software. Developers have to make sure that both breakage scenarios are avoided and no new faults are introduced. The purpose of regression testing is to confirm that a recent change in a single software module did not adversely affect existing features.

Regression testing is a suite of test cases that were run in the past and were successful in testing a total system or set of components. Many times, when a bug is fixed, a new test case is created to reveal the bug and to test the changes that were supposed to correct the issue.

Usually, this new test case is added to the regression testing suite to ensure that a new bug is not introduced back in software.

Regression testing can be used not only to discover the “correctness” of the software, but also to track if quality is improving.

Integration of Twister with a continuous integration system provides a powerful combination to carry out regression testing. In this configuration, the suite of test cases can be executed every time a new code change is introduced to the software and any adverse issue introduced is discovered in very short time leading to lower costs to maintain the software and improved quality.

Over the time, the number of test cases included in a regression suite can become very large and the time needed to complete the execution becomes quite lengthy. Twister can manage this scenario by execution test cases, in parallel, on distinct test beds that are configured in the same way, thus shortening time to completion and allowing large amount of test cases to be executed in a reasonable amount of time.