A technique adopted to validate the unmodified portions of a software product ensuring that no new bugs have arrived and that they remain intact and unaffected is known as regression testing. It can be classified as one of the software maintenance activities, which is carried out by selecting appropriate test selection algorithms, to reduce the time taken to test the changes that took place on account of feature addition or modification.
"Regression testing" can be a time consuming and lengthy process as it involves implementation of test cases for the whole program repeatedly unless we are sure that the software product is error free. The reason that a 'regression test selection' process is undertaken is due to the fact that a handful of test cases will actually serve the purpose of retesting the existing software to ensure that the portions of changes is not interfering with the unmodified sections of the application.
The test cases for 'regression testing' is chosen from among the list of scenarios that have been modified or updated recently. Test cases are thus prioritized as per requirements by applying a suitable regression test approach.
The above sequence of activities is a process of processing, analyzing, and finding a solution to the software product.
This is a way of selecting the most appropriate test case to ensure that it delivers the correct result. It thus enables a tester to select a valid set of test cases to make sure the unmodified part of the program is error free.
So we can categorize the concept of test selection for regression testing into two broad categories:
Here we can state another interesting concept, that is, Test- Driven Development. This is a method of execution of test cases repeatedly, to ensure the right product is being built.
So if we try to define it in a bit more mathematical way, we can say, regression test selection comprises selecting a subset T' of the actual test suite T. Hence T' may contain few test cases {t1,t3,t4} , those test cases that will help us to manage our unmodified part of program.
There can be various approaches to test case selection. We may understand the concept by focusing on one of the many approaches.
For instance, we have a test suite T with test cases {t1,t2,t3,t4,t5}.
When applying regression testing, we may need the only {t1,t2} out of all the test cases, which are considered to solve our purpose.
These selection techniques provide a very controlled environment for identifying the faults in a given program.
Regression test selection can further be categorised into three categories:
The parameters which form the basis of comparison and evaluation of the selection techniques are as follows:
The above analysis about regression test selection brings out the core idea behind regression testing, the selection criteria involved and the ways to counter the issues involved. Regression testing can be thought of as a backbone to the entire process of "software maintenance". It is a technique for solving the issues left out while in the software development phase.
Advertisement: