YASA: yet another sampling algorithm

Configurable systems allow users to derive customized software variants with behavior and functionalities tailored to individual needs. Developers of these configurable systems need to ensure that each configured software variant works as intended. Thus, software testing becomes highly relevant, but also highly expensive due to large configuration spaces that grow exponentially in the number of features. To this end, sampling techniques, such as t-wise interaction sampling, are used to generate a small yet representative subset of configurations, which can be tested even with a limited amount of resources. However, even state-of-the-art t-wise interaction sampling techniques do not scale well for systems with large configuration spaces. In this paper, we introduce the configurable technique YASA that aims to be more efficient than other existing techniques and enables control over trading-off sampling time and sample size. The general algorithm of YASA is based on the existing technique IPOG, but introduces several improvements and options to adapt the sampling procedure to a given configurable system. We evaluate our approach in terms of sampling time and sample size by comparing it to existing t-wise interaction sampling techniques. We find that YASA performs well even for large-scale system and is also able to produce smaller samples than existing techniques.

[1]  Sandro Schulze,et al.  Towards efficient SPL testing by variant reduction , 2013, VariComp@AOSD.

[2]  Gunter Saake,et al.  On the impact of the optional feature problem: analysis and case studies , 2009, SPLC.

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

[4]  Sebastian Krieter,et al.  IncLing: efficient product-line testing using incremental pairwise sampling , 2016, GPCE.

[5]  Marijn J. H. Heule,et al.  Uniform Sampling from Kconfig Feature Models , 2019 .

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

[7]  Thomas Leich,et al.  Mastering Software Variability with FeatureIDE , 2017, Springer International Publishing.

[8]  Jacques Klein,et al.  Automated and Scalable T-wise Test Case Generation Strategies for Software Product Lines , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

[9]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[10]  Stephan Mennicke,et al.  Is there a mismatch between real-world feature models and product-line research? , 2017, ESEC/SIGSOFT FSE.

[11]  Jeff Yu Lei,et al.  IPOG: A General Strategy for T-Way Software Testing , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[12]  Aurora Trinidad Ramirez Pozo,et al.  Product selection based on upper confidence bound MOEA/D-DRA for testing software product lines , 2016, 2016 IEEE Congress on Evolutionary Computation (CEC).

[13]  Sebastian Oster,et al.  Automated Incremental Pairwise Testing of Software Product Lines , 2010, SPLC.

[14]  Jacques Klein,et al.  Multi-objective test generation for software product lines , 2013, SPLC '13.

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

[16]  Alexander Egyed,et al.  Comparative analysis of classical multi-objective evolutionary algorithms and seeding strategies for pairwise testing of Software Product Lines , 2014, 2014 IEEE Congress on Evolutionary Computation (CEC).

[17]  Dragan Gasevic,et al.  Goal-Oriented Test Case Selection and Prioritization for Product Line Feature Models , 2011, 2011 Eighth International Conference on Information Technology: New Generations.

[18]  Øystein Haugen,et al.  Properties of realistic feature models make combinatorial testing of product lines feasible , 2011, MODELS'11.

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

[20]  Myra B. Cohen,et al.  Integration Testing of Software Product Lines Using Compositional Symbolic Execution , 2012, FASE.

[21]  Donald D. Cowan,et al.  Decision-making coordination and efficient reasoning techniques for feature-based configuration , 2010, Sci. Comput. Program..

[22]  Jackson A. Prado Lima,et al.  Automatic Generation of Search-Based Algorithms Applied to the Feature Testing of Software Product Lines , 2017, SBES'17.

[23]  Arnaud Gotlieb,et al.  Practical pairwise testing for software product lines , 2013, SPLC '13.

[24]  Mikolás Janota Do SAT Solvers Make Good Configurators? , 2008, SPLC.

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

[26]  Øystein Haugen,et al.  Generating better partial covering arrays by modeling weights on sub-product lines , 2012, MODELS'12.

[27]  Vasek Chvátal,et al.  A Greedy Heuristic for the Set-Covering Problem , 1979, Math. Oper. Res..

[28]  Krzysztof Czarnecki,et al.  Reverse engineering feature models , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[29]  Sungwon Kang,et al.  A survey on software product line testing , 2012, SPLC '12.

[30]  Sven Apel,et al.  Scalable analysis of variable software , 2013, ESEC/FSE 2013.

[31]  Sebastian Krieter,et al.  Tool demo: testing configurable systems with FeatureIDE , 2016, GPCE.

[32]  Sarfraz Khurshid,et al.  Reducing Configurations to Monitor in a Software Product Line , 2010, RV.

[33]  Sarfraz Khurshid,et al.  Reducing combinatorics in testing product lines , 2011, AOSD '11.

[34]  John D. McGregor,et al.  Testing a Software Product Line , 2001, PSSE.

[35]  Anastasia Cmyrev,et al.  Efficient and Effective Testing of Automotive Software Product Lines , 2014 .

[36]  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.

[37]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[38]  Pierre-Yves Schobbens,et al.  Covering SPL Behaviour with Sampled Configurations: An Initial Assessment , 2015, VaMoS.

[39]  Silvia Regina Vergilio,et al.  A multi-objective test data generation approach for mutation testing of feature models , 2016, Journal of Software Engineering Research and Development.

[40]  Per Runeson,et al.  Software product line testing - A systematic mapping study , 2011, Inf. Softw. Technol..

[41]  Krzysztof Czarnecki,et al.  A user survey of configuration challenges in Linux and eCos , 2012, VaMoS '12.

[42]  Iago Abal,et al.  Variability Bugs in Highly Configurable Systems , 2018, ACM Trans. Softw. Eng. Methodol..

[43]  Aurora Trinidad Ramirez Pozo,et al.  Hyper-Heuristic Based Product Selection for Software Product Line Testing , 2017, IEEE Computational Intelligence Magazine.

[44]  Gunter Saake,et al.  Effective product-line testing using similarity-based product prioritization , 2016, Software & Systems Modeling.

[45]  Luciano Baresi,et al.  An Introduction to Software Testing , 2006, FoVMT.

[46]  Alexander Egyed,et al.  Using feature model knowledge to speed up the generation of covering arrays , 2013, VaMoS.

[47]  Øystein Haugen,et al.  An algorithm for generating t-wise covering arrays from large feature models , 2012, SPLC '12.

[48]  Wolfgang Schröder-Preikschat,et al.  Static Analysis of Variability in System Software: The 90, 000 #ifdefs Issue , 2014, USENIX Annual Technical Conference.

[49]  Sebastian Krieter,et al.  Product Sampling for Product Lines: The Scalability Challenge , 2019, SPLC.

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