SOFTWARE: PRACTICE AND EXPERIENCE
Softw. Pract. Exper. (2017)
Published online in Wiley Online Library (wileyonlinelibrary.com). DOI: 10.1002/spe.2485
Regression test suite minimization using integer linear
programming model
S. Panda
1,
*
,†
and D. P. Mohapatra
2
1
Department of CSIS, BITS-PILANI, Hyderabad, 500078, India
2
Department of Computer Science and Engineering, National Institute of Technology, Rourkela 769008, India
SUMMARY
Software testers always face the dilemma of whether to retest the software with all the test cases or select a
few of them on the basis of their fault detection ability. This paper introduces a novel approach to minimizing
the test suite as an integer linear programming problem with optimal results. The minimization method uses
the cohesion values of the program parts affected by the changes made to the program. The hypothesis is
that the program parts with low cohesion values are more prone to errors. This assumption is validated on
the mutation fault detection ability of the test cases. The experimental study carried out on 30 programs
evaluates the effectiveness and usefulness of the proposed framework. The experimental results show that
the minimized test suite can efficiently reveal the errors and ensure acceptable software quality. Copyright
© 2017 John Wiley & Sons, Ltd.
Received 1 October 2015; Revised 23 November 2016; Accepted 10 January 2017
KEY WORDS: regression testing; test case prioritization; test case minimization; cohesion; integer linear
programming; Softw. Pract. Exper.
1. INTRODUCTION
Systems often undergo a series of small changes owing to maintenance activities. A small change
in some portion of the code can induce some errors in the unchanged portions of the system. Every
tester faces the following two challenges: (1) to identify the impact of change on other portions of the
system, (2) to detect the faults as early as possible during testing. This necessitates the testing of the
complete system with all the available test cases after testing the modified parts of the system. This
is known as retest all approach. This approach requires to exhaust the available test suite to validate
the impact of every change made to the system under consideration. The adverse impact of ‘retest
all approach’ may result in missing the project deadline and incurring huge cost of retesting the
system for every change. Thus, the system needs to undergo selective regression testing to validate
the impact of changes and overcome the problem of time and cost overhead of retesting. Regression
test case selection promises to detect acceptable number of faults with a reduced number of test
cases. However, sometimes, the selected test suite can still appear enormous and redundant, and
strict delivery schedule can hinder adequate regression testing. Hence, it is essential to minimize
the test suite. In a scenario of constrained time and budget, it is difficult for the testers to determine
the minimum number of test cases that can ensure satisfactory testing. The regression test selection
approach focuses on reducing the time and effort required to retest a modified program by selecting
a subset of the given test suite. Therefore, regression test selection techniques [1–5] attempt to
identify only those test cases that can exercise the modified parts of the program and the parts that
are affected by the modifications to reduce the cost of testing. Thus, given a program P and its
*Correspondence to: S. Panda, Department of Computer Science and Information Systems, BITS-PILANI, Hyderabad-
500078, India.
†
E-mail: subhrakanta11@gmail.com
Copyright © 2017 John Wiley & Sons, Ltd.