Different Levels of Testing

Slides:



Advertisements
Similar presentations
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Advertisements

Integration testing Satish Mishra
Integration and System Testing CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 29, 2007.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Integration Testing Presented By Nesreen Ahmad. *Main Points:-  Definition Of Integration Testing.  Procedure Of Integration Testing.  Integration.
Illinois Institute of Technology
CS 425/625 Software Engineering Software Testing
INTEGRATION TESTING ● After or during Unit Testing ● Putting modules together in a controlled way to incrementally build up the final system. ● Start with.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
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 Testing & Strategies
C++ fundamentals.
Bottom-Up Integration Testing After unit testing of individual components the components are combined together into a system. Bottom-Up Integration: each.
Chapter 13 & 14 Software Testing Strategies and Techniques
ECE 355: Software Engineering
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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
Implementation & Integration Phase Implementation, then integration: Implementation, then integration:  Each module is implemented by member of programmer.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Final Review  Different tests  Boundary Value Testing  Equivalence Class Testing  Decision Table Based Testing  Path Testing  Data Flow & P-Slice.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Architecting Web Services Unit – II – PART - III.
Unified Modeling Language, Version 2.0
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Levels of Software Applications Up to now we have focused on testing techniques at the unit (or program) level. In any medium to large software systems,
Testing Worshop in Software Engineering Project Department of Computer Science Ben-Gurion university 1Worshop in SE ProjectSpring 2013.
Chapter 14 System Testing.
Chapter 13 Integration Testing. The Mars Climate Orbiter Mission mission failed in September 1999 completed successful flight: 416,000,000 miles (
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
CSC 480 Software Engineering Lecture 15 Oct 21, 2002.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
Learners Support Publications Object Oriented Programming.
System Testing Beyond unit testing. 2 System Testing Of the three levels of testing, system level testing is closest to everyday experience We evaluate.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
System Testing Earlier we have stated the 2 views of testing:
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Integration Testing Beyond unit testing. 2 Testing in the V-Model Requirements Detailed Design Module implementation Unit test Integration test System.
1 Software Testing & Quality Assurance Lecture 15 Created by: Paulo Alencar Modified by: Frank Xu.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
CS 325: Software Engineering February 16, 2016 Designing a Design Class Diagram Design Class Diagrams DCD: Restaurant Example DCD: ATM Example Software.
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 Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Chapter 8 Testing the Programs. Integration Testing  Combine individual comp., into a working s/m.  Test strategy gives why & how comp., are combined.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
CHAPTER 9 - PART 1 Software Testing Strategies. Lesson Outlines Definitions and objectives Software testing strategies Software test classifications White.
Testing Worshop in Software Engineering Project Department of Computer Science Ben-Gurion university 1Worshop in SE ProjectSpring 2013.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Lec 10 Integration Testing- 1 CSCE 747 Fall 2013 CSCE 747 Software Testing and Quality Assurance Lecture 10 – Integration Testing 9/30/
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.
Higher-Level Testing and Integration Testing
Different Levels of Testing
Ch. 14 System Testing Earlier we have stated the 2 views of testing:
Chapter 10 – Software Testing
Integration Testing CS 4311
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Chapter 13 Integration Testing.
Integration Testing.
Software System Integration
Chapter 11: Integration- and System Testing
Chapter 2: Building a System
Presentation transcript:

Different Levels of Testing System Testing Unit Testing Functional Testing Component Testing Program unit A Function 1 Program unit B Component 1 Whole System (e.g. regression testing) . . Function 2 . Component 3 Function 8 Program unit T Structural (white-box) testing more functional (Black-box) testing

Using Configuration Management tool Naming Convention and Promotion Policies are needed along with configuration Management tool There must be a clear rule about promoting the artifact from one stage of development / test to another. Once the artifact is promoted to a certain stage, it is locked at that stage. It is also important to promote related artifacts such as code, help text and test cases promote promote promote . promote Formally Inspected Functionally Tested Integration & System Tested Golden Copy Unit-tested Private Copies

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 are “inter-related” mostly in some manner through: Calling and passing controls Calling and passing data or passing “pointers” to data Integration test looks at the inter-action: “structural” composition (or decomposition) and test the related code (modules / programs). The “call” relationship neighborhood and test the “neighborhood” The path created by the relationship and test the “path” ** Object Oriented relationship such as inheritance is addressed differently.

Types of Integration tests based on Structural Decomposition There are 4 major types of integration test for Structural Decomposition Based test: Top- down Bottom-up Combination (Sandwich) Big Bang

Top-down i) Once the root modules is “completed”, here means unit tested i) Once the root modules is “completed”, we need to build 3 stubs to perform integration test of root module with stubs. ii) As the next level module is completed, we would build more stubs to perform the next level of integration test iii) Continue this process until all the all the completed modules are tested

Bottom-UP i) Once a set of bottom modules are completed we would build a driver, at the next higher level, to run the integration test. ii) Continue this process until all the all the completed modules are tested

Combination (Sandwich) If this is completed first, we may choose to build 3 stubs to test - Once a module is completed, we would build the appropriate driver or stubs to perform the integration test. - Continue this process until all the modules are tested “Combo” is a more likely scenario - - - making “integration” management a complex job that needs some tool help. If these two are completed, we may choose to build a driver to test ; may also build two (green) stubs.

Big-Bang This scenario happens more likely - Wait for all the modules to be completed and perform one integration (one link-edit). Then test all the integrated modules together. This scenario happens more likely at the over-all system or component test time

Some Metrics for Integration Test based on Structural Decomposition For Top-down approach with n nodes, there is a potential need to construct as much as (n-1) stubs. For Bottom-up approach with n nodes and v leaves, there is a potential need to construct as much as (n - v) drivers. For both cases there may be as much as (n – v + edges) number of test sessions (e.g. cases or scenarios)

Simple Construct Example for the Metrics B C D E There are 5 nodes and 4 leaves and 4 edges: n- 1 = 5 -1 = 4 stubs n - v = 5 - 4 = 1 driver n - v+ edges = 5 - 4 + 4 = 5 test sessions Number of test sessions potentially = 5: (Top-down) (Bottom-up) 1. A is complete: E is complete: test with 4 stubs test with driver A 2. B is complete: D is complete: test with 3 stubs test with driver A 3. C is complete: C is complete: test with 2 stubs test with driver A 4. D is complete: B is complete: test with 1 stub test with driver A 5. E is complete: A is complete: test all modules test all modules

Slightly Modified Example for the Metrics Number of test sessions = 6: (Top-down) (Bottom-up) 1. A is complete: E is complete: test with 2 stubs test with driver A 2. B is complete: D is complete: test with 2 stubs test with driver B 3. B is complete: C is complete: test with A test with driver B 4. C is complete: B is complete: test with B test with C and D 5. D is complete: B is complete: test with B test with driver A 6. E is complete: A is complete: test all modules test all modules B E C D There are 5 nodes and 3 leaves and 4 edges: n- 1 = 5 -1 = 4 stubs n - v = 5 - 3 = 2 drivers n - v+ edges = 5 – 3 + 4 = 6 test sessions

Pair-Wise Integration (Sandwich-like) One of the key drawbacks to top-down or bottom-up testing for Decomposition-based integration testing is the need for constructing drivers and stub. Pair wise integration testing waits for a “related pair” of modules to be completed and then test them. Thus it eliminates the stubs and drivers. There is also a potential reduction in test sessions ---- just # of edges “Related” via edge connection

Example of Pair-Wise Testing B E B C D E C D Pair-wise test sessions : 4 1. A – B 2. B – C 3. B – D 4. A – E Pair-wise test sessions : 4 1. A – B 2. A – C 3. A – D 4. A – E

“Neighborhood” Integration Testing Neighborhood of a node is the set of nodes that are one edge away from the given node. Thus the neighborhood of a node, n, are all the predecessors and successor nodes of n. # of neighborhoods = # of interior nodes + source node . There are some positive and negative characteristics with neighborhood integration testing: Positives: Less test sessions ** Possibly give more of a “behavior” view of a “thread” Negative: May be harder to locate bugs Wait for the completion (timing) of a neighborhood before testing

Number of “neighborhoods” Number of neighborhoods in a call graph may be viewed as: Number of interior nodes (that form neighborhoods around them) AND 1 neighborhood around the root node Numerically: Interior nodes = all nodes – ( source node + sink nodes) # of Neighborhood = interior nodes + source node # of Neighborhood = all nodes – sink nodes Note that source node is the 1 root-node in our case: we should start with the neighborhood around the root then consider all the neighborhoods around the interior nodes

Example of Neighborhood Integration Testing C D E C D Total nodes = 5 Sink nodes = 4 Neighborhood = 5 - 4 = 1 Total nodes = 5 Sink nodes = 3 Neighborhood = 5 – 3 = 2 A A A B B E B C D E D C neighborhood(1) (1) neighborhood neighborhood (2)

How many neighborhoods are there? C G E H F J I There are ( 10 nodes – 5 sink nodes) = 5 neighborhoods - 1 around the root (start here --- so there is some potential wait time) - 1 around B - 1 around E - 1 around C - 1 around D

“Path-Based” Integration Test Instead of just focusing on the interfaces of the “related” modules in integration test, it would be more meaningful to also focus on the “interactions” among these related modules. An extension of the neighborhood would be to trace a complete “thread” of interactions among the modules and test that “thread” or “path.”

Some Definitions for Path-based Integration Test Source node is the point where program execution starts Sink node is the point where the program execution stops A module execution path is a sequence of statements that begins with a source node and ends with a sink node, with no intervening sink nodes. A message is a “mechanism” with which one unit of code transfers control to another unit of code; control return is also a message An MM-path (module-to-module path) is an interleaved sequence of i) module execution paths and ii) messages Sequence of “nodes” represent a module execution path Sequence of “edges” represent the messages An MM-Path Graph is the directed graph in which nodes are from the module execution paths and edges are passing of control/messages.

A Simple Example of an MM-Path (Module A) (Module B) (Module C) 1 1 1 2 2 3 2 4 3 3 4 5 6 4 5 Source nodes : A1 and A5 Sink nodes: A4 and A6 Source nodes : B1 and B3 Sink nodes: B2 and B4 Source nodes : C1 Sink nodes: C5 Note: Should modules A and B be recoded ? A1= <1,2,3,6>; A2=<1,2,4> ; A3 = <5,6> Module Execution Paths: B1= <1,2> ; B2 = <3,4> C1= <1,2,4,5> ; C2= <1,3,4,5>

Simple Example of MM-Path Graph (from previous slide) B1 A1 C1 B2 C2 A3 - The MM-Path that goes across modules may be looked upon as an inter-module “slice.” - In large and medium sized systems, an MM-Path may be viewed as a “major application function/thread”.