110 likes | 242 Vues
This article explores the integration of Model-Based Testing (MBT) in validating software architecture (SA) compliance throughout the software lifecycle. It discusses the importance of SA as a blueprint for design and the challenges that arise when aligning implementation with architectural specifications. By employing SA-driven testing methods, teams can address complexities such as architectural drift and ensure that design decisions are upheld. Insights from ongoing projects with industry leaders highlight the growing need for architecture-based testing and the potential solutions offered by MBT methodologies.
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.