History-Based Test Case Prioritization in Regression Testing: A Systematic Review and Analysis
DOI:
https://doi.org/10.51483/IJAIML.3007Abstract
Regression testing is one of the most resource-intensive activities in the software maintenance lifecycle, and organizations rarely have the time or budget to re-execute an entire test suite after every change. Test case prioritization (TCP) addresses this constraint by reordering test cases so that the tests most likely to reveal faults are executed earliest, allowing defects to surface sooner and giving developers more time to react. Among the many families of prioritization strategies that have been proposed, history-based approaches are distinctive in that they exploit the recorded outcomes of previous test executions — pass/fail results, execution time, and prior fault-detection behaviour — rather than relying solely on static code coverage or subjective requirement weighting. This paper surveys the conceptual foundations of test case prioritization, presents a classification of the major families of prioritization techniques, and provides a focused review of history-based methods and the empirical evidence supporting them. The paper also discusses the Average Percentage of Faults Detected (APFD) metric that is commonly used to evaluate prioritization effectiveness, identifies open research gaps such as the scarcity of source-code-independent techniques and the difficulty of validating methods across heterogeneous industrial test suites, and outlines directions for future work, including hybrid history-and-coverage strategies and the application of machine learning to execution-history data.





