A Clustering Approach to Improving Test Case Prioritization: An Industrial Case Study
View/ Open
Abstract
Regression testing is an important activity for controlling the quality of a software
product, but it accounts for a large proportion of the costs of software. We believe that an
understanding of the underlying relationships in data about software systems, including
data correlations and patterns, could provide information that would help improve
regression testing techniques. As an initial approach to investigating the relationships in
massive data in software repositories, in this paper, we consider a clustering approach to
help improve test case prioritization. We implemented new prioritization techniques that
incorporate a clustering approach and utilize history data on real faults and code
complexity. To assess our approach, we conducted empirical studies using an industrial
software product, Microsoft Dynamics Ax, which contains real faults. Our results show
that test case prioritization that utilizes a clustering approach can improve the rate of
fault detection of test suites, and reduce the number of faults that slip through testing
when testing activities are cut short and test cases must be omitted due to time
constraints.