SEJul 23, 2018

Assessing Test Case Prioritization on Real Faults and Mutants

arXiv:1807.08823v248 citations
Originality Incremental advance
AI Analysis

This addresses a fundamental question in software testing for researchers and practitioners, highlighting that mutant-based evaluations may not reliably predict real-world TCP effectiveness, which is incremental as it builds on prior TCP studies.

The study tackled the problem of whether test case prioritization (TCP) performance on synthetic mutants correlates with performance on real faults, finding that relative performance may not strongly correlate depending on program attributes, with correlations varying for different mutation operators.

Test Case Prioritization (TCP) is an important component of regression testing, allowing for earlier detection of faults or helping to reduce testing time and cost. While several TCP approaches exist in the research literature, a growing number of studies have evaluated them against synthetic software defects, called mutants. Hence, it is currently unclear to what extent TCP performance on mutants would be representative of the performance achieved on real faults. To answer this fundamental question, we conduct the first empirical study comparing the performance of TCP techniques applied to both real-world and mutation faults. The context of our study includes eight well-studied TCP approaches, 35k+ mutation faults, and 357 real-world faults from five Java systems in the Defects4J dataset. Our results indicate that the relative performance of the studied TCP techniques on mutants may not strongly correlate with performance on real faults, depending upon attributes of the subject programs. This suggests that, in certain contexts, the best performing technique on a set of mutants may not be the best technique in practice when applied to real faults. We also illustrate that these correlations vary for mutants generated by different operators depending on whether chosen operators reflect typical faults of a subject program. This highlights the importance, particularly for TCP, of developing mutation operators tailored for specific program domains.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes