Automated metamorphic testing of variability analysis tools

Variability determines the capability of software applications to be configured and customized. A common need during the development of variability‐intensive systems is the automated analysis of their underlying variability models, for example, detecting contradictory configuration options. The analysis operations that are performed on variability models are often very complex, which hinders the testing of the corresponding analysis tools and makes difficult, often infeasible, to determine the correctness of their outputs, that is, the well‐known oracle problem in software testing. In this article, we present a generic approach for the automated detection of faults in variability analysis tools overcoming the oracle problem. Our work enables the generation of random variability models together with the exact set of valid configurations represented by these models. These test data are generated from scratch using stepwise transformations and assuring that certain constraints (a.k.a. metamorphic relations) hold at each step. To show the feasibility and generalizability of our approach, it has been used to automatically test several analysis tools in three variability domains: feature models, common upgradeability description format documents and Boolean formulas. Among other results, we detected 19 real bugs in 7 out of the 15 tools under test. Copyright © 2015 John Wiley & Sons, Ltd.

[1]  Myra B. Cohen,et al.  An orchestrated survey of methodologies for automated software test case generation , 2013, J. Syst. Softw..

[2]  W. Marsden I and J , 2012 .

[3]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[4]  Daniel Le Berre,et al.  On SAT Technologies for Dependency Management and Beyond , 2008, SPLC.

[5]  Pascal Rapicault,et al.  Dependency management for the eclipse ecosystem: eclipse p2, metadata and resolution , 2009, IWOCE '09.

[6]  Tsong Yueh Chen,et al.  Metamorphic testing of programs on partial differential equations: a case study , 2002, Proceedings 26th Annual International Computer Software and Applications.

[7]  Armin Biere,et al.  PicoSAT Essentials , 2008, J. Satisf. Boolean Model. Comput..

[8]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[9]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[10]  Roberto Di Cosmo,et al.  On software component co-installability , 2011, ESEC/FSE '11.

[11]  Sergio Segura,et al.  Debian Packages Repositories as Software Product Line Models. Towards Automated Analysis , 2010, ACoTA.

[12]  Sergio Segura,et al.  Automated Metamorphic Testing on the Analysis of Software Variability , 2013 .

[13]  Armin Biere,et al.  Automated Testing and Debugging of SAT and QBF Solvers , 2010, SAT.

[14]  Allen Van Gelder Producing and verifying extremely large propositional refutations Have your cake and eat it too , 2012 .

[15]  Baowen Xu,et al.  Metamorphic slice: An application in spectrum-based fault localization , 2013, Inf. Softw. Technol..

[16]  Daniel Le Berre,et al.  The Sat4j library, release 2.2 , 2010, J. Satisf. Boolean Model. Comput..

[17]  Allen Van Gelder,et al.  Producing and verifying extremely large propositional refutations , 2012, Annals of Mathematics and Artificial Intelligence.

[18]  Huai Liu,et al.  How Effectively Does Metamorphic Testing Alleviate the Oracle Problem? , 2014, IEEE Transactions on Software Engineering.

[19]  Manuel Resinas,et al.  Automated Analysis of Conflicts in WS-Agreement , 2014, IEEE Transactions on Services Computing.

[20]  Hareton K. N. Leung,et al.  A survey of combinatorial testing , 2011, CSUR.

[21]  Guangquan Zhang,et al.  Metamorphic testing of decision support systems: a case study , 2010, IET Softw..

[22]  Sergio Segura,et al.  Automated metamorphic testing on the analyses of feature models , 2011, Inf. Softw. Technol..

[23]  Sergio Segura,et al.  BeTTy: benchmarking and testing on the automated analysis of feature models , 2012, VaMoS.

[24]  Myra B. Cohen,et al.  Constructing Interaction Test Suites for Highly-Configurable Systems in the Presence of Constraints: A Greedy Approach , 2008, IEEE Transactions on Software Engineering.

[25]  Martin Glinz,et al.  Supporting Stepwise, Incremental Product Derivation in Product Line Requirements Engineering , 2010, VaMoS.

[26]  Tsong Yueh Chen,et al.  Adaptive Random Testing: The ART of test case diversity , 2010, J. Syst. Softw..

[27]  Sergio Segura,et al.  Automated Test Data Generation on the Analyses of Feature Models: A Metamorphic Testing Approach , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

[28]  David G. Mitchell,et al.  Finding hard instances of the satisfiability problem: A survey , 1996, Satisfiability Problem: Theory and Applications.

[29]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[30]  Sergio Segura,et al.  Automated generation of computationally hard feature models using evolutionary algorithms , 2014, Expert Syst. Appl..

[31]  Myra B. Cohen,et al.  An Orchestrated Survey on Automated Software Test Case Generation I , 2013 .

[32]  Sergio Segura,et al.  Functional testing of feature model analysis tools: a test suite , 2011, IET Softw..

[33]  W. Chan,et al.  A Metamorphic Testing Approach for Online Testing of Service-Oriented Software Applications , 2007, Int. J. Web Serv. Res..

[34]  Peng Wu,et al.  Iterative Metamorphic Testing , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[35]  Marijn Heule SmArT solving: tools and techniques for satisfiability solvers , 2008 .

[36]  Gilles Dequen,et al.  A backbone-search heuristic for efficient solving of hard 3-SAT formulae , 2001, IJCAI.

[37]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007 .

[38]  Jeff Z. Pan,et al.  Verifying feature models using OWL , 2007, J. Web Semant..

[39]  Bruno Legeard,et al.  A taxonomy of model‐based testing approaches , 2012, Softw. Test. Verification Reliab..

[40]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007, 11th International Software Product Line Conference (SPLC 2007).

[41]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

[42]  Krzysztof Czarnecki,et al.  SAT-based analysis of feature models is easy , 2009, SPLC.

[43]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[44]  Martin Gebser,et al.  aspcud: A Linux Package Configuration Tool Based on Answer Set Programming , 2011, LoCoCo.

[45]  Jan Bosch,et al.  A taxonomy of variability realization techniques: Research Articles , 2005 .

[46]  Xuan Liu,et al.  A New Method for Constructing Metamorphic Relations , 2012, 2012 12th International Conference on Quality Software.

[47]  Josep Argelich,et al.  Solving Linux Upgradeability Problems Using Boolean Optimization , 2010, LoCoCo.

[48]  Johannes Mayer,et al.  An Empirical Study on the Selection of Good Metamorphic Relations , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[49]  Tsong Yueh Chen,et al.  Case studies on the selection of useful relations in metamorphic testing , 2004 .

[50]  Zongyuan Yang,et al.  Metamorphic Testing and Its Applications , 2004 .

[51]  Matti Järvisalo,et al.  Testing and debugging techniques for answer set solver development , 2010, Theory and Practice of Logic Programming.

[52]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[53]  Antonio Ruiz Cortés,et al.  Migrating to the Cloud - A Software Product Line based Analysis , 2013, CLOSER.

[54]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[55]  Michael Jang Linux Annoyances for Geeks , 2006 .

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

[57]  Armin Biere,et al.  Model-Based Testing for Verification Back-Ends , 2013, TAP@STAF.

[58]  Martin Gebser,et al.  clasp : A Conflict-Driven Answer Set Solver , 2007, LPNMR.

[59]  Krzysztof Czarnecki,et al.  Variability modeling in the real: a perspective from the operating systems domain , 2010, ASE '10.

[60]  Cyrille Artho,et al.  Why do software packages conflict? , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[61]  VouillonJérôme,et al.  On software component co-installability , 2013 .

[62]  Elaine J. Weyuker,et al.  On Testing Non-Testable Programs , 1982, Comput. J..

[63]  Adnan Darwiche,et al.  A Lightweight Component Caching Scheme for Satisfiability Solvers , 2007, SAT.

[64]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.