Automated Generation of Adaptive Test Plans for Self-Adaptive Systems

Self-adaptive systems (SAS) can reconfigure at run-time to mitigate uncertainties posed by environments for which they may not have been explicitly designed. High-assurance SAS applications must continually deliver acceptable behavior for critical services, enabling the need for run-time validation techniques. To this end, run-time testing can provide additional assurance that an SAS will continue to behave as expected while executing under unknown conditions. This paper introduces Proteus, a framework for adaptive run-time testing on an SAS. Proteus facilitates both execution and adaptation of run-time testing activities to ensure that the SAS continues to execute according to its requirements and that both test plans and test cases continually remain relevant to changing operating conditions. We demonstrate our approach by applying it to a simulated self-adaptive remote data mirroring network that must efficiently diffuse data while experiencing adverse operating conditions. Experimental results suggest that Proteus can reduce the number of executed irrelevant, false positive, and false negative test cases at run time to ensure that online testing activities remain relevant as the SAS encounters uncertainty.

[1]  Joseph Robert Horgan,et al.  A study of effective regression testing in practice , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[2]  Danny Weyns,et al.  ActivFORMS: active formal models for self-adaptation , 2014, SEAMS 2014.

[3]  Giuseppe Valetto,et al.  Elicitation and utilization of application-level utility functions , 2009, ICAC '09.

[4]  Andres J. Ramirez,et al.  Automatic derivation of utility functions for monitoring software requirements , 2011, MODELS'11.

[5]  D.M. Cohen,et al.  The Combinatorial Design Approach to Automatic Test Generation , 1996, IEEE Softw..

[6]  Betty H. C. Cheng,et al.  Towards run-time adaptation of test cases for self-adaptive systems in the face of uncertainty , 2014, SEAMS 2014.

[7]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[8]  Mary Lou Soffa,et al.  Hierarchical GUI Test Case Generation Using Automated Planning , 2001, IEEE Trans. Software Eng..

[9]  Marco Vieira,et al.  Benchmarking the resilience of self-adaptive software systems: perspectives and challenges , 2011, SEAMS '11.

[10]  Gregg Rothermel,et al.  Analyzing Regression Test Selection Techniques , 1996, IEEE Trans. Software Eng..

[11]  Sam Malek,et al.  Taming uncertainty in self-adaptive software , 2011, ESEC/FSE '11.

[12]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[13]  Jonathan A. Bauer,et al.  Test Plan Generation Using Formal Grammars , 1979, ICSE.

[14]  Anna Perini,et al.  Automated Continuous Testing of Multi-Agent Systems , 2007 .

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

[16]  Rajarshi Das,et al.  Utility functions in autonomic systems , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[17]  Martin Gogolla,et al.  Using Models at Runtime to Address Assurance for Self-Adaptive Systems , 2015, Models@run.time@Dagstuhl.

[18]  Jeffrey J. P. Tsai,et al.  A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging , 1990, IEEE Trans. Software Eng..

[19]  Phil McMinn,et al.  Search-Based Software Testing: Past, Present and Future , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[20]  Andres J. Ramirez,et al.  Towards run-time testing of dynamic adaptive systems , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[21]  Thanh-Hung Nguyen,et al.  Runtime Verification of Component-Based Systems , 2011, SEFM.

[22]  Shuhei Yamashita,et al.  Introduction of ISO 26262 'Road vehicles-Functional safety' , 2012 .

[23]  Carlo Ghezzi Adaptive Software Needs Continuous Verification , 2010, 2010 8th IEEE International Conference on Software Engineering and Formal Methods.

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

[25]  Daniel P. Siewiorek,et al.  Measuring Software Dependability by Robustness Benchmarking , 1997, IEEE Trans. Software Eng..

[26]  Nelly Bencomo,et al.  A Goal-Based Modeling Approach to Develop Requirements of an Adaptive System with Environmental Uncertainty , 2009, MoDELS.

[27]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[28]  Antonia Bertolino,et al.  Software Testing Research: Achievements, Challenges, Dreams , 2007, Future of Software Engineering (FOSE '07).

[29]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[30]  Yuanyuan Zhang,et al.  Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications , 2009 .

[31]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[32]  Carlo Ghezzi,et al.  A formal approach to adaptive software: continuous assurance of non-functional requirements , 2011, Formal Aspects of Computing.

[33]  Dirk Beyer,et al.  Designing for Disasters , 2004, FAST.

[34]  David B. Knoester,et al.  Applying genetic algorithms to decision making in autonomic computing systems , 2009, ICAC '09.

[35]  Anna Perini,et al.  Reasoning about adaptive requirements for self-adaptive systems at runtime , 2011, 2011 2nd International Workshop on Requirements@Run.Time.

[36]  John Wilkes,et al.  Seneca: remote mirroring done write , 2003, USENIX Annual Technical Conference, General Track.

[37]  Raman Kazhamiakin,et al.  A Framework for Proactive Self-adaptation of Service-Based Applications Based on Online Testing , 2008, ServiceWave.

[38]  Axel van Lamsweerde,et al.  Requirements Engineering: From System Goals to UML Models to Software Specifications , 2009 .

[39]  Ann Q. Gates,et al.  A taxonomy and catalog of runtime software-fault monitoring tools , 2004, IEEE Transactions on Software Engineering.

[40]  Mark Harman,et al.  Search Based Software Engineering: Techniques, Taxonomy, Tutorial , 2010, LASER Summer School.

[41]  Dietmar P. F. Möller,et al.  Systems and Software Engineering , 2016 .

[42]  Stephen Fickas,et al.  Goal-Directed Requirements Acquisition , 1993, Sci. Comput. Program..

[43]  Rogério de Lemos,et al.  Evaluation of resilience in self-adaptive systems using probabilistic model-checking , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[44]  Rogério de Lemos,et al.  Testing the robustness of controllers for self-adaptive systems , 2013, Journal of the Brazilian Computer Society.