Model-Based Software Testing and Analysis with C#: Systems with Complex State

This book teaches model-based analysis and model-based testing, important new ways to write and analyze software specifications and designs, generate test cases, and check the results of test runs. These methods increase the automation in each of these steps, making them more timely, more thorough, and more effective. Using a familiar programming language, testers and analysts will learn to write models that describe how a program is supposed to behave. The authors work through several realistic case studies in depth and detail, using a toolkit built on the C# language and the .NET framework. Readers can also apply the methods in analyzing and testing systems in many other languages and frameworks. Intended for professional software developers, including testers, and for university students, this book is suitable for courses on software engineering, testing, specification, or applications of formal methods.

[1]  Julian R. Ullmann,et al.  An Algorithm for Subgraph Isomorphism , 1976, J. ACM.

[2]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[3]  Mihalis Yannakakis,et al.  Testing, Optimizaton, and Games , 2004, ICALP.

[4]  Andreas Blass,et al.  Background, Reserve, and Gandy Machines , 2000, CSL.

[5]  Alexandre Petrenko,et al.  Multiplexing of Partially Ordered Events , 2005, TestCom.

[6]  Nikolai Tillmann,et al.  Partial updates , 2005, Theor. Comput. Sci..

[7]  Robert M. Keller,et al.  Formal verification of parallel programs , 1976, CACM.

[8]  Jan Tretmans,et al.  Testing Transition Systems: An Annotated Bibliography , 2000, MOVEP.

[9]  Margus Veanes,et al.  State Isomorphism in Model Programs with Abstract Data Structures , 2007, FORTE.

[10]  David Notkin,et al.  Symstra: A Framework for Generating Object-Oriented Unit Tests Using Symbolic Execution , 2005, TACAS.

[11]  Gregor Kiczales,et al.  Discussing aspects of AOP , 2001, CACM.

[12]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[13]  Bruce Elliott,et al.  Testing Computer Software , 1994 .

[14]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[15]  Boris Beizer,et al.  Black Box Testing: Techniques for Functional Testing of Software and Systems , 1996, IEEE Software.

[16]  Margus Veanes,et al.  Online testing with model programs , 2005, ESEC/FSE-13.

[17]  Margus Veanes,et al.  Instrumenting scenarios in a model-driven development environment , 2004, Inf. Softw. Technol..

[18]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

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

[20]  Thomas A. Henzinger,et al.  Alternating Refinement Relations , 1998, CONCUR.

[21]  Arend Rensink,et al.  Compositional Testing with ioco , 2003, FATES.

[22]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

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

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

[25]  Margus Veanes,et al.  Testing Concurrent Object-Oriented Systems with Spec Explorer , 2005, FM.

[26]  David Harel,et al.  Come, let's play - scenario-based programming using LSCs and the play-engine , 2003 .

[27]  J. Filar,et al.  Competitive Markov Decision Processes , 1996 .

[28]  Margus Veanes,et al.  Composition of Model Programs , 2007, FORTE.

[29]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[30]  Margus Veanes,et al.  State Exploration with Multiple State Groupings , 2005, Abstract State Machines.

[31]  Wolfram Schulte,et al.  Semantic essence of AsmL , 2005, Theor. Comput. Sci..

[32]  Margus Veanes,et al.  Generating finite state machines from abstract state machines , 2002, ISSTA '02.

[33]  Nikolai Tillmann,et al.  Action Machines: a Framework for Encoding and Composing Partial Behaviors , 2006, Int. J. Softw. Eng. Knowl. Eng..

[34]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

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

[36]  Margus Veanes,et al.  Play to Test , 2005, FATES.

[37]  Jonathan Jacky,et al.  The Way of Z: Practical Programming with Formal Methods , 1996 .

[38]  Douglas E. Comer,et al.  Internetworking with TCP/IP - Principles, Protocols, and Architectures, Fourth Edition , 1988 .

[39]  Sarfraz Khurshid,et al.  Korat: automated testing based on Java predicates , 2002, ISSTA '02.

[40]  Daniel Jackson,et al.  Elements of style: analyzing a software design feature with a counterexample detector , 1996, ISSTA '96.

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

[42]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

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

[44]  Boris Beizer,et al.  Software System Testing and Quality Assurance , 1984 .

[45]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[46]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[47]  Jan Tretmans,et al.  Testing Concurrent Systems: A Formal Approach , 1999, CONCUR.

[48]  Andreas Blass,et al.  Ordinary interactive small-step algorithms, I , 2006, TOCL.

[49]  Thierry Jéron,et al.  A tool for the automatic synthesis of conformance test cases for non-deterministic reactive systems , 2005 .

[50]  Luca de Alfaro,et al.  Game Models for Open Systems , 2003, Verification: Theory and Practice.

[51]  Edmund M. Clarke,et al.  Verification Tools for Finite-State Concurrent Systems , 1993, REX School/Symposium.

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

[53]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[54]  Margus Veanes,et al.  Online Testing with Reinforcement Learning , 2006, FATES/RV.

[55]  Jan Tretmans,et al.  Automatic Testing with Formal Methods , 1999 .

[56]  Radu Iosif Symmetry reductions for model checking of concurrent dynamic software , 2004, International Journal on Software Tools for Technology Transfer.