Classic Movies and Books

Learn Software Development

All about the processes involved in software development

Search this site
Google
 

Regression testing methods and techniques

Filed Under Terms, Techniques, Testing, Process, Development, Software | Posted on August 30, 2007




Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged. In most software development situations it is considered good practice that when a bug is located and fixed, a test that exposes the bug is recorded and regularly retested after subsequent changes to the program. Although this may be done through manual testing procedures using programming techniques, it is often done using automated testing tools.
What are the various types of regression ?
* Local - changes introduce new bugs.
* Unmasked - changes unmask previously existing bugs.
* Remote - Changing one part breaks another part of the program. For example, Module A writes to a database. Module B reads from the database. If changes to what Module A writes to the database break Module B, it is remote regression.

There’s another way to classify regression.
* New feature regression - changes to code that is new to release 1.1 break other code that is new to release 1.1.
* Existing feature regression - changes to code that is new to release 1.1 break code that existed in release 1.0.

However, one should keep in mind that Regression testing is an expensive activity that can account for a large proportion of the software maintenance budget. Regression test selection, test suite reduction, and test case prioritization techniques can help with this, by reducing the number of regression tests that must be run and by helping testers meet testing objectives more quickly. Now, there could be 2 simple cases of regression methods:
1. The simplest regression testing strategy, retest all, reruns every test case in the initial test suite. This approach, however, can be prohibitively expensive – rerunning all test cases in the test suite may require an unacceptable amount of time.
2. A second approach, Regression test selection, reruns only a subset of the initial test suite. Of course, this approach is imperfect as well – regression test selection techniques can have substantial costs, and can discard test cases that could reveal faults, possibly reducing fault detection effectiveness.

But there can be more refinement in the techniques, and keeping this in mind, here are the techniques:
- Minimization-based regression test selection techniques, hereafter referred to as minimization techniques, attempt to select minimal sets of test cases from T, that yield coverage of modified or affected portions of P.
- Dataflow-coverage-based regression test selection techniques, hereafter referred to as dataflow techniques, select test cases that exercise data interactions that have been affected by modifications.
- Safe technologies: Most regression test selection techniques — minimization and dataflow techniques among them — are not designed to be safe. Techniques that are not safe can fail to select a test case that would have revealed a fault in the modified program. In contrast, when an explicit set of safety conditions can be satisfied, safe regression test selection techniques guarantee that the selected subset, T , contains all test cases in the original test suite T that can reveal faults in P.
- Adhoc / Random techniques - When time constraints prohibit the use of a retest-all approach, but no test selection tool is available, developers often select test cases based on “hunches”, or loose associations of test cases with functionality. One simple approach is to randomly select a predetermined number of test cases from T.


Leave a Reply