Effective product-line testing using similarity-based product prioritization

A software product line comprises a family of software products that share a common set of features. Testing an entire product-line product-by-product is infeasible due to the potentially exponential number of products in the number of features. Accordingly, several sampling approaches have been proposed to select a presumably minimal, yet sufficient number of products to be tested. Since the time budget for testing is limited or even a priori unknown, the order in which products are tested is crucial for effective product-line testing. Prioritizing products is required to increase the probability of detecting faults faster. In this article, we propose similarity-based prioritization, which can be efficiently applied on product samples. In our approach, we incrementally select the most diverse product in terms of features to be tested next in order to increase feature interaction coverage as fast as possible during product-by-product testing. We evaluate the gain in the effectiveness of similarity-based prioritization on three product lines with real faults. Furthermore, we compare similarity-based prioritization to random orders, an interaction-based approach, and the default orders produced by existing sampling algorithms considering feature models of various sizes. The results show that our approach potentially increases effectiveness in terms of fault detection ratio concerning faults within real-world product-line implementations as well as synthetically seeded faults. Moreover, we show that the default orders of recent sampling algorithms already show promising results, which, however, can still be improved in many cases using similarity-based prioritization.

[1]  David M. Weiss,et al.  The Product Line Hall of Fame , 2008, 2008 12th International Software Product Line Conference.

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

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

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

[5]  Robert J. Hall,et al.  Fundamental Nonmodularity in Electronic Mail , 2004, Automated Software Engineering.

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

[7]  Pierre-Yves Schobbens,et al.  Search-based Similarity-driven Behavioural SPL Testing , 2016, VaMoS.

[8]  Myra B. Cohen,et al.  Evaluating improvements to a meta-heuristic search for constrained interaction testing , 2011, Empirical Software Engineering.

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

[10]  Mary Jean Harrold,et al.  Testing: a roadmap , 2000, ICSE '00.

[11]  Sven Apel,et al.  Facilitating Reuse in Multi-goal Test-Suite Generation for Software Product Lines , 2015, FASE.

[12]  Jacques Klein,et al.  PLEDGE: a product line editor and test generation tool , 2013, SPLC '13 Workshops.

[13]  Patrícia Duarte de Lima Machado,et al.  On the use of a similarity function for test case selection in the context of model‐based testing , 2011, Softw. Test. Verification Reliab..

[14]  Dragan Gasevic,et al.  Grammar-based test generation for software product line feature models , 2012, CASCON.

[15]  Richard W. Hamming,et al.  Error detecting and error correcting codes , 1950 .

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

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

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

[19]  Thomas Leich,et al.  FeatureIDE: An extensible framework for feature-oriented software development , 2014, Sci. Comput. Program..

[20]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[22]  Pierre-Yves Schobbens,et al.  Towards statistical prioritization for software product lines testing , 2013, VaMoS.

[23]  Klaus Havelund,et al.  Model Checking Programs , 2004, Automated Software Engineering.

[24]  Jacques Klein,et al.  Bypassing the Combinatorial Explosion: Using Similarity to Generate and Prioritize T-Wise Test Configurations for Software Product Lines , 2014, IEEE Transactions on Software Engineering.

[25]  Linda M. Northrop,et al.  A Framework for Software Product Line Practice , 1999, ECOOP Workshops.

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

[27]  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).

[28]  Malte Lochau,et al.  Towards incremental test suite optimization for software product lines , 2014, FOSD '14.

[29]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[30]  Atif M. Memon,et al.  Test suite prioritization by interaction coverage , 2007, DOSTA '07.

[31]  Myra B. Cohen,et al.  Interaction testing of highly-configurable systems in the presence of constraints , 2007, ISSTA '07.

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

[33]  Jacques Klein,et al.  Pairwise testing for software product lines: comparison of two approaches , 2012, Software Quality Journal.

[34]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

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

[36]  Gunter Saake,et al.  On essential configuration complexity: Measuring interactions in highly-configurable systems , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

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

[38]  Mary Lou Soffa,et al.  TimeAware test suite prioritization , 2006, ISSTA '06.

[39]  Daniel Lohmann,et al.  Understanding linux feature distribution , 2012, MISS '12.

[40]  Paul Clements,et al.  A framework for software product line practice - version 2 , 1999 .

[41]  Lionel C. Briand,et al.  An Industrial Investigation of Similarity Measures for Model-Based Test Case Selection , 2010, 2010 IEEE 21st International Symposium on Software Reliability Engineering.

[42]  Mark Ryan,et al.  Feature integration using a feature construct , 2001, Sci. Comput. Program..

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

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

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

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

[47]  Mark Harman,et al.  Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge , 2009, ISSTA.

[48]  Gregg Rothermel,et al.  Prioritizing test cases for regression testing , 2000, ISSTA '00.

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

[50]  D. Richard Kuhn,et al.  Software fault interactions and implications for software testing , 2004, IEEE Transactions on Software Engineering.

[51]  Sven Apel,et al.  Strategies for product-line verification: Case studies and experiments , 2013, 2013 35th International Conference on Software Engineering (ICSE).

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

[53]  Hung Viet Nguyen,et al.  Exploring variability-aware execution for testing plugin-based web applications , 2014, ICSE.

[54]  Malte Lochau,et al.  Multi-objective Test Suite Optimization for Incremental Product Family Testing , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[55]  Charles J. Colbourn,et al.  One-test-at-a-time heuristic search for interaction test suites , 2007, GECCO '07.

[56]  Sandro Schulze,et al.  Delta-oriented test case prioritization for integration testing of software product lines , 2015, SPLC.

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

[58]  Mustafa Al-Hajjaji Scalable Sampling and Prioritization for Product-Line Testing , 2015, Software Engineering & Management.

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

[60]  Morris Sloman,et al.  CONIC: an integrated approach to distributed computer control systems , 1983 .

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

[62]  Michael Jackson,et al.  Distributed Feature Composition: A Virtual Architecture for Telecommunications Services , 1998, IEEE Trans. Software Eng..

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

[64]  John D. McGregor,et al.  On strategies for testing software product lines: A systematic literature review , 2014, Inf. Softw. Technol..