Regression Test Prioritization Using Fault Detection Decay
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional regression test case execution methods do not effectively prioritize test cases based on the time elapsed since fault detection, leading to suboptimal resource allocation and inefficient fault detection in software testing.
Innovation Solution
A test selection system calculates a fault detection score for regression test cases using a fault detection decay rate, prioritizing test cases with more recently detected faults and executing them first to optimize the testing schedule.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional regression test case execution methods are used without time-based prioritization, then all test cases can be executed, but resource allocation is suboptimal and fault detection efficiency is reduced
Solution Approach 1:
The patent implements dynamic prioritization of regression test cases based on the age of detected faults. Test cases are continuously re-ranked as new faults are detected, with younger faults receiving higher priority. This dynamic adjustment optimizes resource allocation by focusing testing efforts on the most recently introduced issues, thereby improving fault detection efficiency while reducing the time to detect critical faults.
Solution Approach 2:
The patent introduces a time-based parameter (fault age) to determine test case execution priority. By changing the prioritization parameter from static to dynamic (based on fault detection time), the system efficiently directs resources to test cases associated with recently detected faults, maximizing productivity in fault detection while minimizing the loss of time for critical issue identification.
2Productivity
If regression test cases are executed without prioritization based on fault detection timing, then complete test coverage is achieved, but resource allocation becomes inefficient
Solution Approach 1:
The system dynamically adjusts test case priorities based on fault detection timing, creating an adaptive testing schedule that automatically responds to new fault information. This dynamic approach improves resource allocation efficiency by focusing resources on high-priority test cases while managing schedule complexity through automated prioritization rules rather than manual scheduling.
Solution Approach 2:
By introducing fault detection time as a key parameter in the prioritization process, the system transforms the testing schedule from a static plan to a dynamic, time-aware schedule. This parameter change enables efficient resource allocation based on fault age while the automated calculation of priorities helps manage the inherent complexity of the testing schedule.
3Reliability
If all regression test cases are executed with equal priority, then comprehensive testing is performed, but critical recent faults may be detected later than necessary
Solution Approach 1:
The patent applies preliminary action by prioritizing test cases associated with recently detected faults before executing older test cases. When a new fault is detected, the system immediately re-prioritizes related test cases to execute sooner, ensuring that critical recent faults are addressed in the optimal time window. This preliminary prioritization improves reliability of fault detection while minimizing the loss of time since fault occurrence.
Data Source
AI summary
Methods, system, and non-transitory processor-readable storage medium for a test selection system are provided herein. An example method includes selecting, by a test selection system, a regression test case from a plurality of regression test cases in a software testing lifecycle system. The test selection system calculates a fault detection score for the regression test case, based on a fault detection decay rate score associated with the regression test case. The test selection system selects the regression test case for execution on a test system based on the fault detection score, and executes the regression test case on the test system.


