Abstract
Product Line Engineering (PLE) is a crucial practice in many software development environments where software systems are complex and developed for multiple customers with varying needs. At the same time, many development processes are use case-driven and this strongly influences their requirements engineering and system testing practices. In this paper, we propose, apply, and assess an automated system test case classification and prioritization approach specifically targeting system testing in the context of use case-driven development of product families. Our approach provides: (i) automated support to classify, for a new product in a product family, relevant and valid system test cases associated with previous products, and (ii) automated prioritization of system test cases using multiple risk factors such as fault-proneness of requirements and requirements volatility in a product family. Our evaluation was performed in the context of an industrial product family in the automotive domain. Results provide empirical evidence that we propose a practical and beneficial way to classify and prioritize system test cases for industrial product lines.
Similar content being viewed by others
Notes
For accessing the tool, see: https://sntsvv.github.io/PUMconf/.
In PL use case diagrams, use cases are connected to variation points with an include dependency.
References
Al-Hajjaji M, Thum T, Meinicke J, Lochau M, Saake G (2014) Similarity-based prioritization in software product-line testing. In: SPLC’14, pp 197–206
Al-Hajjaji M, Thum T, Lochau M, Meinicke J, Saake G (2016) Effective product-line testing using similarity-based product prioritization. Softw Syst Model
Al-Hajjaji M, Kruger J, Schulze S, Leich T, Saake G (2017a) Efficient product-line testing using cluster-based product prioritization. In: AST’17, pp 16–22
Al-Hajjaji M, Lity S, Lachmann R, Thum T, Schaefer I, Saake G (2017b) Delta-oriented product prioritization for similarity-based product-line testing. In: VACE’17, pp 34–40
Arafeen MJ, Do H (2013) Test case prioritization using requirements-based clustering. In: ICST’13, pp 312–321
Arrieta A, Wang S, Sagardui G, Etxeberria L (2016) Test case prioritization of configurable cyber-physical systems with weight-based search algorithms. In: GECCO’16, pp 1053–1060
Arrieta A, Sagardui G, Etxeberria L, Zander J (2017) Automatic generation of test system instances for configurable cyber-physical sytems. Softw Qual J 25(3):1041–1083
Arrieta A, Wang S, Sagardui G, Etxeberria L (2019) Search-based test case prioritization for simulation-based testing of cyber-physical system product lines. J Syst Softw 149:1–34
Baller H, Lity S, Lochau M, Schaefer I (2014) Multi-objective test suite optimization for incremental product family testing. In: ICST’14, pp 303–312
Bertolino A, Gnesi S (2003) PLUTO: a test methodology for product families. In: PFE’03, pp 181–197
Binkley D (1997) Semantics guided regression test cost reduction. IEEE Trans Softw Eng 23(8):498–516
Briand LC, Labiche Y, He S (2009) Automating regression test selection based on uml designs. Inf Softw Technol 51:16–30
Bühne S, Halmans G, Pohl K (2003) Modeling dependencies between variation points in use case diagrams. In: REFSQ’03, pp 59–69
Cabral I, Cohen MB, Rothermel G (2010) Improving the testing and testability of software product lines. In: SPLC’10, pp 241–255
Chen Y, Probert RL, Sims DP (2002) Specification-based regression test selection with risk analysis. In: CASCON’02
Clarke D, Helvensteijn M, Schaefer I (2010) Abstract delta modeling. In: GPCE’10, pp 13–22
Coleman D, Holland P, Kaden N, Klema V, Peters SC (1980) A system of subroutines for iteratively reweighted least squares computations. ACM Trans Math Softw 6(3):327–336
Da Mota Silveira Neto PA, do Carmo Machado I, McGregor JD, de Almeida ES, de Lemos Meira SR (2011) A systematic mapping study of software product line testing. Inf Softw Technol 53:407–423
Devroey X, Perrouin G, Cordy M, Schobbens PY, Legay A, Heymans P (2014) Towards statistical prioritization for software product lines testing. In: VaMoS’14, pp 1–7
Devroey X, Perrouin G, Cordy M, Samih H, Legay A, Schobbens PY, Heymans P (2017) Statistical prioritization for software product line testing: an experience report. Softw Syst Model 16(1):153–171
Do H (2016) Recent advances in regression testing techniques. In: Advances in computers, vol 103
Do H, Rothermel G (2006) On the use of mutation faults in empirical assessments of test case prioritization techniques. IEEE Trans Softw Eng 32(9):733–752
do Carmo Machado I, Mcgregor JD, Cavalcanti YC, De Almeida ES (2014) On strategies for testing software product lines: a systematic literature review. Inf Softw Technol 56(10):1183–1199
Dukaczewski M, Schaefer I, Lachmann R, Lochau M (2013) Requirements-based delta-oriented spl testing. In: PLEASE’13, pp 49–52
Eclipse EMF (2018) https://eclipse.org/modeling/emf/
IEE (2018) (International Electronics & Engineering) S.A. http://www.iee.lu/
Engström E (2013) Supporting decisions on regression test scoping in a software product line context—from evidence to practice. Ph.D. thesis, Lund University
Engström E, Runeson P (2011) Software product line testing—a systematic mapping study. Inf Softw Technol 53:2–13
Engström E, Runeson P, Skoglund M (2010) A systematic review on regression test selection techniques. Inf Softw Technol 52(1):14–30
Engström E, Runeson P, Ljung A (2011) Improving regression testing transparency and efficiency with history-based prioritization—an industrial case study. In: ICST’11, pp 367–376
Ensan A, Bagheri E, Asadi M, Gasevic D, Biletskiy Y (2011) Goal-oriented test case selection and prioritization for product line feature models. In: ITNG’11, pp 291–298
Geppert B, Li J, Weiss DM (2004) Towards generating acceptance tests for product lines. Springer, Berlin, pp 35–48
Gonzales-Sanchez A, Piel E, Abreu R, Gross HG, van Gemund AJ (2011) Prioritizing tests for software fault diagnosis. Softw Pract Exp 41 (10):1105–1129
Haidry S, Miller T (2013) Using dependency structures for prioritization of functional test suites. IEEE Trans Softw Eng 39(2):258–275
Hajri I, Goknil A, Briand LC, Stephany T (2015) Applying product line use case modeling in an industrial automotive embedded system: lessons learned and a refined approach. In: 338–347
Hajri I, Goknil A, Briand LC, Stephany T (2016) PUMConf: a tool to configure product specific use case and domain models in a product line. In: SIGSOFT FSE’16, pp 1008–1012
Hajri I, Goknil A, Briand LC, Stephany T (2017a) Incremental reconfiguration of product specific use case models for evolving configuration decisions. In: REFSQ’17, pp 3–21
Hajri I, Goknil A, Briand LC (2017b) A change management approach in product lines for use case-driven development and testing. In: Poster Session—REFSQ’17
Hajri I, Goknil A, Briand LC, Stephany T (2018a) Change impact analysis for evolving configuration decisions in product line use case models. J Syst Softw 139:211–237
Hajri I, Goknil A, Briand LC, Stephany T (2018b) Configuring use case models in product families. Softw Syst Model 17(3):939–971
Halmans G, Pohl K (2003) Communicating the variability of a software-product family to customers. Softw Syst Model 22(1):15–36
Harrold MJ, Jones JA, Li T, Liang D (2001) Regression test selection for java software. In: OOPSLA’01
Hemmati H, Briand L, Arcuri A, Ali S (2010) An enhanced test case selection approach for model-based testing: an industrial case study. In: FSE’10, pp 267–276
Hemmati H, Fang Z, Mantyla MV, Adams B (2017) Prioritizing manual test cases in rapid release environments. Softw Test Verif Reliab 27(6):e1609
Henard C, Papadakis M, Perrouin G, Klein J, Heymans P, Traon YL (2014) Bypassing the combinatorial explosion: using similarity to generate and prioritize t-wise test configurations for software product lines. IEEE Trans Softw Eng 40(7):650–670
Henry J, Henry S (1993) Quantitative assessment of the software maintenance process and requirements volatility. In: CSC’93, pp 346–351
Hosmer DW Jr, Lemeshow S, Sturdivant RX (2013) Applied logistic regression. Wiley, New Jersey
ISO (2018) ISO-26262: road vehicles—functional safety
Johansen MF, Haugen Ø, Fleurey F (2011) A survey of empirics of strategies for software product line testing. In: ICSTW’11. IEEE, pp 266–269
Kamsties E, Pohl K, Reis S, Reuys A (2004) Testing variabilities in use case models. In: PFE’03, pp 6–18
Khatibsyarbini M, Isa MA, Jawawi DN, Tumeng R (2018) Test case prioritization approaches in regression testing: A systematic literature review. Inf Softw Technol 93:74–93
Knapp A, Roggenbach M, Schlingloff BH (2014) On the use of test cases in model-based software product line development. In: SPLC’14, pp 247–251
Korel B, Koutsogiannakis G, Tahat LH (2008) Application of system models in regression test suite prioritization. In: ICSM’08, pp 247–256
Krishnamoorthi R, Mary SSA (2009) Factor oriented requirement coverage based system test case prioritization of new and regression test cases. Inf Softw Technol 51:799–808
Kundu D, Sarma M, Sarma D, Mall R (2009) System testing for object-oriented systems with test case prioritization. Softw Test Verif Reliab 19(4):297–333
Kung DC, Gao J, Hsia P (1995) Class firewall, test order, and regression testing of object-oriented programs. J Object-Oriented Program 8(2):51–65
Lachmann R, Lity S, Lischke S, Beddig S, Schulze S, Schaefer I (2015) Delta-oriented test case prioritization for integration testing of software product lines. In: SPLC’15, pp 81–90
Lachmann R, Lity S, Al-Hajjaji M, Furchtegott F, Schaefer I (2016a) Fine-grained test case prioritization for integration testing of delta-oriented software product lines. In: FOSD’16
Lachmann R, Nieke M, Seidl C, Schaefer I, Schulze S (2016b) System-level test case prioritization using machine learning. In: ICMLA’16, pp 361–368
Lachmann R, Beddig S, Lity S, Schulze S, Schaefer I (2017) Risk-based integration testing of software product lines. In: VaMoS’17, pp 52–59
Larman C (2002) Applying UML and patterns: an introduction to object-oriented analysis and design and the unified process. Prentice Hall Professional
Lee J, Kang S, Lee D (2012) A survey on software product line testing. In: SPLC’12, pp 31–40
Li Z, Harman M, Hierons RM (2007) Search algorithms for regression test prioritization. IEEE Trans Softw Eng 33(4):225–237
Lity S, Lochau M, Schaefer I, Goltz U (2012) Delta-oriented model-based spl regression testing. In: PLEASE’12, pp 53–56
Lity S, Morbach T, Thum T, Schaefer I (2016) Applying incremental model slicing to product-line regression testing. In: ICSR’16, pp 3–19
Lity S, Al-Hajjaji M, Thum T, Schaefer I (2017) Optimizing product orders using graph algorithms for improving incremental product-line analysis. In: VaMoS’17, pp 60–67
Lochau M, Lity S, Lachmann R, Schaefer I, Goltz U (2014) Delta-oriented model-based integration testing of large-scale systems. J Syst Softw 91:63–84
Mai PX, Goknil A, Shar LK, Pastore F, Briand LC, Shaame S (2018a) Modeling security and privacy requirements: a use case-driven approach. Inf Softw Technol 100:165–182
Mai PX, Pastore F, Goknil A, Briand LC (2018b) A natural language programming approach for requirements-based security testing. In: ISSRE’18, pp 58–69
Mai PX, Pastore F, Goknil A, Briand LC (2019) MCP: a security testing tool driven by requirements. In: ICSE’19, pp 55–58
Malaiya YK, Denton H (1999) Requirements volatility and defect density. In: ISSRE’99, pp 285–298
Mirarab S, Ganjali A, Tahvildari L, Li S, Liu W, Morrissey M (2008) A requirement-based software testing framework: an industrial practice. In: ICSM’08, pp 452–455
Muccini H (2007) Using model differencing for architecture-level regression testing. In: SEAA’07
Muccini H, Dias M, Richardson DJ (2006) Software architecture-based regression testing. J Syst Softw 79:1379–1396
Nardo DD, Alshahwan N, Briand L, Labiche Y (2015) Coverage-based regression test case selection, minimization and prioritization: a case study on an industrial system. Softw Test Verif Reliab 25(4):371–396
Nebut C, Fleurey F, Traon YL, Jezequel JM (2006a) Automatic test generation: a use case driven approach. IEEE Trans Softw Eng 32 (3):140–155
Nebut C, Traon YL, Jezequel JM (2006b) System testing of product families: from requirements to test cases. In: Software Product Lines. Springer, Berlin
Oster S, Wübbeke A, Engels G, Schürr A (2011) A survey of model-based software product lines testing. In: Model-based testing for embedded systems, pp 338–381
Parejo JA, Sánchez A B, Segura S, Ruiz-Cortés A, Lopez-Herrejon RE, Egyed A (2016) Multi-objective test case prioritization in highly configurable systems: a case study. J Syst Softw 122:287–310
Pohl K, Bockle G, van der Linden F (2005) Software product line engineering: foundations, principles, and techniques. Springer, Berlin
Qu X, Acharya M, Robinson B (2011) Impact analysis of configuration changes for test case selection. In: ISSRE’11, pp 140–149
Ramesh B, Jarke M (2001) Toward reference models for requirements traceability. IEEE Trans Softw Eng 27(1):58–93
Reuys A, Kamsties E, Pohl K, Reis S (2005) Model-based system testing of software product families. In: CAiSE’05, pp 519–534
Reuys A, Reis S, Kamsties E, Pohl K (2006) The ScenTED method for testing software product lines. In: Software product lines, pp 479–520
Rice JA (2007) Mathematical statistics and data analysis. Thomson Higher Education
Rothermel G, Harrold MJ (1996) Analyzing regression test selection techniques. IEEE Trans Softw Eng 22(8):529–551
Rothermel G, Harrold MJ (1997) A safe, efficient regression test selection technique. ACM Trans Softw Eng Methodol 6(2):173–210
Rothermel G, Harrold MJ, Dedhia J (2000) Regression test selection for C++ software. Softw Test Verif Reliab 10(2):77–109
Rothermel G, Untch RH, Chu C, Harrold MJ (2001) Prioritizing test cases for regression testing. IEEE Trans Softw Eng 27(10):929–948
RTCA (2018) EUROCAE: DO-178C: software considerations in airborne systems and equipment certification
Runeson P, Engström E (2012) Regression testing in software product line engineering. In: Advances in computers, vol 86, pp 223–263
Schurr A, Oster S, Markert F (2010) Model-driven software product lines testing: an integrated approach. In: SOFSEM’10, pp 112–131
Sokolova M, Lapalme G (2009) A systematic analysis of performance measures for classification tasks. Inf Process Manag 45(4):427–437
Srikanth H, Banerjee S (2012) Improving test efficiency through system test prioritization. J Syst Softw 85:1176–1187
Srikanth H, Williams L, Osborne J (2005) System test case prioritization of new and regression test cases. In: ESEM’05, pp 64–73
Srikanth H, Williams L, Osborne J (2014) Towards the prioritization of system test cases. Softw Test Verif Reliab 24:320–337
Srikanth H, Hettiarachchi C, Do H (2016) Requirements based test prioritization using risk factors: an industrial study. Inf Softw Technol 69:71–83
Stricker V, Metzger A, Pohl K (2010) Avoiding redundant testing in application engineering. In: SPLC’10, pp 226–240
Tahat L, Korel B, Harman M, Ural H (2012) Regression test suite prioritization using system models. Softw Test Verif Reliab 22(7):481–506
Tevanlinna A, Taina J, Kauppinen R (2004) Product family testing: a survey. ACM SIGSOFT Softw Eng Notes 29(2):12–12
The R project (2018) https://www.r-project.org
Tonella P, Avesani P, Susi A (2006) Using the case-based ranking methodology for test case prioritization. In: ICSM’06, pp 123–133
Uzuncaova E, Garcia D, Khurshid S, Batory DS (2008) Testing software product lines using incremental test generation. In: ISSRE’08, pp 249–258
Uzuncaova E, Khurshid S, Batory DS (2010) Incremental test generation for software product lines. IEEE Trans Softw Eng 36(3):309–322
Vaysburg B, Tahat LH, Korel B (2002) Dependence analysis in reduction of requirement based test suites. In: ISSTA’02, pp 107–111
von Mayrhauser A, Zhang N (1999) Automated regression testing using dbt and sleuth. J Softw Maint 11(2):93–116
Wang S, Buchmann D, Ali S, Gotlieb A, Pradhan D, Liaaen M (2014) Multi-objective test prioritization in software product line testing: an industrial case study. In: SPLC’14, pp 32–41
Wang C, Pastore F, Goknil A, Briand LC, Iqbal MZZ (2015a) Automatic generation of system test cases from use case specifications. In: ISSTA’15, pp 385–396
Wang C, Pastore F, Goknil A, Briand LC, Iqbal MZZ (2015b) UMTG: a toolset to automatically generate system test cases from use case specifications. In: ESEC/SIGSOFT FSE’15, pp 942–945
Wang S, Ali S, Gotlieb A, Liaaen M (2016) A systematic test case selection methodology for product lines: results and insights from an industrial case study. Empir Softw Eng 21(4):1586–1622
Wang S, Ali S, Gotlieb A, Liaaen M (2017) Automated product line test case selection: industrial case study and controlled experiment. Softw Syst Model 16(2):417–441
Wang C, Pastore F, Goknil A, Briand LC (2020) Automatic generation of acceptance test cases from use case specifications: an nlp-based approach. IEEE Trans Softw Eng
Wong WE, Horgan JR, London S, Bellcore HA (1997) A study of effective regression testing in practice. In: ISSRE’97, pp 230–238
Yang Q, Li JJ, Weiss DM (2009) A survey of coverage-based testing tools. Comput J 52(5):589–597
Yoo S, Harman M (2012) Regression testing minimization, selection and prioritization: a survey. Softw Test Verif Reliab 22(2):67–120
Yue T, Briand LC, Labiche Y (2013) Facilitating the transition from use case models to analysis models: approach and experiments. ACM Trans Softw Eng Methodol 22:1–38
Zhang M, Yue T, Ali S, Selic B, Okariz O, Norgre R, Intxausti K (2018) Specifying uncertainty in use case models. J Syst Softw 144:573–603
Acknowledgments
We gratefully acknowledge funding from FNR and IEE S.A. Luxembourg, the grants FNR/P10/03 and FNR10045046, the Canada Research Chair program, and the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 694277).
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Sven Apel
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Hajri, I., Goknil, A., Pastore, F. et al. Automating system test case classification and prioritization for use case-driven testing in product lines. Empir Software Eng 25, 3711–3769 (2020). https://doi.org/10.1007/s10664-020-09853-4
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-020-09853-4