1 Software Testing & Quality Assurance Lecture 14 Created by: Paulo Alencar Modified by: Frank Xu.

Slides:



Advertisements
Similar presentations
Overview Structural Testing Introduction – General Concepts
Advertisements

Overview Functional Testing Boundary Value Testing (BVT)
Data Flow Coverage. Reading assignment L. A. Clarke, A. Podgurski, D. J. Richardson and Steven J. Zeil, "A Formal Evaluation of Data Flow Path Selection.
Whitebox Testing Fra: CS Fall Whitebox Testing AKA Structural, Basis Path Test Normally used at unit level Assumes errors at unit level are.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 11 Instructor Paulo Alencar.
Testing Concurrent/Distributed Systems Review of Final CEN 5076 Class 14 – 12/05.
Today’s Agenda  HW #1 Due  Quick Review  Finish Input Space Partitioning  Combinatorial Testing Software Testing and Maintenance 1.
Software Testing and Quality Assurance
Chapter 8: Path Testing Csci 565.
Chapter 5 Retrospective on Functional Testing Software Testing
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 5 Data Flow Testing
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Path testing Path testing is a “design structural testing” in that it is based on detailed design & the source code of the program to be tested. The methodology.
Test coverage Tor Stålhane. What is test coverage Let c denote the unit type that is considered – e.g. requirements or statements. We then have C c =
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 9 Instructor Paulo Alencar.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Data Flow Testing Data flow testing(DFT) is NOT directly related to the design diagrams of data-flow-diagrams(DFD). It is a form of structural testing.
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.
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Path Testing + Coverage Chapter 9 Assigned reading from Binder.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Final Review  Different tests  Boundary Value Testing  Equivalence Class Testing  Decision Table Based Testing  Path Testing  Data Flow & P-Slice.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Reference Paulo Alencar, University of Waterloo Frank Tsui, Southern Polytechnic State University.
1 Software Testing & Quality Assurance Lecture 10 Created by: Paulo Alencar Modified by: Frank Xu.
1 Software Testing. 2 Path Testing 3 Structural Testing Also known as glass box, structural, clear box and white box testing. A software testing technique.
Lec 06 Path Testing Part II - 1 CSCE 747 Fall 2013 CSCE 747 Software Testing and Quality Assurance Lecture 06 – Path Testing Part II 9/16/
Test Coverage CS-300 Fall 2005 Supreeth Venkataraman.
Coverage Estimating the quality of a test suite. 2 Code Coverage A code coverage model calls out the parts of an implementation that must be exercised.
Summarizing “Structural” Testing Now that we have learned to create test cases through both: – a) Functional (blackbox)and – b) Structural (whitebox) testing.
White Box-based Coverage Testing (© 2012 Professor W. Eric Wong, The University of Texas at Dallas) 111 W. Eric Wong Department of Computer Science The.
Overview Structural Testing Introduction – General Concepts
Overview Functional Testing Boundary Value Testing (BVT)
Overview Structural Testing Introduction – General Concepts
Structural Testing Review Chapter Measuring Gaps and Redundancy We have seen that functional testing methods may produce test suites with serious.
1 Software Testing & Quality Assurance Lecture 13 Created by: Paulo Alencar Modified by: Frank Xu.
1 Software Testing & Quality Assurance Lecture 5 Created by: Paulo Alencar Modified by: Frank Xu.
Chapter 9: Path Testing Csci 565 Spring Objectives  Decision-to-decision path (DD-Paths)  Test Coverage Metrics  Basis Path Testing  Observation.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Structural Coverage. Measurement of structural coverage of code is a means of assessing the thoroughness of testing. Such metrics do not constitute testing.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Lec 10 Integration Testing- 1 CSCE 747 Fall 2013 CSCE 747 Software Testing and Quality Assurance Lecture 10 – Integration Testing 9/30/
Software Testing and Quality Assurance Practical Considerations (1) 1.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Cause & Effect Graph Comparison Testing
Paul Ammann & Jeff Offutt
CSCE 747 Software Testing and Quality Assurance
Software Testing and Maintenance 1
Chapter 5 Retrospective on Functional Testing Software Testing
Aditya P. Mathur Purdue University
White-Box Testing.
Overview Functional Testing Boundary Value Testing (BVT)
UNIT-IV ECS-602 Software engineering PART-I
Chapter 9 Path Testing–Part 1
CSCE 747 Software Testing and Quality Assurance
Chapter 10 Data Flow Testing Slice Testing
White-Box Testing.
CSCE 747 Software Testing and Quality Assurance
CSCE 747 Software Testing and Quality Assurance
CSCE 747 Software Testing and Quality Assurance
Structural Coverage.
ISP Coverage Criteria CS 4501 / 6501 Software Testing
Test coverage Tor Stålhane.
Structural Coverage.
Regression Testing.
CSCE 747 Software Testing and Quality Assurance
Presentation transcript:

1 Software Testing & Quality Assurance Lecture 14 Created by: Paulo Alencar Modified by: Frank Xu

2 Overview  Structural Testing  Introduction – General Concepts  Flow Graph Testing  Data Flow Testing  Definitions  Some Basic Data Flow Analysis Algorithms  Define/use Testing  Slice Based Testing  Guidelines and Observations  Hybrid Methods  Retrospective on Structural Testing

3 Issues on Structural Testing An important question relates to the point where we stop to test and release the system for beta testing. Some possible answers could be: –When all faults have been removed! –When we run out of time –When continued testing produces no new failures –When continued testing reveals no new faults –When we have exhausted the testing criteria and the test cases we have designed –When we reach a point of diminishing returns –When the mandated coverage has been achieved –When the failure intensity (failures / CPU hour) level drops below a certain point

4 Metrics for Testing Method Comparison (1) Functional testing methods may (eventually) provide a high level of path coverage, but at the cost of high redundancy The question is to define metrics that relate the effectiveness of a functional technique with that of a structural technique (path coverage) To start addressing this question we first observe that functional testing methods are measured according to the number of test cases they produce, while structural testing methods are measured according to the level of the corresponding path coverage they achieve.

5 Metrics for Testing Method Comparison (2) Let’s assume a functional testing method M, and a structural metric S that identifies s coverage elements in the unit under test Furthermore, let us assume that the functional testing method M produces m test cases, and these m test cases traverse n of the s structural coverage elements. We then define the following: –Coverage of methodology M with respect to metric S is defined as C(M,S) = n/s –Redundancy of methodology M with respect to metric S is defined as R(M,S) = m/s –Net redundancy of methodology M with respect to metric S is defined as NR(M,S) = m/n

6 Sample Comparison of Functional Testing Methods with respect to a Structural Metric MethodmnsC(M,S)R(M,S)NR(M,S) nominal Worst case MethodmnsC(M,S)R(M,S)NR(M,S) Output bva Decision Table S: Program Paths s: total number of paths n: number of paths traversed using method M m: number of test cases generated by method M M: Functional method Ref: “Software testing: A Craftsman’s Approach”, P. Jorgensen Triangle Problem Commission Problem

7 Sample Comparison of a Functional Testing Method (Output BVA) with respect to Structural Metrics (DD-Path, DU-Path, Slices) MethodmnsC(M,S)R(M,S)NR(M,S) DD-Path DU-Path Slices S: Structural Metric s: total number of paths in structural metric S n: number of paths traversed using method M m: number of test cases generated by method M M: Functional method Ref: “Software testing: A Craftsman’s Approach”, P. Jorgensen Commission Problem

8 Testing Sophistication vs. Number of Test Coverage Items DD-Path Basis Path DU-Path Slice low high Sophistication Number of Test Coverage Items Ref: “Software testing: A Craftsman’s Approach”, P. Jorgensen

9 Test Coverage Items DD-Path Basis Path DU-Path Slice Number of Test Coverage Items 5 33 Ref: “Software testing: A Craftsman’s Approach”, P. Jorgensen

10 Test Case Sophistication vs. Test Case Identification Effort DD-Path Basis Path DU-Path Slice low high Sophistication Effort to Identify Test Coverage Items Ref: “Software testing: A Craftsman’s Approach”, P. Jorgensen

11 Remarks Functional testing is prone to gaps and redundancies Structural path-coverage testing considers infeasible paths Data flow testing considers program semantics on Control Flow Graph paths Hybrid approaches that combine functional-structural methods are useful Structural testing techniques are best suited for unit testing

12 Subsumption A test criterion C1 subsumes a test criterion C2 if every test suite that satisfies C1 also satisfies C2 Two test criteria C1 and C2 are equivalent if C1 subsumes C2 and vice-versa What is the subsumption relation among coverage criteria?

13 Subsumption Hierarchy – Control Flow

14 Subsumption Hierarchy – Data Flow