Abstract:
We present a comparative study of popular regressIOn testing algorithms. These
algorithms include slicing, incremental, firewall, genetic, and simulated annealing
algorithms. The study uses a variety of small-size and medium-size modules along with
associated test cases tables, and is based on the following quantitative and qualitative
criteria, efficiency, number of retests, precision, inclusiveness, user's parameter setting,
global variables, type of maintenance, type of testing, level of testing, and type of
approach. The comparison results show that the five algorithms are suitable for different
requirements of regression testing. Slicing and adapted firewall algorithms detect the
definition-use pairs that are affected by a change, and select the test cases for regression
testing based on these definition-use pairs. Incremental algorithm selects the test cases
whose outputs may be affected. Genetic and simulated annealing select the minimum
number of test cases that provide full testing coverage. In terms of execution time for
small-size modules, slicing, incremental, and adapted firewall algorithms exhibit a better
behavior comparing to genetic and simulated annealing algorithms. For medium-size
modules, the adapted firewall algorithm becomes the slowest. Genetic and simulated
annealing algorithms produce the least number of retests, followed by incremental,
slicing, and then adapted firewall.