1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.

Slides:



Advertisements
Similar presentations
Chapter 14 Software Testing Techniques - Testing fundamentals - White-box testing - Black-box testing - Object-oriented testing methods (Source: Pressman,
Advertisements

OBJECT ORIENTED TESTING SYSTEM TESTING UNIT TESTING INTEGRATION TESTING INHERITANCE POLYMORPHISM ENCAPSULATION By Maj Nicko Petchiny.
Overview Structural Testing Introduction – General Concepts
Overview Functional Testing Boundary Value Testing (BVT)
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 11 Instructor Paulo Alencar.
Overview Discrete Mathematics for Testers Set Theory Functions
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Object-Oriented Systems DIF 8901 Presentation of two papers: »On the purpose of Object-Oriented Analysis« »Object-Oriented Integration Testing« Sven Ziemer,
Software Design Process A Process is a set of related and (sequenced) tasks that transforms a set of input to a set of output. Inputs Outputs Design Process.
CS447/ECE453/SE465 Prof. Alencar University of Waterloo 1 CS447/ECE453/SE465 Software Testing Tutorial Winter 2008 Based on the tutorials by Prof. Kontogiannis,
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
SE-565 Software System Requirements More UML Diagrams.
Program unit A Program unit B Program unit T Function 1 Function 2 Function Component 1 Whole System (e.g. regression testing) Component 3....
Software Design Processes and Management
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 7 Unit Testing & Integration Testing Software Testing By Wararat Songpan(Rungworawut),PH.D. Department of Computer Science, Faculty of.
Overview Integration Testing Decomposition Based Integration
Different Levels of Testing
BPMN By Hosein Bitaraf Software Engineering. Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
ECE 264 Object-Oriented Software Development Instructor: Dr. Honggang Wang Fall 2012 Lecture 3: Requirements Specification, C++ Basics.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Interaction Modeling. Overview The class model describes the objects in a system and their relationships, the state model describes the life cycles of.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Systems Analysis and Design in a Changing World, 6th Edition
Chapter 14 System Testing.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Object-Oriented Software Testing ICS 224A Joachim Feise
1 Software Testing & Quality Assurance Lecture 14 Created by: Paulo Alencar Modified by: Frank Xu.
Chapter 13 Integration Testing. The Mars Climate Orbiter Mission mission failed in September 1999 completed successful flight: 416,000,000 miles (
Web Services Flow Language Guoqiang Wang Oct 7, 2002.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Interaction and Communication Diagrams Patrick Bailey Keith Vander Linden Calvin College.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Dr.Basem Alkazemi
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
System Testing Beyond unit testing. 2 System Testing Of the three levels of testing, system level testing is closest to everyday experience We evaluate.
Chapter 11 Activity Diagrams. 2 “Activity diagrams are a technique to describe procedural logic, business processes, and work flows” - M. Fowler An activity.
System Testing Earlier we have stated the 2 views of 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.
Integration Testing Beyond unit testing. 2 Testing in the V-Model Requirements Detailed Design Module implementation Unit test Integration test System.
Program Slicing Techniques CSE 6329 Spring 2013 Parikksit Bhisay
Systems Design.  Application Design  User Interface Design  Database Design.
1 Software Testing & Quality Assurance Lecture 13 Created by: Paulo Alencar Modified by: Frank Xu.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Lec 10 Integration Testing- 1 CSCE 747 Fall 2013 CSCE 747 Software Testing and Quality Assurance Lecture 10 – Integration Testing 9/30/
ACTIVITY DIAGRAMS 《UML面向对象建模基础》.
Software Testing.
Control Flow Testing Handouts
Integration Testing This is the step after the individual pieces of code or modules (programs) are tested. A set of programs do not exist in vacuum. They.
Software Engineering (CSI 321)
Software Testing and Maintenance 1
Sequence Diagram.
Outline of the Chapter Basic Idea Outline of Control Flow Testing
Programming Models for Distributed Application
Chapter 14 System Testing
Chapter 14 Software Testing Techniques
Chapter 13 Integration Testing
Chapter 20 Object-Oriented Analysis and Design
Different Levels of Testing
Ch. 14 System Testing Earlier we have stated the 2 views of testing:
Integration Testing.
Overview Functional Testing Boundary Value Testing (BVT)
Software Testing and QA Theory and Practice (Chapter 5: Data Flow Testing) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
Presentation transcript:

1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis

2 Overview  Integration Testing  Decomposition Based Integration  Call Graph Based Integration  Path Based Integration  Discussion Ref: “Software Testing A Craftsman's Approach” 2nd edition, Paul C. Jorgensen

3 Path Based Integration Testing The basic motivation is to combine structural and behavioral type of testing for integration testing as we did for unit testing The basic idea is to focus on interactions among system units rather than merely to test interfaces among separately developed and tested units In this respect, interface-based testing is structural while interaction-based is behavioral Overall we want to express integration testing in terms behavioral threads

4 Source node: –a program statement fragment at which program execution begins or resumes. –for example the first “begin” statement in a program. –also, immediately after nodes that transfer control to other units. Sink node: –a statement fragment at which program execution terminates. –the final “end” in a program as well as statements that transfer control to other units. Extended Concepts (1)

5 Module execution path: –a sequence of statements that begins with a source node and ends with a sink node with no intervening sink nodes. Message: –a programming language mechanism by which one unit transfers control to another unit. –can be interpreted as subroutine invocations, procedure calls and function references. –convention: the unit which receives the message always eventually returns control to the message source. –messages can pass data to other units. Extended Concepts (2)

6 MM-Path: –an interleaved sequence of module execution paths and messages. –we can describe sequences of module execution paths that include transfers of control among separate units. – MM-paths always represent feasible execution paths, and these paths cross unit boundaries. MM-Paths

A B C The Figure 1 above illustrates an MM-Path (the heavy line) for three modules. For example, in module A nodes 1 and 5 are source nodes while nodes 4 and 6 are sink nodes. MM-Path Example Figure 1 Ref: “Software Testing A Craftsman's Approach” 2nd edition, Paul C. Jorgensen

8 In addition, the following are module execution paths: MEP(A,1) = MEP(B,1) = MEP(A,2) = MEP(B,2) = MEP(A,3) = MEP(C,1) = MEP(C,2) = Execution Paths Example

9 Given a set of units, – their MM-Path graph is the directed graph in which nodes are module execution paths and, –edges correspond to messages and returns from one unit to another The definition is with respect to a set of units. –It directly supports composition of units and composition based integration testing. –It is possible to compose down to level of individual module execution paths but it would be more detailed than necessary. MM-Path Graph

10 MEP(A,2) MEP(B,1) MEP(C,1) MEP(B,2) MEP(A,3) MEP(A,1) MEP(C,2) Figure 2 The Figure 2 above illustrates the MM-Path graph for the example in Figure 1. The solid arrows indicate messages and the corresponding returns are indicated by dotted arrows. MM-Path Graph Example Ref: “Software Testing A Craftsman's Approach” 2nd edition, Paul C. Jorgensen

11 MM-Paths implement a function that transcends unit boundaries, thus we have the following relationship: –Consider the “intersection” of an MM-Path with a unit. The module execution paths in this intersection are an analog of a slice with respect to the (MM-Path) function. –Hence the module execution paths in such an intersection are the restriction of the function to the unit in which they occur. MM-Path Analogy

12 There are three observable behavioral criteria that put endpoints on MM-Paths: –event quiescence: occurs when a system is nearly idle, waiting for a port input event to trigger further processing. This is a system level property with an analog at the integration level: message quiescence. –message quiescence: occurs when a unit that sends no messages is reached (i.e. module C in Figure 1). –data quiescence: occurs when a sequence of processing culminates in the creation of stored data that is not immediately used. MM-Path Endpoints

13 Data quiescence occurs when a sequence of processing culminates in the creation of stored data that is not immediately used. These criteria are “natural” endpoints for MM-Paths. A second guideline for MM-Paths serves to distinguish integration from system testing: –atomic system function (ASF): is an action that is observable at the system level in terms of port input and output events. It begins with a port input event, traverses one or more MM-Paths, and terminates with a port output event. Atomic System Function

14 –When viewed from the system level, there is no compelling reason to decompose an ASF into lower levels of detail (hence the atomicity). –For example in the ATM case, an example of an ASF is card entry, cash dispensing, or session closing. While PIN entry would probably be too big since it might entail a molecular system function Atomic System Function

15 ASFs are an upper limit for MM-Paths: –MM-Paths should not cross ASF boundaries. –ASFs represent the seam between integration and system testing: they are the largest item to be tested during integration testing, and the smallest item for system testing. Atomic System Function

16 ASF Example A B C MM-path: Interleaved sequence of module exec path and messages Module exec path: entry-exit path in the same module Atomic System Function: port input, … {MM-paths}, … port output Test cases: exercise ASFs

17 Call Graph as a Model for Module Interaction 1. programSums 2. read(n); 3. i:= 1; 4. while i <= n 5. sum:=0; 6. Acc(sum,i); 7. write(sum, i); 8. i : = i + l ; 9. endwhile 10. end. 11. procedure Acc(x,y) refx, y 12. j:= 1: 13. whilejsy 14. Add(x,j); 15. Inc(j); 16. endwhile 17. return 18. procedure Inc(z) ref z 19. Add(z.1): 20. return 21. procedure Add(a,b) ref a; value b 22. a:=a+b; 23. return Sums Acc Inc Add sum, i j x, j z, 1 Call Graph

18 Program Summary Graph 1. programSums 2. read(n); 3. i:= 1; 4. while i <= n 5. sum:=0; 6. Acc(sum,i); 7. write(sum, i); 8. i : = i + l ; 9. endwhile 10. end. 11. procedure Acc(x,y) refx, y 12. j:= 1: 13. whilejsy 14. Add(x,j); 15. Inc(j); 16. endwhile 17. return 18. procedure Inc(z) ref z 19. Add(z.1): 20. return 21. procedure Add(a,b) ref a; value b 22. a:=a+b; 23. return Sums Acc Inc Add sum x y y x x x j j z z z z a a i i

19 Interprocedural Program Summary Graph Sums Acc Inc Add sum x y y x x x j j z z z z a a i i {U6} {U2, U3, U5}} {U6} {U2. U3} {U1} {U6} {U4, U6} {U1, U4, U6} U1: sum in line 7 U2: i in line 7 U3: i in line 8 U4: j in line 13 U5: y in line 13 U6: a in line programSums 2. read(n); 3. i:= 1; 4. while i <= n 5. sum:=0; 6. Acc(sum,i); 7. write(sum, i); 8. i : = i + l ; 9. endwhile 10. end. 11. procedure Acc(x,y) refx, y 12. j:= 1: 13. whilejsy 14. Add(x,j); 15. Inc(j); 16. endwhile 17. return 18. procedure Inc(z) ref z 19. Add(z.1): 20. return 21. procedure Add(a,b) ref a; value b 22. a:=a+b; 23. return

20 MM-Paths and ASFs are a hybrid of functional and structural testing. They are functional in sense that each represents an action with inputs and outputs, –all functional testing techniques are potentially applicable. –The structural side is how they are identified : MM-Path graph. Discussion on Behavioral Integration Testing

21 We avoid the pitfalls of structural testing, – and at same time, integration testing gains a fairly seamless junction with system testing. Advantages come at a price: –more effort to identify MM-Paths and ASFs. – Effort may be offset by elimination of stub/driver development. –Also may be an overkill for applications which are not event driven. Discussion on Behavioral Integration Testing