Acceptance Testing; Test Case Prioritization; Search-based Software Engineering; Multi-objective Optimization; Cyber Physical Systems
Abstract :
[en] Acceptance testing validates that a system meets its requirements and determines whether it can be sufficiently trusted and put into operation. For cyber physical systems (CPS), acceptance testing is a hardware-in-the-loop process conducted in a (near-)operational environment. Acceptance testing of a CPS often necessitates that the test cases be prioritized, as there are usually too many scenarios to consider given time constraints. CPS acceptance testing is further complicated by the uncertainty in the environment and the impact of testing on hardware. We propose an automated test case prioritization approach for CPS acceptance testing, accounting for time budget constraints, uncertainty, and hardware damage risks. Our approach is based on multi-objective search, combined with a test case minimization algorithm that eliminates redundant operations from an ordered sequence of test cases. We evaluate our approach on a representative case study from the satellite domain. The results indicate that, compared to test cases that are prioritized manually by satellite engineers, our automated approach more than doubles the number of test cases that fit into a given time frame, while reducing to less than one third the number of operations that entail the risk of damage to key hardware components.
Research center :
Interdisciplinary Centre for Security, Reliability and Trust (SnT) > SVV - Software Verification and Validation
Disciplines :
Computer science
Author, co-author :
SHIN, Seung Yeob ; University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
NEJATI, Shiva ; University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
SABETZADEH, Mehrdad ; University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
BRIAND, Lionel ; University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
Zimmer, Frank; SES Networks
External co-authors :
no
Language :
English
Title :
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems: A Multi-Objective Search-Based Approach
Publication date :
July 2018
Event name :
ACM SIGSOFT International Symposium on Software Testing and Analysis
Event place :
Amsterdam, Netherlands
Event date :
from 16-07-2018 to 21-07-2018
Audience :
International
Main work title :
Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA'18)
Publisher :
ACM, New York, United States
ISBN/EAN :
978-1-4503-5699-2
Peer review/Selection committee :
Peer reviewed
Focus Area :
Security, Reliability and Trust
European Projects :
H2020 - 694277 - TUNE - Testing the Untestable: Model Testing of Complex Software-Intensive Systems
Paul Ammann and Jeff Offutt. 2016. Introduction to Software Testing (2 ed.). Cambridge University Press.
Andrea Arcuri and Lionel Briand. 2014. A Hitchhiker's Guide to Statistical Tests for Assessing Randomized Algorithms in Software Engineering. Software Testing Verification and Reliability 24, 3 (2014), 219-250.
Andrea Arcuri and Gordon Fraser. 2011. On Parameter Tuning in Search Based Software Engineering. In Proceedings of the 3rd International Conference on Search Based Software Engineering (SSBSE'11). 33-47.
Earl T. Barr, Mark Harman, Phil McMinn, Muzammil Shahbaz, and Shin Yoo. 2015. The Oracle Problem in Software Testing: A Survey. IEEE Transactions on Software Engineering 41 (2015), 507-525.
Jennifer Black, Emanuel Melachrinoudis, and David Kaeli. 2004. Bi-Criteria Models for All-Uses Test Suite Reduction. In Proceedings of the 26th International Conference on Software Engineering (ICSE'04). 106-115.
Dimo Brockhoff, Tobias Friedrich, and Frank Neumann. 2008. Analyzing Hypervolume Indicator Based Algorithms. In Proceedings of the 10th International Conference on Parallel Problem Solving from Nature (PPSN X). 651-660.
Benjamin Busjaeger and Tao Xie. 2016. Learning for Test Prioritization: An Industrial Case Study. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE'16). 975-980.
Cagatay Catal and Deepti Mishra. 2013. Test Case Prioritization: A Systematic Mapping Study. Software Quality Journal 21, 3 (2013), 445-478.
Lee Copeland. 2003. A Practitioner's Guide to Software Test Design. Artech House.
Lisa Crispin, Tip House, and Carol Wade. 2001. The Need for Speed: Automating Acceptance Testing in an Extreme Programming Environment. In Proceedings of the 2nd International Conference on Extreme Programming and Flexible Processes in Software Engineering (XP'01). 96-104.
Fred D. Davis and Viswanath Venkatesh. 2004. Toward Preprototype User Acceptance Testing of New Information Systems: Implications for Software Project Management. IEEE Transactions on Engineering Management 51 (2004), 31-46. Issue 1.
Kalyanmoy Deb, Amrit Pratap, Sameer Agarwal, and T. Meyarivan. 2002. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation 6, 2 (2002), 182-197.
Juan J. Durillo and Antonio J. Nebro. 2011. jMetal: A Java framework for multiobjective optimization. Advances in Engineering Software 42 (2011), 760-771.
Sebastian Elbaum, Alexey G. Malishevsky, and Gregg Rothermel. 2002. Test Case Prioritization: A Family of Empirical Studies. IEEE Transactions on Software Engineering 28, 2 (2002), 159-182.
Emelie Engström, Per Runeson, and Mats Skoglund. 2010.A Systematic Review on Regression Test Selection Techniques. Information and Software Technology 52, 1 (2010), 14-30.
Filomena Ferrucci, Mark Harman, Jian Ren, and Federica Sarro. 2013. Not Going to Take This Anymore: Multi-objective Overtime Planning for Software Engineering Projects. In Proceedings of the 35th International Conference on Software Engineering (ICSE'13). 462-471.
Malte Finsterwalder. 2001. Automating Acceptance Tests for GUI Applications in an Extreme Programming Environment. In Proceedings of the 2nd International Conference on Extreme Programming and Flexible Processes in Software Engineering (XP'01). 114-117.
Ronald A. Fisher. 1959. Statistical Methods and Scientific Inference. Oliver & Boyd.
Milos Gligoric, Lamyaa Eloussi, and Darko Marinov. 2015. Practical Regression Test Selection with Dynamic File Dependencies. In Proceedings of the 2015 International Symposium on Software Testing and Analysis (ISSTA'15). 211-222.
David E. Goldberg and Robert Lingle Jr. 1985. Alleles, Loci and the Traveling Salesman Problem. In Proceedings of the 1st International Conference on Genetic Algorithms (ICGA'85). 154-159.
Alex Groce, Mohammad Amin Alipour, Chaoqiang Zhang, Yang Chen, and John Regehr. 2016. Cause Reduction: Delta Debugging, Even Without Bugs. Software Testing, Verification & Reliability 26, 1 (2016), 40-68.
Dan Hao, Lu Zhang, and Hong Mei. 2016. Test-case prioritization: achievements and challenges. Frontiers of Computer Science 10, 5 (2016), 769-777.
Mark Harman, S. Afshin Mansouri, and Yuanyuan Zhang. 2012. Search-based Software Engineering: Trends, Techniques and Applications. Comput. Surveys 45, 1, Article 11 (2012), 61 pages.
M. Jean Harrold, Rajiv Gupta, and Mary Lou Soffa. 1993. A Methodology for Controlling the Size of a Test Suite. ACM Transactions on Software Engineering and Methodology 2, 3 (1993), 270-285.
Børge Haugset and Geir Kjetil Hanssen. 2008. Automated Acceptance Testing: A Literature Review and an Industrial Case Study. In Proceedings of the Agile 2008 (AGILE'08). 27-38.
Børge Haugset and Tor Stålhane. 2012. Automated Acceptance Testing as an Agile Requirements Engineering Practice. In Proceedings of the 45th Hawaii International Conference on System Science (HICSS'12). 5289-5298.
Hwa-You Hsu and Alessandro Orso. 2009. MINTS: A general framework and tool for supporting test-suite minimization. In Proceedings of the 31st International Conference on Software Engineering (ICSE'09). 419-429.
Joshua D. Knowles and DavidW. Corne. 2000. Approximating the Nondominated Front Using the Pareto Archived Evolution Strategy. Evolutionary Computation 8, 2 (2000), 149-172.
Andreas Leitner, Manuel Oriol, Andreas Zeller, Ilinca Ciupa, and Bertrand Meyer. 2007. Efficient Unit Test Case Minimization. In Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE'07). 417-420.
Hareton K. N. Leung and Peter W. L. Wong. 1997. A Study of User Acceptance Tests. Software Quality Journal 6, 2 (1997), 137-149.
Grischa Liebel, Emil Alégroth, and Robert Feldt. 2013. State-of-Practice in GUIbased System and Acceptance Testing: An Industrial Multiple-Case Study. In Proceedings of the 39th Euromicro Conference on Software Engineering and Advanced Applications (SEAA'13). 17-24.
Olga Liskin, Christoph Herrmann, Eric Knauss, Thomas Kurpick, Bernhard Rumpe, and Kurt Schneider. 2012. Supporting Acceptance Testing in Distributed Software Projects with Integrated Feedback Systems: Experiences and requirements. In Proceedings of the 7th International Conference on Global Software Engineering. 84-93.
Renate Löffler, Baris Güldali, and Silke Geisen. 2010.Towards Model-based Acceptance Testing for Scrum. Softwaretechnik-Trends 30, 3 (2010).
Sean Luke. 2013. Essentials of Metaheuristics (second ed.). Lulu. Available for free at http://cs.gmu.edu/-sean/book/metaheuristics/.
Qi Luo, Kevin Moran, and Denys Poshyvanyk. 2016. A Large-scale Empirical Comparison of Static and Dynamic Test Case Prioritization Techniques. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE'16). 559-570.
Henry B. Mann and Donald R. Whitney. 1947. On a Test of Whether one of Two Random Variables is Stochastically Larger than the Other. Annals of Mathematical Statistics 18, 1 (1947), 50-60.
Alessandro Marchetto, Md. Mahfuzul Islam, Waseem Asghar, Angelo Susi, and Giuseppe Scanniello. 2016. A Multi-objective Technique to Prioritize Test Cases. IEEE Transactions on Software Engineering 42, 10 (2016), 918-940.
Dario Di Nucci, Annibale Panichella, Andy Zaidman, and Andrea De Lucia. 2015. Hypervolume-based Search for Test Case Prioritization. In Proceedings of the 7th International Symposium on Search-Based Software Engineering (SSBSE'15). 157-172.
Vijaya Raghavan, Mojdeh Shakeri, and Krishna Pattipati. 1999. Optimal and Near-Optimal Test Sequencing Algorithms with Realistic Test Models. IEEE Transactions on Systems, Man, and Cybernetics-Part A: Systems and Humans 29 (1999), 11-26. Issue 1.
John Regehr, Yang Chen, Pascal Cuoq, Eric Eide, Chucky Ellison, and Xuejun Yang. 2012. Test-case Reduction for C Compiler Bugs. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'12). 335-346.
Christian P. Robert and George Casella. 2005. Monte Carlo Statistical Methods. Springer.
Gregg Rothermel, Roland J. Untch, and Chengyun Chu. 2001. Prioritizing Test Cases For Regression Testing. IEEE Transactions on Software Engineering 27, 10 (2001), 929-948.
Seung Yeob Shin, Shiva Nejati, Mehrdad Sabetzadeh, Lionel C. Briand, and Frank Zimmer. 2018. [Case study data] Test Case Prioritization for Acceptance Testing of Cyber Physical Systems: A Multi-objective Search-Based Approach. https://github.com/seungyeob/issta2018-mosis.
S. N. Sivanandam and S. N. Deepa. 2007. Introduction to Genetic Algorithms. Springer.
Hema Srikanth, Mikaela Cashman, and Myra B. Cohen. 2016. Test case prioritization of build acceptance tests for an enterprise cloud application: An industrial case study. Journal of Systems and Software 119 (2016), 122-135.
Andrew J. Turner, David R. White, and John H. Drake. 2016. Multi-objective Regression Test Suite Minimisation for Mockito. In Proceedings of the 8th International Symposium on Search-Based Software Engineering (SSBSE'16). 244-249.
András Vargha and Harold D. Delaney. 2000. A Critique and Improvement of the CL Common Language Effect Size Statistics of McGraw and Wong. Journal of Educational and Behavioral Statistics 25, 2 (2000), 101-132.
S. Varrette, P. Bouvry, H. Cartiaux, and F. Georgatos. 2014. Management of an Academic HPC Cluster: The UL Experience. In Proceedings of the 2014 International Conference on High Performance Computing & Simulation (HPCS'14). 959-967.
David A. Van Veldhuizen and Gary B. Lamont. 1998. Multiobjective Evolutionary Algorithm Research: A History and Analysis. Technical Report TR-98-03. Air Force Institute of Technology, Wright-Patterson AFB, OH.
Willem Visser, Klaus Havelund, Guillaume Brat, Seungjoon Park, and Flavio Lerda. 2003. Model Checking Programs. Automated Software Engineering 10, 2 (2003), 203-232.
Kristen R.Walcott, Mary Lou Soffa, Gregory M. Kapfhammer, and Robert S. Roos. 2006. Time-aware Test Suite Prioritization. In Proceedings of the 2006 International Symposium on Software Testing and Analysis (ISSTA'06). 1-12.
Shuai Wang, Shaukat Ali, Tao Yue, Øyvind Bakkeli, and Marius Liaaen. 2016. Enhancing Test Case Prioritization in an Industrial Setting with Resource Awareness and Multi-objective Search. In Proceedings of the 38th International Conference on Software Engineering Companion (ICSE'16). 182-191.
Shuai Wang, Shaukat Ali, Tao Yue, Yan Li, and Marius Liaaen. 2016. A Practical Guide to Select Quality Indicators for Assessing Pareto-based Search Algorithms in Search-based Software Engineering. In Proceedings of the 38th International Conference on Software Engineering (ICSE'16). 631-642.
JohannesWeiss, Alexander Schill, Ingo Richter, and Peter Mandl. 2016. Literature Review of Empirical Research Studies within the Domain of Acceptance Testing. In Proceedings of the 42th Euromicro Conference on Software Engineering and Advanced Applications (SEAA'16). 181-188.
Shin Yoo and Mark Harman. 2012. Regression Testing Minimization, Selection and Prioritization: A Survey. Software Testing, Verification & Reliability 22, 2 (2012), 67-120.
Yi Yu and Fangmei Wu. 1999. A Software Acceptance Testing Technique Based on Knowledge Accumulation. In Proceedings of the 9th Great Lakes Symposium on VLSI.
Lu Zhang, Shan-Shan Hou, Chao Guo, Tao Xie, and Hong Mei. 2009. Time-aware Test-case Prioritization Using Integer Linear Programming. In Proceedings of the 2009 International Symposium on Software Testing and Analysis (ISSTA'09). 213-224.