110 likes | 233 Views
Architecture-based Testing: how MBT may help?. Software Architecture (traditional understanding). The Software Architecture is the earliest model of the whole software system created along the software lifecycle
E N D
Software Architecture (traditional understanding) The Software Architecture is the earliest model of the whole software system created along the software lifecycle SA as a high level design blueprint of the system to be used during the system development and later on for maintenance and reuse Describes (in a more or less “formal” notation) how a system is structured intocomponents and connectors(SA topology) and how these elements interact(SA dynamics)
Software Architecture • Let us reason about the Gaudi’s Sagrada Familia • Selected components/interfaces/connectors • Selected SA Style and constraints • Expected behavior • HW/SW/Deployment views • Components’ Nesting and sub-systems • NF attributes • …
Software Architecture (recent/future understanding) • A set of architecture design decisions taken to generate the architecture artifact • An SA is not only the “output” of the design decision process • Design issues, alternative solutions, rationale • Focus on set of Views and Viewpoints, looking at stakeholders and their concerns • Different stakeholders require different views, to solve different concerns • ISO/IEC 42010 (just approved)
3 2 1 4 0 5 Design Decisions & views • Why a certain architectural style has been selected? • Why a certain technology has been selected? • Why the centralized data solution is more appropriate? • Dependencies among decisions • Structural, Behavioral, Trust, Financial, Performance, … views
Example Picture taken from: http://www.watblog.com/2010/08/18/tcs-to-build-the-%E2%80%98nano-of-it%E2%80%99-cheap-cloud-computing-india/
SA-based Testing and Regression Testing • An implementation should conform to the Architectural specification • Is my implementation really compliant to my architectural specification… [and my design decisions] • SA structure and behavior models used to generate SA-level test specifications • Lessons learned: • The “distance” between SA and code is challenging • The SA model is (by definition) partial and incomplete • non-determinism • Regression Testing to manage the architectural drift Previous work: [TSE04] [JSS06]
Software Architecture-based testing in practice • A project is ongoing with the SEI, on architecture-based testing • CMU SEI, University of L’Aquila, CNR-Pisa • Goal: • To identify industrial needs related to SA-based testing • To identify potential solutions to driving examples • To identify how the testing/analysis community may help to solve industrial needs and driving examples
? + ? + Tentative driving problem + Fly test [Pictures taken from Google Images]
Question • How (your experience with) MBT may help to deal with this type of problems? • A working group is being formed • MBT, regressiong testing, component-based testing, product line testing, formal verification, software architecture, … • I will appreciate any feedback you might provide
References • [TSE04] H. Muccini, A. Bertolino and P. Inverardi, "Using Software Architecture for Code Testing". In IEEE Transactions on Software Engineering, Vol. 30, Number 3, March 2004, pp. 160-171. • [JSS06] H. Muccini, M. Dias and D. J. Richardson, "Software Architecture-based Regression Testing“.In the Journal of Systems and Software (JSS), Special Issue on "Architecting Dependable Systems". Vol. 79, Issue 10 , October 2006, Pages 1379-1396.