Formal Methods in Testing Software Architectures

SAs provide a high-level model of large, complex systems using suitable abstractions of the system components and their interactions. SA dynamic descriptions can be usefully employed in testing and analysis. We describe here an approach for SA-based conformance testing: architectural tests are selected from a Labelled Transition System (LTS) representing the SA behavior and are then refined into concrete tests to be executed on the implemented system. To identify the test sequences, we derive abstract views of the LTS, called the ALTSs, to focus on relevant classes of architectural behaviors and hide away uninteresting interactions. The SA description of a Collaborative Writing system is used as an example of application. We also briefly discuss the relation of our approach with some recent research in exploiting the standard UML notation as an Architectural Description Language, and in conformance testing of reactive systems.

[1]  Henry Muccini,et al.  Deriving test plans from architectural descriptions , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[2]  Jim Woodcock,et al.  FME '93: Industrial-Strength Formal Methods , 1993, Lecture Notes in Computer Science.

[3]  Rocco De Nicola,et al.  Testing Equivalences for Processes , 1984, Theor. Comput. Sci..

[4]  Henry Muccini,et al.  An explorative journey from architectural tests definition downto code tests execution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[5]  Mary Jean Harrold,et al.  Testing: a roadmap , 2000, ICSE '00.

[6]  Mary M. Lay,et al.  Collaborative Writing in Industry: Investigations in Theory and Practice , 1991 .

[7]  Philippe Krutchen,et al.  Architectural blueprints--the '4+1' view model of software architecture , 1995 .

[8]  Philippe Kruchten,et al.  Architecture blueprints—the “4+1” view model of software architecture , 1995, TRI-Ada '95.

[9]  Jean-Marc Jézéquel,et al.  ≪UML≫ 2002 — The Unified Modeling Language , 2002, Lecture Notes in Computer Science.

[10]  Alexander L. Wolf,et al.  Software testing at the architectural level , 1996, ISAW '96.

[11]  Eda Marchetti,et al.  The Cow_Suite Approach to Planning and Deriving Test Suites in UML Projects , 2002, UML.

[12]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[13]  Dolores R. Wallace,et al.  Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric , 1996 .

[14]  Jean Hartmann,et al.  A UML-based approach to system testing , 2005, Innovations in Systems and Software Engineering.

[15]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[16]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

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

[18]  Antonia Bertolino,et al.  Software Testing Research and Practice , 2003, Abstract State Machines.

[19]  InverardiPaola,et al.  Using Software Architecture for Code Testing , 2004 .

[20]  Richard H. Carver,et al.  Use of sequencing constraints for specification-based testing of concurrent programs , 1998 .

[21]  R. G. de Vries Towards Formal Test Purposes , 2001 .

[22]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[23]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[24]  Eugene Miya,et al.  On "Software engineering" , 1985, SOEN.

[25]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

[26]  Angelo Gargantini,et al.  Abstract State Machines 2003 , 2003, Lecture Notes in Computer Science.

[27]  Nenad Medvidovic,et al.  Modeling software architectures in the Unified Modeling Language , 2002, TSEM.

[28]  Thierry Jéron,et al.  An Experiment in Automatic Generation of Test Suites for Protocols with Verification Technology , 1997, Sci. Comput. Program..

[29]  Mary Jean Harrold Architecture-Based Regression Testing of Evolving Systems , 1998 .

[30]  Michal Young Testing Complex Architectural Conformance Relations , 1998 .

[31]  C. A. Petri,et al.  Concurrency Theory , 1986, Advances in Petri Nets.

[32]  Jan Tretmans,et al.  Test Generation with Inputs, Outputs and Repetitive Quiescence , 1996, Softw. Concepts Tools.

[33]  Henry Muccini,et al.  Using software architecture for code testing , 2004, IEEE Transactions on Software Engineering.

[34]  Jan Jürjens,et al.  UMLsec: Extending UML for Secure Systems Development , 2002, UML.

[35]  InverardiPaola,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995 .

[36]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[37]  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 .

[38]  Jim Conallen,et al.  Building Web applications with UML , 1999 .

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

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