@InProceedings{Chen:2022:SlowCoach:MutatingCode, author = "Chen, Yiqun and Schwahn, Oliver and Natella, Roberto and Bradbury, Matthew and Suri, Neeraj", booktitle = "The 33rd IEEE International Symposium on Software Reliability Engineering", title = "{SlowCoach: Mutating Code to Simulate Performance Bugs}", year = "2022", address = "Charlotte, North Carolina, USA", month = "31 October -- 3 November", pages = "274--285", series = "ISSRE", abstract = "Performance bugs are unnecessarily inefficient code chunks in software codebases that cause prolonged execution times and degraded computational resource utilization. For performance bug diagnostics, tools that aid in the identification of said bugs, such as benchmarks and profilers, are commonly employed. However, due to factors such as insufficient workloads or ineffective benchmarks, software defects related to code inefficiencies are inherently difficult to diagnose. Hence, the capabilities of performance bug diagnostic tools are limited and performance bug instances may be missed. Traditional mutation testing (MT) is a technique for quantifying a test suite's ability to find functional bugs by mutating the code of the test subject. Similarly, we adopt performance mutation testing (PMT) to evaluate performance bug diagnostic tools and identify where improvements need to be made to a performance testing methodology. We carefully investigate the different performance bug fault models and how synthesized performance bugs based on these models can evaluate benchmarks and workload selection to help improve performance diagnostics. In this paper, we present the design of our PMT framework, SlowCoach, and evaluate it with over 1600 mutants from 4 real-world software projects.", dataset = "https://github.com/61OlkVq8/PMT", doi = "10.1109/ISSRE55969.2022.00035", file = ":ISSRE2022.pdf:PDF" }