Automated refinement of models for model-based testing using exploratory testing

Model-based testing relies on models of the system under test to automatically generate test cases. Consequently, the effectiveness of the generated test cases depends on models. In general, these models are created manually, and as such, they are subject to errors like omission of certain system usage behavior. Such omitted behaviors are also omitted by the generated test cases. In practice, these faults are usually detected with exploratory testing. However, exploratory testing mainly relies on the knowledge and manual activities of experienced test engineers. In this paper, we introduce an approach and a toolset, ARME, for automatically refining system models based on recorded testing activities of these engineers. ARME compares the recorded execution traces with respect to the possible execution paths in test models. Then, these models are automatically refined to incorporate any omitted system behavior and update model parameters to focus on the mostly executed scenarios. The refined models can be used for generating more effective test cases. We applied our approach in the context of 3 industrial case studies to improve the models for model-based testing of a digital TV system. In all of these case studies, several critical faults were detected after generating test cases based on the refined models. These faults were not detected by the initial set of test cases. They were also missed during the exploratory testing activities.

[1]  Mika Mäntylä,et al.  Defect Detection Efficiency: Test Case Based vs. Exploratory Testing , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[2]  Gary McGraw,et al.  Generating Software Test Data by Evolution , 2001, IEEE Trans. Software Eng..

[3]  Lionel C. Briand,et al.  A UML-Based Approach to System Testing , 2001, Software and Systems Modeling.

[4]  Atif M. Memon,et al.  An Observe-Model-Exercise* Paradigm to Test Event-Driven Systems with Undetermined Input Spaces , 2014, IEEE Transactions on Software Engineering.

[5]  Cem Kaner,et al.  Learning Styles and Exploratory Testing , 2003 .

[6]  Jan Tretmans,et al.  Model-Based Testing and Some Steps towards Test-Based Modelling , 2011, SFM.

[7]  Ina Schieferdecker,et al.  A taxonomy of risk-based testing , 2014, International Journal on Software Tools for Technology Transfer.

[8]  Keith Stobie Model Based Testing in Practice at Microsoft , 2005, Electron. Notes Theor. Comput. Sci..

[9]  Andreas Zeller,et al.  Automatically Generating Test Cases for Specification Mining , 2012, IEEE Transactions on Software Engineering.

[10]  Fevzi Belli,et al.  Finite state testing and analysis of graphical user interfaces , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[11]  Karl Meinke,et al.  LBTest: A Learning-Based Testing Tool for Reactive Systems , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation.

[12]  Raymond A. Marie,et al.  Reliability estimation for statistical usage testing using Markov chains , 2004, 15th International Symposium on Software Reliability Engineering.

[13]  Hasan Sözer,et al.  Combining model-based and risk-based testing for effective test case generation , 2015, 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[14]  Guney Gonenc,et al.  A Method for the Design of Fault Detection Experiments , 1970, IEEE Transactions on Computers.

[15]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[16]  Leonardo Mariani,et al.  Automatic testing of GUI‐based applications , 2014, Softw. Test. Verification Reliab..

[17]  William C. Hetzel,et al.  The complete guide to software testing , 1984 .

[18]  Bo Zhang,et al.  Combining Model-Based and Capture-Replay Testing Techniques of Graphical User Interfaces: An Industrial Approach , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[19]  Ajay Chander,et al.  Optimal Test Input Sequence Generation for Finite State Models and Pushdown Systems , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[20]  Leonardo Mariani,et al.  Automatic generation of software behavioral models , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[21]  Hasan Sözer,et al.  Improving Models for Model-Based Testing Based on Exploratory Testing , 2014, 2014 IEEE 38th International Computer Software and Applications Conference Workshops.

[22]  Atif M. Memon,et al.  Generating Event Sequence-Based Test Cases Using GUI Runtime State Feedback , 2010, IEEE Transactions on Software Engineering.

[23]  Alexander Pretschner,et al.  Model-Based Testing in Practice , 2005, FM.

[24]  Siddhartha R. Dalal,et al.  Model-based testing in practice , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[25]  Leonardo Mariani,et al.  Recent Advances in Automatic Black-Box Testing , 2015, Adv. Comput..

[26]  Juha Itkonen,et al.  Empirical studies on exploratory software testing , 2011 .

[27]  Michael D. Ernst,et al.  Feedback-Directed Random Test Generation , 2007, 29th International Conference on Software Engineering (ICSE'07).

[28]  Tomi Räty,et al.  Model-based testing of embedded systems in hardware in the loop environment , 2012, IET Softw..

[29]  David Notkin,et al.  Tool-assisted unit-test generation and selection based on operational abstractions , 2006, Automated Software Engineering.

[30]  Mika Mäntylä,et al.  The Role of the Tester's Knowledge in Exploratory Software Testing , 2013, IEEE Transactions on Software Engineering.

[31]  Harry Robinson F INITE STATE MODEL-BASED TESTING ON A SHOESTRING , 1999 .

[32]  Hasan Sözer,et al.  Successive Refinement of Models for Model-Based Testing to Increase System Test Effectiveness , 2016, 2016 IEEE Ninth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[33]  Tsun S. Chow,et al.  Testing Software Design Modeled by Finite-State Machines , 1978, IEEE Transactions on Software Engineering.

[34]  Jürgen Münch,et al.  GQM^+ Strategies -- Aligning Business Strategies with Software Measurement , 2007, ESEM 2007.

[35]  Lionel C. Briand,et al.  A UML-Based Approach to System Testing , 2001, UML.

[36]  Mika V. Mäntylä,et al.  Defect Detection Efficiency: Test Case Based vs. Exploratory Testing , 2007, ESEM 2007.

[37]  Aamer Nadeem,et al.  An empirical evaluation of the influence of human personality on exploratory software testing , 2009, 2009 IEEE 13th International Multitopic Conference.

[38]  James A. Whittaker,et al.  A Markov Chain Model for Statistical Software Testing , 1994, IEEE Trans. Software Eng..

[39]  Rajesh Subramanyan,et al.  A survey on model-based testing approaches: a systematic review , 2007, WEASELTech '07.

[40]  John Paul,et al.  Automated Software Testing: Introduction, Management, and Performance , 1999 .

[41]  Khoo Siau Cheng NATIONAL UNIVERSITY OF SINGAPORE School of Computing PH . D DEFENCE-PUBLIC SEMINAR Title : Refinement Techniques in Mining Software Behavior , 2014 .

[42]  Juha Itkonen,et al.  Exploratory testing: a multiple case study , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

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

[44]  Fevzi Belli,et al.  A holistic approach to model‐based testing of Web service compositions , 2014, Softw. Pract. Exp..

[45]  Bogdan Korel,et al.  The chaining approach for software test data generation , 1996, TSEM.

[46]  Bruno Legeard,et al.  A taxonomy of model‐based testing approaches , 2012, Softw. Test. Verification Reliab..