Efficient Regression Testing of Software Product Lines by Reducing Redundant Test Executions
Source abstract
Abstract
Regression testing for software product lines (SPLs) is challenging because it must ensure that all the products of a product family work correctly whenever changes are made. One approach to reducing the cost of regression testing is the regression test selection (RTS), which selects a subset of regression test cases. However, even when RTS is applied, SPL regression testing can still be expensive because, in the product line context, each test case can be executed on more than one product that reuses the test case, which would typically result in a large number of test executions. A promising direction is to eliminate redundant test executions of test cases. We propose a method that, given a test case, identifies a set of products, on which the test case will cover the same sequence of source code statements and produce the same testing results, and then excludes these products from products to apply the test case to. The evaluation results showed that when the full selection approach and the approach of repetitively applying an RTS method for a single software system are used for test selection, our method reduced, respectively, 59.3% and 40.0% of the numbers of test executions of the approaches.
Source: crossref · Quality: baseline
Research context
OpenAlex topics: Software Testing and Debugging Techniques · Software Reliability and Analysis Research · Software Engineering Research
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
School of Computing, KAIST, Daejeon 34141, Korea
Department of Software Engineering, Jeonbuk National University, Jeonju 54896, Korea
Funding
National Research Foundation of Korea
References (44)
Show source-provided references
1. Aggarwal, K.K., and Yogesh, S. (2005). Software Engineering Programs Documentation, Operating Procedures, New Age International Publishers. [2nd ed.]. Revised.
2. Effective regression test case selection: A systematic literature review
3. Pohl, K., Böckle, G., and Van der Linden, F.J. (2005). Software Product Line Engineering: Foundations, Principles and Techniques, Springer Science & Business Media.10.1007/3-540-28901-1 ↗
4. Retest test selection for product-line regression testing of variants and versions of variants10.1016/j.jss.2018.09.090 ↗
5. Neto, P.A.D.M.S., Do Carmo Machado, I., Cavalcanti, Y.C., De Almeida, E.S., Garcia, V.C., and De Lemos Meira, S.R. (2010, January 27–29). A regression testing approach for software product lines architectures. Proceedings of the 4th Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), Bahia, Brazil.10.1109/SBCARS.2010.14 ↗
6. Analyzing regression test selection techniques10.1109/32.536955 ↗
7. Weiss, D.M., and Lai, C.T.R. (1999). Software Product-Line Engineering: A Family-Based Software Development Process, Addison-Wesley.
8. Kim, C.H.P., Khurshid, S., and Batory, D. (2012, January 27–30). Shared execution for efficiently testing product lines. Proceedings of the IEEE 23rd International Symposium on Software Reliability Engineering, Dallas, TX, USA.10.1109/ISSRE.2012.23 ↗
9. Li, J.J., Geppert, B., Rößler, F., and Weiss, D.M. (2007, January 10–14). Reuse execution traces to reduce testing of product lines. Proceedings of the 11th International Systems and Software Product Line Conference, Kyoto, Japan.
10. Nguyen, H.V., Kästner, C., and Nguyen, T.N. (June, January 31). Exploring variability-aware execution for testing plugin-based web applications. Proceedings of the 36th International Conference on Software Engineering, Hyderabad, India.
11. Stricker, V., Metzger, A., and Pohl, K. (2010, January 13–17). Avoiding redundant testing in application engineering. Proceedings of the 14th International Conference on Software Product Lines, Jejudo, Korea.10.1007/978-3-642-15579-6_16 ↗
12. Faster variational execution with transparent bytecode transformation10.1145/3276487 ↗
13. Gligoric, M., Eloussi, L., and Marinov, D. (2015, January 12–17). Practical regression test selection with dynamic file dependencies. Proceedings of the 2015 International Symposium on Software Testing and Analysis, Baltimore, MD, USA.10.1145/2771783.2771784 ↗
14. Gregg, S.P., Albert, D.M., and Clements, P. (2017, January 25–29). Product line engineering on the right side of the “V”. Proceedings of the 21st International Systems and Software Product Line Conference, Sevilla, Spain.10.1145/3106195.3106219 ↗
15. Young, B., Flores, R., Cheatwood, J., Peterson, T., and Clements, P. (2017, January 25–29). Product line engineering meets model based engineering in the defense and automotive industries. Proceedings of the 21st International Systems and Software Product Line Conference, Sevilla, Spain.10.1145/3106195.3106220 ↗
16. (2020, December 03). FeatureIDE. Available online: http://www.featureide.com/.
17. (2020, December 03). Pure:variants. Available online: https://www.pure-systems.com/.
18. (2020, December 03). CIDE. Available online: http://ckaestne.github.io/CIDE/.
19. Configuration management model in evolutionary software product line10.1142/S0218194016500182 ↗
20. A systematic classification of security regression testing approaches10.1007/s10009-015-0365-2 ↗
21. Optimal control-based regression test selection for service-oriented workflow applications10.1016/j.jss.2016.06.065 ↗
22. Qu, X., Acharya, M., and Robinson, B. (2012, January 23–28). Configuration selection using code change impact analysis for regression testing. Proceedings of the 28th IEEE International Conference on Software Maintenance, Tento, Italy.10.1109/ICSM.2012.6405263 ↗
23. SPIRITuS: A simple information retrieval regression test selection approach10.1016/j.infsof.2018.03.004 ↗
24. Marimuthu, C., and Chandrasekaran, K. (2017, January 25–29). Systematic studies in software product lines: A tertiary study. Proceedings of the 21st International Systems and Software Product Line Conference, Sevilla, Spain.10.1145/3106195.3106212 ↗
25. Rivest, R., and Dusse, S. (1992). The MD5 Message-Digest Algorithm, MIT Laboratory for Computer Science and RSA Data Security, Inc.10.17487/rfc1321 ↗
26. (2020, December 03). BCEL. Available online: http://commons.apache.org/proper/commons-bcel/.
27. (2020, December 03). SPL2go. Available online: http://spl2go.cs.ovgu.de/projects/.
28. Kim, J., Batory, D., and Dig, D. (2017, January 25–29). Refactoring java software product lines. Proceedings of the 21st International Systems and Software Product Line Conference, Sevilla, Spain.10.1145/3106195.3106201 ↗
29. Mutation operators for feature-oriented software product lines
30. Meinicke, J., Wong, C.P., Kästner, C., Thüm, T., and Saake, G. (2016, January 3–7). On essential configuration complexity: Measuring interactions in highly-configurable systems. Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, Singapore.10.1145/2970276.2970322 ↗
31. (2020, December 03). LocMetrics. Available online: http://www.locmetrics.com/.
32. Fraser, G., and Arcuri, A. (2011, January 5–9). EvoSuite: Automatic test suite generation for object-oriented software. Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, Szeged, Hungary.10.1145/2025113.2025179 ↗
33. (2020, December 03). PIT. Available online: http://pitest.org/.
34. An analysis and survey of the development of mutation testing10.1109/TSE.2010.62 ↗
35. Grün, B.J., Schuler, D., and Zeller, A. (2009, January 1–4). The impact of equivalent mutants. Proceedings of the 2009 International Conference on Software Testing, Verification, and Validation Workshops, Denver, Colorado.10.1109/ICSTW.2009.37 ↗
36. Automated code-based test selection for software product line regression testing10.1016/j.jss.2019.110419 ↗
37. The proof and measurement of association between two things10.2307/1412159 ↗
38. Campos, J., Panichella, A., and Fraser, G. (2019, January 26–27). EvoSuiTE at the SBST 2019 tool competition. Proceedings of the 12th International Workshop on Search-Based Software Testing, Montreal, QC, Canada.10.1109/SBST.2019.00017 ↗
39. Just, R., Jalali, D., Inozemtseva, L., Ernst, M.D., Holmes, R., and Fraser, G. (2014, January 16–22). Are mutants a valid substitute for real faults in software testing?. Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, Hong Kong, China.10.1145/2635868.2635929 ↗
40. Ensan, A., Bagheri, E., Asadi, M., Gasevic, D., and Biletskiy, Y. (2011, January 11–13). Goal-oriented test case selection and prioritization for product line feature models. Proceedings of the Information Technology, New Generations (ITNG), Las Vegas, NV, USA.10.1109/ITNG.2011.58 ↗
41. Baller, H., Lity, S., Lochau, M., and Schaefer, I. (April, January 31). Multi-objective test suite optimization for incremental product family testing. Proceedings of the IEEE 7th International Conference on Software Testing, Verification and Validation, Cleveland, OH, USA.
42. A learning algorithm for optimizing continuous integration development and testing practice10.1002/spe.2661 ↗
43. Marijan, D., Liaaen, M., Gotlieb, A., Sen, S., and Ieva, C. (2017, January 13–17). Titan: Test suite optimization for highly configurable software. Proceedings of the 2017 IEEE International Conference on Software Testing, Verification and Validation (ICST), Tokyo, Japan.10.1109/ICST.2017.60 ↗
44. Cost-effective test suite minimization in product lines using search techniques10.1016/j.jss.2014.08.024 ↗