Testing Implementation Conformance with respect to its Architectural specification Software Architectures and Testing Begin Antonia Bertolino IEI - CNR,

Slides:



Advertisements
Similar presentations
3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
Advertisements

Progetto "Quality and Validation of Software Architectures" Resp. Antonia Bertolino.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Π-Method: A Model-Driven Formal Method for Architecture- Centric Software Engineering By Flavio Oquendo Presented by: Sajith Wickramaratne.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Modeling State-Dependent Objects Using Colored Petri Nets
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Introduction to Software Testing
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Methodology for Architectural Level Reliability Risk Analysis Lalitha Krothapalli CSC 532.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
An Introduction to Software Architecture
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Ævol : A Tool for Planning Architecture Evolution David Garlan & Bradley Schmerl Carnegie Mellon University.
Software Testing Testing types Testing strategy Testing principles.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Institute e-Austria in Timisoara 1 Author: prep. eng. Calin Jebelean Verification of Communication Protocols using SDL ( )
Henry Muccini - Computer Science Department, Universita' dell'Aquila, Italy Paola Inverardi - Computer Science Department, Universita'
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Checking consistency between architectural models using SPIN Requirements and Software Architectures Begin Paola Inverardi, Henry Muccini, Patrizio Pelliccione.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Architectural Design Rewriting as Architectural Description Language R. Bruni A. LLuch-Lafuente U. Montanari E. Tuosto.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
Systems Architectures System Integration & Architecture.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Cs498dm Software Testing Darko Marinov January 24, 2012.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Group mambers: Maira Naseer (BCS ).
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Testing.
Software Testing.
Methodological Issues in Model-Based Testing (MBT)
Verification and Testing
Software Testing (Lecture 11-a)
Human Complexity of Software
Verification and Validation Unit Testing
Software testing.
Chapter 10 – Software Testing
An Introduction to Software Architecture
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Methodology for Architectural Level Reliability Risk Analysis
Chapter 7 Software Testing.
Integration Testing.
From Use Cases to Implementation
Presentation transcript:

Testing Implementation Conformance with respect to its Architectural specification Software Architectures and Testing Begin Antonia Bertolino IEI - CNR, Pisa Paola Inverardi, Henry Muccini University of L’Aquila {inverard,

2 Main Research Area Software Architectures and Testing HenryMuccini   Integration Testing + Integration Testing +   Software Architecture = Software Architecture = Architecture-based Testing Keywords:   Testing: Integration Testing, Functional Testing   SA: Architectural Languages, models and views   Traceability, Graph coverage, Click

3 High level Description Software Architectures and Testing HenryMuccini Testing Implementation Software Specification (informal) Formal Architectural Description drives

4 Overview on SA and Testing Overview on SA and Testing Software Architectures and Testing HenryMuccini

5 Software Architecture (SA)   Describes (in a formal language) how a system is structured into components and how these components interact    SA:   Structure (statics)   Behavior (dynamics)   Given the SA description (in some ADL), the model can be automatically generated; the dynamics is expressed in terms of components interactions via connectors Architectural Description Language Software Architectures and Testing HenryMuccini

6 TestingTesting   Testing is a process of executing a program with the intent of finding errors or defects: a successful test is one that uncovers an as yet undiscovered error.   To increase our confidence in the proper functioning of the software.   Not exaustive approach Module UnitIntegration System Module M M M M Structural Functional Software Architectures and Testing Code Level Oriented to Syntax Unit Tests Functional properties Formal specifications

7 Architecture-based Integration Testing   Integration Testing: interconnects sets of previously tested modules to ensure that the sets behave as well as they did as independently tested modules. Integration Testing is aimed at exposing problems in the interfaces and interactions between the system components   Functional: focus on the functional requirements of the software   Architectural: information for testing are extracted from the Architectural specification Software Architectures and Testing HenryMuccini

8 Motivations and ExpectedBenefits Motivations and ExpectedBenefits Software Architectures and Testing HenryMuccini

9   To combine Structural and Specification-based Testing   To mitigate their respective problems   To handle complexity in the testing of large systems   To detect and eliminate problems as early as possible   Test planning interwoven with development and evolution (from Requirements to Code)   High reusability   CBSE and COTS Software Architectures and Testing HenryMuccini

10 The SA-based Testing Approach Software Architectures and Testing HenryMuccini

11 Software Architectures and Testing [ICECCS’97] Abstract LTS Architectural Test Plan Testing the Implementation Software Architecture formal description Global LTS [ICSE00] [ICSE01] The Approach [IR22/00]

12 Assumption Assumption:   Architectural Description Language (ADL) that produces a global Labelled Transition System (LTS) in which:   L defines the LTS labels, also called LTS actions   Nodes carry on info about the state of each SA component   Arcs carry on info about the interactions ADL Formal Description Software Architectures and Testing HenryMuccini [ICSE00] [ICSE01]   Chemical Abstract Machine (CHAM)   Finite State Process (FSP)   Dynamics in terms of Component interactions Used ADLs

13   Each LTS complete path represents a possible behavior, i.e. an LTS complete path could be taken as a test class   BUT…a lot of information (views) in a single graph and we can select many many potential test classes… how to select interesting test classes? Software Architectures and Testing HenryMuccini

14   Architectural Views   Flow view   Component Based view   Concurrency view  ...   Given the LTS, we apply an Obs Functions to view the system only from a perspective that is relevant for testing   Obs : L  D  {  }   Minimization and Reduction The Abstraction Operational Description (LTS) Observation View (ALTS) Dynamic View Software Architectures and Testing HenryMuccini

15 Flow view: ComponentBased View: Software Architectures and Testing HenryMuccini

16   ALTS Path Coverage   Each complete path corresponds to an Architectural Test Class... Architectural Test Class Software Architectures and Testing HenryMuccini

17 G G SendAlarm1.ReceiveAck1 corresponds to many LTS complete paths [IR22/00] ReceiveAck1 SendAlarm1 A B From ALTS to LTS Software Architectures and Testing HenryMuccini

18 Testing the Software Implementation   Given ar architectural path to be tested:   We can verify this behavior against the Requirements.   We can test whether the system as-built implements this architectural behavior   How are the LTS paths implemented by the Code? Re-Architecting Context   SA and Code have been developed independently :   Design is independent of the SA topology   SA after Implementation Forward Development   SA drives the system design:   COTS   Component Based Software Architectures and Testing HenryMuccini

19 Re-Architecting Context Software Architectures and Testing HenryMuccini   Let act1, act2, …, actN the LTS actions, each Test class is composed by a sequence of these actions and: 4.1 Each path may be represented by an architectural scenario; 4.2 For each action, we try to understand how these functionalities are implemented by the source code 4.3 The source code scenarios are put together to implement the test class, i.e., tha architectural scenario 4.4 The tester runs the code

20 Software Architectures and Testing HenryMuccini

21 ResultsResults Software Architectures and Testing HenryMuccini

22 Software Architectures and Testing HenryMuccini

23 Results and Future Works   We found an architectural error in the TRMCS case study, BUT...   … we need to compare our approach with other functional testing approaches.   To apply this approach to an italian telecommunication system   To encrease the integration testing approach automation   To use model-checking to manage the state explosion problem and to verify the architectural behavior againts the requirements Software Architectures and Testing HenryMuccini

Henry Muccini Henry Muccini Ph-D Student in Computer Science University of L’Aquila - Italy

[ICECCS’97] A. Bertolino, P. Inverardi, H. Muccini and A. Rosetti. An Approach to Integration Testing Based on Architectural Descriptions On IEEE Proc. ICECCS-97, Como, [ICSE2000] A. Bertolino, F. Corradini, P. Inverardi, H. Muccini. Deriving Test Plans from Architectural Descriptions. Proc. 22nd Int. Conf. on Softw. Eng. (ICSE2000), June 4th-11th, [IR22/00] A. Bertolino, P. Inverardi and H. Muccini Specification-based Testing In-The-Large Driven by the Software Architecture IR 22/00, University of L'Aquila.On-line at: [ICSE2001] A. Bertolino, P. Inverardi and H. Muccini. An Explorative Journey from Architectural Tests Definition downto Code Tests Execution Proc. 23nd Int. Conf. on Softw. Eng. (ICSE2001), May ReferencesReferences