🤖 AI Summary
Existing mutation operators for performance testing lack realism and fail to accurately reflect real-world performance regressions. Method: This paper introduces the first high-fidelity, performance-oriented mutation operator set, systematically derived from real-world performance regression cases through code change pattern mining. It integrates code change analysis, pattern abstraction and modeling, and empirically driven performance mutation testing, quantitatively evaluating execution time and memory overhead changes across multiple real systems. Contributions: (1) Establishes a causal mapping between code change patterns and performance degradation; (2) Bridges the gap in authenticity and practicality for performance mutation testing; (3) Provides a reusable operator set, an evaluation framework, and foundational support for anti-pattern identification—significantly enhancing performance defect detection capability and the rigor of test effectiveness assessment.
📝 Abstract
Context: Performance regressions negatively impact execution time and memory usage of software systems. Nevertheless, there is a lack of systematic methods to evaluate the effectiveness of performance test suites. Performance mutation testing, which introduces intentional defects (mutants) to measure and enhance fault-detection capabilities, is promising but underexplored. A key challenge is understanding if generated mutants accurately reflect real-world performance issues. Goal: This study evaluates and extends mutation operators for performance testing. Its objectives include (i) collecting existing performance mutation operators, (ii) introducing new operators from real-world code changes that impact performance, and (iii) evaluating these operators on real-world systems to see if they effectively degrade performance. Method: To this aim, we will (i) review the literature to identify performance mutation operators, (ii) conduct a mining study to extract patterns of code changes linked to performance regressions, (iii) propose new mutation operators based on these patterns, and (iv) apply and evaluate the operators to assess their effectiveness in exposing performance degradations. Expected Outcomes: We aim to provide an enriched set of mutation operators for performance testing, helping developers and researchers identify harmful coding practices and design better strategies to detect and prevent performance regressions.