A Large-Scale Empirical Comparison of Static and Dynamic Test Case Prioritization Techniques
Qi Luo, Kevin Moran, Denys Poshyvanyk

TL;DR
This study empirically compares static and dynamic test case prioritization techniques across 30 Java projects, revealing differences in effectiveness, efficiency, and fault detection similarity, and highlighting areas for future research.
Contribution
It provides the first large-scale empirical evaluation of static TCP techniques against dynamic ones, analyzing their performance and fault detection overlap.
Findings
Static call-graph technique outperforms others at test-class level.
Topic-model technique performs better at test-method level.
Static and dynamic techniques detect largely disjoint sets of faults.
Abstract
The large body of existing research in Test Case Prioritization (TCP) techniques, can be broadly classified into two categories: dynamic techniques (that rely on run-time execution information) and static techniques (that operate directly on source and test code). Absent from this current body of work is a comprehensive study aimed at understanding and evaluating the static approaches and comparing them to dynamic approaches on a large set of projects. In this work, we perform the first extensive study aimed at empirically evaluating four static TCP techniques comparing them with state-of-research dynamic TCP techniques at different test-case granularities (e.g., method and class-level) in terms of effectiveness, efficiency and similarity of faults detected. This study was performed on 30 real-word Java programs encompassing 431 KLoC. In terms of effectiveness, we find that the static…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
