2011 · 120 citations · 23 references
ComputingComputer ScienceData MiningQuality EngineeringSoftware EngineeringSoftware MetricsSoftware TestingClusteringCode Complexity AnalysisCode CoverageCoveragePrioritizationRegression Test PrioritizationTest Case PrioritizationTest Cases
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. We conjecture that if test cases have common properties, then test cases within the same group may have similar fault detection ability. 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 code coverage, code complexity, and history data on real faults. To assess our approach, we have designed and 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 effectiveness of test case prioritization techniques.
23
Prioritizing test cases for regression testing
Gregg Rothermel, R.H. Untch, Chengyun Chu et al. · IEEE Transactions on Software Engineering · 2001 · 1.3K citations
Computing, Systems Engineering, Experimental Performance +11
A study of effective regression testing in practice
W. Eric Wong, J.R. Horgan, S. London et al. · 2002 · 389 citations