Variability Fault Localization by Abstract Interpretation and its Application to SPL Repair
Fault localization is an important step in software debugging that aims to isolate and localize the bugs (errors) to a small part of the program. This becomes more challenging in Software Product Lines (SPLs) due to the variable nature of bugs (so-called variability bugs). This paper introduces a novel variability fault localization algorithm for SPLs. Moreover, we present its practical application for automatic repair of variability bugs in SPLs. To successfully address the above problems, we employ an abstract interpretation-based approach for fault localization of single programs that semantically identifies statements relevant for a bug as well as a mutation-based approach for program repair that changes (mutates) statements in order to repair a bug.
Given a buggy SPL (program family) and an assertion to be satisfied, our variability fault localization algorithm infers so-called lifted (variability-specific) error invariants in all locations, which over-approximate the reachable states at the given locations that may produce the bug if the execution continues from those locations in some particular variants. The lifted error invariants are used for statement-wise lifted semantic slicing of buggy SPLs, which removes the statements irrelevant for assertion violation in certain variants containing some combinations of features. Finally, the obtained slice family is applied for designing an efficient SPL repair algorithm, which repeatedly mutates the (feature and program) expressions in the statements identified as relevant for the variability bug until a correct SPL is found.
We have implemented an experimental tool for variability fault localization and repair of #ifdef-annotated SPLs written in C. We have evaluated our approach by a set of benchmarks, and the experimental results confirm the effectiveness of our approach to localize variability bugs in SPLs, and to subsequently repair them.
Fri 13 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:30 - 15:00 | |||
13:30 22mTalk | Optimize Effect Handling for Tail-resumption with Stack Unwinding SLE 2025 | ||
13:52 22mTalk | Variability Fault Localization by Abstract Interpretation and its Application to SPL Repair SLE 2025 Aleksandar S. Dimovski Mother Teresa University, Skopje | ||
14:15 22mTalk | (Semantic) Feature Model Differences with (Q)SAT SLE 2025 Simone Heisinger JKU Linz, Maximilian Heisinger JKU Linz, Martina Seidl Johannes Kepler University Linz | ||
14:37 22mTalk | Detecting Resource Leaks on Android with Alpakka SLE 2025 Gustavo Amorim Santos Faculty of Engineering, University of Porto, Alexandra Mendes Faculty of Engineering, University of Porto & INESC TEC, João Bispo Faculdade de Engenharia e Universidade do Porto Pre-print |