Chapter Three - A Research Overview of Tool-Supported Model-based Testing of Requirements-based Designs

Software testing aims at gaining confidence in software products through fault detection, by observing the differences between the behavior of the implementation and the expected behavior described in the specification. Nowadays, testing is the main verification technique used in industry, being a time and resource consuming activity. This has boosted the development of potentially more efficient testing techniques, like model-based testing, where test creation and execution can be automated, using an abstract system model as input. In this chapter, we provide an overview of the state-of-the-art in tool-supported model-based testing that starts from requirements-based models, by presenting and classifying some of the most mature tools available at this moment. Our goal is to get a deeper insight into the state-of-the-art in this area, as well as to form a position with respect to possible needs and gaps in the current tools used by industry and academia, which need to be addressed in order to enhance the applicability of model-based testing techniques. To achieve this, we extend an existing taxonomy with: (i) the test artifact, representing the type of information encoded in the model for the purpose of testing (i.e., functional behavior, extra-functional behavior, or the architectural description), and (ii) the mapping of test cases, which describes ways of using the generated test cases on the actual system under test. To provide further evidence of the inner-workings of different model-based testing tools, we select four representative tools (i.e, ProTest, UPPAAL Cover, MaTeLo, and CompleteTest) that we apply on a simple yet illustrative Coffee/Tea Vending Machine example, to show the differences in modeling notations, test case generation methods, and the produced test-cases.

[1]  Bruno Legeard,et al.  Automated Boundary Testing from Z and B , 2002, FME.

[2]  Stephan Weißleder,et al.  ParTeG - Integrating Model-based Testing and Model Transformations , 2010, Software Engineering.

[3]  Stephan Weißleder,et al.  Deriving Input Partitions from UML Models for Automatic Test Generation , 2008, MoDELS.

[4]  John G. Kemeny,et al.  Finite Markov Chains. , 1960 .

[5]  Hans-Martin Hörcher,et al.  Improving Software Tests Using Z Specifications , 1995, ZUM.

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

[7]  David Lee,et al.  Principles and methods of testing finite state machines-a survey , 1996, Proc. IEEE.

[8]  Thomas Thelin,et al.  Practical experiences with statistical usage testing , 2003, Eleventh Annual International Workshop on Software Technology and Engineering Practice.

[9]  Kevin Lano,et al.  Formal development in B abstract machine notation , 1995, Inf. Softw. Technol..

[10]  Willi-Hans Steeb,et al.  Finite State Machines , 2001 .

[11]  Gordon Fraser,et al.  Testing with model checkers: a survey , 2009 .

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

[13]  Andrea Martelli,et al.  MaTeLo: Automated Testing Suite for Software Validation , 2003 .

[14]  Jan Peleska,et al.  Using formal specifications to support software testing , 1995, Software Quality Journal.

[15]  Jonathan Jacky PyModel: Model-based testing in Python , 2011 .

[16]  Fabrice Bouquet,et al.  A test generation solution to automate software testing , 2008, AST '08.

[17]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[18]  Alan Hartman,et al.  A study in coverage-driven test generation , 1999, DAC '99.

[19]  Stacy J. Prowell,et al.  JUMBL: a tool for model-based statistical testing , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

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

[21]  Henry Muccini,et al.  Software architecture-based analysis and testing: a look into achievements and future challenges , 2013, Computing.

[22]  Dianxiang Xu,et al.  A model-based approach to automated testing of access control policies , 2012, SACMAT '12.

[23]  Michael J. Butler,et al.  ProTest: An Automatic Test Environment for B Specifications , 2004, MBT.

[24]  Matthew K. O. Lee,et al.  The B-Method , 1991, VDM Europe.

[25]  Vasu Alagar,et al.  Extended Finite State Machine , 2011 .

[26]  David L. Dill,et al.  The Murphi Verification System , 1996, CAV.

[27]  Tobias Nipkow,et al.  Random testing in Isabelle/HOL , 2004, Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004..

[28]  Issa Traoré An integrated v&v environment for critical systems development , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[29]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[30]  Nancy A. Lynch,et al.  The Theory of Timed I/o Automata , 2003 .

[31]  Margus Veanes,et al.  Model-Based Testing of Object-Oriented Reactive Systems with Spec Explorer , 2008, Formal Methods and Testing.

[32]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[33]  Christof J. Budnik,et al.  An Integrated Model-Driven Approach for Mechatronic Systems Testing , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[34]  Fabrice Bouquet,et al.  CLPS-B - A Constraint Solver for B , 2002, TACAS.

[35]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[36]  Jonathan Jacky,et al.  Model-Based Testing of Web Applications Using NModel , 2009, TestCom/FATES.

[37]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.

[38]  Jeremy Dick,et al.  Automating the Generation and Sequencing of Test Cases from Model-Based Specifications , 1993, FME.

[39]  Antti Huima,et al.  Implementing Conformiq Qtronic , 2007, TestCom/FATES.

[40]  Florentin Ipate,et al.  JSXM: A Tool for Automated Test Generation , 2012, SEFM.

[41]  Yvan Labiche,et al.  A systematic review of state-based test tools , 2013, International Journal on Software Tools for Technology Transfer.

[42]  Pieter J. Mosterman,et al.  Model-Based Testing for Embedded Systems , 2011, Computational Analysis, Synthesis, & Design Dynamic Systems.

[43]  Thomas A. Henzinger,et al.  Real-time system = discrete system + clock variables , 1994, International Journal on Software Tools for Technology Transfer.

[44]  Alfred V. Aho,et al.  An optimization technique for protocol conformance test generation based on UIO sequences and rural Chinese postman tours , 1991, IEEE Trans. Commun..

[45]  Jan Tretmans,et al.  Model Based Testing with Labelled Transition Systems , 2008, Formal Methods and Testing.

[46]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

[47]  Kim G. Larsen,et al.  A Tutorial on Uppaal , 2004, SFM.

[48]  Burkhart Wolff,et al.  A Structure Preserving Encoding of Z in Isabelle/HOL , 1996, TPHOLs.

[49]  Marc J. Balcer,et al.  The category-partition method for specifying and generating fuctional tests , 1988, CACM.

[50]  Alan Hartman,et al.  The AGEDIS tools for model based testing , 2004, ISSTA '04.

[51]  Yuri Gurevich,et al.  Evolving algebras 1993: Lipari guide , 1995, Specification and validation methods.

[52]  Raymond J. Nelson,et al.  Simplest normal truth functions , 1955, Journal of Symbolic Logic.

[53]  Paul Pettersson,et al.  Cover - A Real-Time Test Case Generation Tool , 2007 .

[54]  Elaine J. Weyuker,et al.  Automated test generation using model checking: an industrial evaluation , 2014, International Journal on Software Tools for Technology Transfer.

[55]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[56]  Fabrice Bouquet,et al.  Model-Based Testing from UML Models , 2006, GI Jahrestagung.

[57]  Margus Veanes,et al.  Towards a Tool Environment for Model-Based Testing with AsmL , 2003, FATES.

[58]  Jonas Boberg Early fault detection with model-based testing , 2008, ERLANG '08.

[59]  Axel Belinfante,et al.  JTorX: A Tool for On-Line Model-Driven Test Derivation and Execution , 2010, TACAS.

[60]  Andreas Ulrich,et al.  Model-based testing in industry: a case study with two MBT tools , 2010, AST '10.

[61]  Carlo Bellettini,et al.  TestUml: user-metrics driven web applications testing , 2005, SAC '05.

[62]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[63]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[64]  Bruno Marre,et al.  Test sequences generation from LUSTRE descriptions: GATEL , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[65]  Vadim Okun,et al.  Mutation operators for specifications , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[66]  Alan Hartman,et al.  Using a model-based test generator to test for standard conformance , 2002, IBM Syst. J..

[67]  Mika Katara,et al.  Experiences of System-Level Model-Based GUI Testing of an Android Application , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[68]  Kim G. Larsen,et al.  Testing real-time embedded software using UPPAAL-TRON: an industrial case study , 2005, EMSOFT.

[69]  James B. Dabney,et al.  Mastering Simulink 4 , 2001 .

[70]  Thierry Jéron,et al.  TGV : theory , principles and algorithms A tool for the automatic synthesis of conformance test cases for non-deterministic reactive systems , 2004 .

[71]  Insup Lee,et al.  Model-Based Testing of GUI-Driven Applications , 2009, SEUS.

[72]  Michael Z. Spivey,et al.  The Z notation , 1989 .

[73]  Albert L. Baker,et al.  JML: A Notation for Detailed Design , 1999, Behavioral Specifications of Businesses and Systems.

[74]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

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

[76]  Jan Tretmans,et al.  TorX: Automated Model-Based Testing , 2003 .

[77]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[78]  David Lee,et al.  Testing Finite-State Machines: State Identification and Verification , 1994, IEEE Trans. Computers.

[79]  A. Jefferson Offutt,et al.  Deriving tests from software architectures , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[80]  Experience report: the reactis validation tool , 2007, ICFP '07.

[81]  Thomas Santen,et al.  Automating Test Case Generation from Z Specifications with Isabelle , 1997, ZUM.

[82]  Peter Gorm Larsen,et al.  Vienna Development Method , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[83]  Avik Sinha,et al.  A measurement framework for evaluating model-based test generation tools , 2006, IBM Syst. J..

[84]  Bruno Legeard,et al.  A taxonomy of model-based testing , 2006 .

[85]  Rajeev Alur,et al.  Distinguishing tests for nondeterministic and probabilistic machines , 1995, STOC '95.