Commit-Aware Learning-Based Test Case Prioritization for Continuous Integration
Combining code diffs with test history to catch bugs faster.
Regression testing in Continuous Integration (CI) pipelines is becoming increasingly costly as test suites grow in size and execution frequency. Test Case Prioritization (TCP) helps by reordering tests to expose faults earlier, but most existing techniques rely primarily on historical execution data and coverage metrics, neglecting the rich structural information contained in code changes. This paper by Lorenzo Abbondante and Gerardo Canfora introduces a commit-aware, learning-based TCP method that combines structural properties of version-control diffs, test coverage relations, and historical execution behavior into a unified predictive model. Given a new commit, the model estimates the probability that each test will reveal at least one failure and prioritizes execution accordingly.
The method was evaluated on five Defects4J projects using a leave-one-project-out cross-project validation setting. Results show that the commit-aware TCP significantly outperforms non-commit-aware baselines in both classification and prioritization effectiveness. The findings demonstrate that including commit structural semantics substantially enhances regression fault detection and enables robust, generalizable learning-based TCP in CI environments, offering a practical way to reduce testing costs and accelerate feedback loops for development teams.
- Combines commit diffs, test coverage, and historical execution data into a predictive model.
- Outperforms non-commit-aware baselines on five Defects4J projects.
- Enables robust, generalizable TCP across projects without retraining.
Why It Matters
Faster bug detection in CI pipelines reduces development costs and accelerates release cycles.