Mutation Operators for Preprocessor-Based Variability

Mutation testing has emerged as one of the most promising techniques to increase the quality of software-intensive systems. In mutation testing, random faults based on a predefined set of mutation operators are automatically injected into a program to evaluate test suites. The effectiveness of mutation testing strongly depends on the representativeness of the mutation operators. Existing operators are not sufficient to represent typical faults caused by variability. Thus, we propose a set of mutation operators for software with preprocessor-based variability. We derive the operators systematically based on a taxonomy of variability-related faults and evaluate them by investigating their applicability to real-world faults that have previously been identified in research on configurable software systems. Our goal is to leverage mutation testing to highly-variable software for its practical application and to enable empirical evaluation of testing techniques.

[1]  Sebastian Erdweg,et al.  Abstract Features in Feature Modeling , 2011, 2011 15th International Software Product Line Conference.

[2]  Philippe Chevalley,et al.  Applying mutation analysis for object-oriented programs using a reflective approach , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[3]  Tao Xie,et al.  Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[4]  Sergio Segura,et al.  Variability testing in the wild: the Drupal case study , 2017, Software & Systems Modeling.

[5]  J. Jenny Li,et al.  An Empirical Study of Pre-release Software Faults in an Industrial Product Line , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[6]  Udo Kelter,et al.  Fault-based product-line testing: effective sample generation based on feature-diagram mutation , 2015, SPLC.

[7]  Iago Abal,et al.  42 variability bugs in the linux kernel: a qualitative analysis , 2014, ASE.

[8]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[9]  Myra B. Cohen,et al.  Feature Interaction Faults Revisited: An Exploratory Study , 2011, 2011 IEEE 22nd International Symposium on Software Reliability Engineering.

[10]  Sebastian Erdweg,et al.  Variability-aware parsing in the presence of lexical macros and conditional compilation , 2011, OOPSLA '11.

[11]  Robyn R. Lutz,et al.  Are change metrics good predictors for an evolving software product line? , 2011, Promise '11.

[12]  Yves Le Traon,et al.  Sampling Program Inputs with Mutation Analysis: Going Beyond Combinatorial Interaction Testing , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[13]  Mark Harman,et al.  An Analysis and Survey of the Development of Mutation Testing , 2011, IEEE Transactions on Software Engineering.

[14]  Robyn R. Lutz,et al.  Empirical evaluation of reliability improvement in an evolving software product line , 2011, MSR '11.

[15]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[16]  Yves Le Traon,et al.  Mutation-Based Generation of Software Product Line Test Configurations , 2014, SSBSE.

[17]  Gunter Saake,et al.  Similarity-based prioritization in software product-line testing , 2014, SPLC.

[18]  Martin Schmidt,et al.  Towards the assessment of software product line tests: a mutation system for variable systems , 2014, SPLC '14.

[19]  Dragan Gasevic,et al.  Evolutionary Search-Based Test Generation for Software Product Line Feature Models , 2012, CAiSE.

[20]  Sergio Segura,et al.  A Comparison of Test Case Prioritization Criteria for Software Product Lines , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[21]  Gunter Saake,et al.  Potential synergies of theorem proving and model checking for software product lines , 2014, SPLC.

[22]  Paolo Arcaini,et al.  Generating Tests for Detecting Faults in Feature Models , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[23]  Paulo Borba,et al.  A theory of software product line refinement , 2010, Theor. Comput. Sci..

[24]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[25]  F. Wotawa,et al.  Mutant Minimization for Model-Checker Based Test-Case Generation , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[26]  Ana R. Cavalli,et al.  Specification of Timed EFSM Fault Models in SDL , 2007, FORTE.

[27]  Wynne Hsu,et al.  DESIGN OF MUTANT OPERATORS FOR THE C PROGRAMMING LANGUAGE , 2006 .