Regression testing minimization, selection and prioritization: a survey
From AcaWiki
Citation: S. Yoo, M. Harman (2012) Regression testing minimization, selection and prioritization: a survey. Software Testing, Verification and Reliability (RSS)
DOI (original publisher): 10.1002/stvr.430
Semantic Scholar (metadata): 10.1002/stvr.430
Sci-Hub (fulltext): 10.1002/stvr.430
Internet Archive Scholar (search for fulltext): Regression testing minimization, selection and prioritization: a survey
Download: https://onlinelibrary.wiley.com/doi/epdf/10.1002/stvr.430
Tagged: Computer Science
(RSS) software engineering (RSS)
Summary
- Test Suite Minimization Problem
- GE: Greedily select tests that test a set of requirements, until all requirements are covered.
- GRE: remove all redundant test cases in the test suite, then run GE.
- the dual of the minimal hittingset problem, i.e. the set cover problem
- Integer linear programming
- More
- Observations:
- The reduction in size is greater intest suites with a higher block coverage in most cases.
- The fault-detection effectiveness was decreasedby test case reduction, but the overall decrease in fault-detection effectiveness is not excessive
- Not in all studies
- Test Case Selection Problem
- Integer Programming
- Dataflow
- Not all deps might be captured
- Symbolic execution
- Slow
- Pointer aliasing
- Slice
- Relevant slice >= execution slice >= dynamic slice
- If CFG changes, not complete
- Control Dependence Graph
- Could use CFG, but that might not be complete due to data dep
- TestTube system adds other program entities such as defns and macros
- Firewall based on module modification
- Conservative
- CFG cluster identification
- Sounds like CDG
- Design-based
- Why not use “empirical” design (aka static analysis)
- Test Case Prioritization Problem
- Prioiritize tests with high coverage (branches, conditions, statements, mutant-killing) x (additional, total)
- Mutant-killing <= statement coverage
- “approaches with coarser granularity would produce lower APFD values, which was confirmed statistically”
- Newer tests more likelu to reveal faults
- Greedy algorithm is generally efficient [128]
- Interaction-based prio/coverage
- Distribution-based Approach: reduce clusters of tests which have similar traces
- Prioiritize tests with high coverage (branches, conditions, statements, mutant-killing) x (additional, total)