Variability Bugs in Highly Configurable Systems: A Qualitative Analysis

Iago Abal, Jean Melo, Stefan Stanciulescu, Claus Brabrand, Márcio Ribeiro, Andrzej Wasowski

    Publikation: Artikel i tidsskrift og konference artikel i tidsskriftTidsskriftartikelForskningpeer review

    Abstract

    Variability-sensitive verification pursues effective analysis of the exponentially many variants in number of features of a program family. Several variability-aware techniques have been proposed, but researchers still lack examples of concrete bugs induced by variability, occurring in real large-scale systems. A collection of real world bugs is needed to evaluate tool implementations of variability-sensitive analyses by testing them on real bugs. We present a qualitative study of 98 diverse variability bugs collected from bug-fixing commits in the Apache, BusyBox, Linux kernel and Marlin repositories. We analyze each of the bugs, and record the results in a database. For each bug, we create a self-contained simplified C99 version and a simplified patch, in order to help researchers who are not experts on these subject studies to understand them, so that they can use it for evaluation of their tools. In addition, we provide single-function versions of the bugs, which are useful for evaluating intra-procedural analyses. A Web-based User Interface for the database allows to conveniently browse and visualize the collection of bugs. Our study provides insights into the nature and occurrence of variability bugs in four highly-configurable systems implemented in C, and shows in what ways variability affects and increases the complexity of software bugs. Software bugs appear across different kinds of components, features, and bug categories. Variability affects complexity of bugs by feature interactions, that may span multiple subsystems; through hidden configuration dependent definitions of functions, variables, and types; extending the bug locations from code to also feature models and code mappings, and to modeling languages in which these are expressed. We also find many bugs that are caused by disabling a feature (negative feature interaction), which leads us to suggest the one-disabled strategy for configuration sampling.
    OriginalsprogEngelsk
    Artikelnummer10
    TidsskriftACM Transactions on Software Engineering and Methodology
    Vol/bind26
    Udgave nummer3
    ISSN1049-331X
    DOI
    StatusUdgivet - 2018

    Emneord

    • Software bugs
    • Feature interactions
    • Linux
    • BusyBox
    • Apache
    • Marlin
    • Software Variability
    • Software Product Lines
    • Program Families

    Fingeraftryk

    Dyk ned i forskningsemnerne om 'Variability Bugs in Highly Configurable Systems: A Qualitative Analysis'. Sammen danner de et unikt fingeraftryk.

    Citationsformater