Software Quality Journal

, Volume 12, Issue 3, pp 185–210

Selecting a Cost-Effective Test Case Prioritization Technique


  • Sebastian Elbaum
    • Department of Computer Science and EngineeringUniversity of Nebraska –
  • Gregg Rothermel
    • Department of Computer Science and EngineeringUniversity of Nebraska –
  • Satya Kanduri
    • Department of Computer Science and EngineeringUniversity of Nebraska –
  • Alexey G. Malishevsky
    • Department of Computer ScienceOregon State University

DOI: 10.1023/B:SQJO.0000034708.84524.22

Cite this article as:
Elbaum, S., Rothermel, G., Kanduri, S. et al. Software Quality Journal (2004) 12: 185. doi:10.1023/B:SQJO.0000034708.84524.22


Regression testing is an expensive testing process used to validate modified software and detect whether new faults have been introduced into previously tested code. To reduce the cost of regression testing, software testers may prioritize their test cases so that those which are more important, by some measure, are run earlier in the regression testing process. One goal of prioritization is to increase a test suite's rate of fault detection. Previous empirical studies have shown that several prioritization techniques can significantly improve rate of fault detection, but these studies have also shown that the effectiveness of these techniques varies considerably across various attributes of the program, test suites, and modifications being considered. This variation makes it difficult for a practitioner to choose an appropriate prioritization technique for a given testing scenario. To address this problem, we analyze the fault detection rates that result from applying several different prioritization techniques to several programs and modified versions. The results of our analyses provide insights into which types of prioritization techniques are and are not appropriate under specific testing scenarios, and the conditions under which they are or are not appropriate. Our analysis approach can also be used by other researchers or practitioners to determine the prioritization techniques appropriate to other workloads.

test case prioritizationregression testingempirical studies

Copyright information

© Kluwer Academic Publishers 2004