Detecting Performance-Relevant Changes in Configurable Software Systems
Sebastian Böhm, Florian Sattler, Norbert Siegmund, Sven Apel
TL;DR
ConfFLARE tackles the costly problem of performance regression testing in configurable software by static, region-based analysis that detects data-flow interactions between code changes and performance-relevant code. It introduces commit and feature code regions, leverages an ESG-driven taint analysis to identify performance-relevant interactions, and extracts related features to constrain the configuration space for testing. Across synthetic, seeded, and real-world scenarios, ConfFLARE achieves high recall in detecting regressions and substantially reduces the number of configurations and total testing time required, albeit with some limitations in handling implicit flows and function-pointer cases. The results demonstrate substantial practical value and show how ConfFLARE can complement existing sampling and modeling approaches to enable more efficient performance regression workflows in configurable software systems.
Abstract
Performance is a volatile property of a software system and frequent performance profiling is required to keep the knowledge about a software system's performance behavior up to date. Repeating all performance measurements after every revision is a cost-intensive task, especially in the presence of configurability, where one has to measure multiple configurations to obtain a comprehensive picture. Configuration sampling is a common approach to control the measurement cost. However, it cannot guarantee completeness and might miss performance regressions, especially if they only affect few configurations. As an alternative to solve the cost reduction problem, we present ConfFLARE: ConfFLARE estimates whether a change potentially impacts performance by identifying data-flow interactions with performance-relevant code and extracts which software features participate in such interactions. Based on these features, we can select a subset of relevant configurations to focus performance profiling efforts on. In a study conducted on both, synthetic and real-world software systems, ConfFLARE correctly detects performance regressions in almost all cases and identifies relevant features in all but two cases, reducing the number of configurations to be tested on average by $79\%$ for synthetic and by $70\%$ for real-world regression scenarios saving hours of performance testing time.
