Today’s Agenda  HW #1 Due  Quick Review  Finish Input Space Partitioning  Combinatorial Testing Software Testing and Maintenance 1.

Slides:



Advertisements
Similar presentations
Overview Functional Testing Boundary Value Testing (BVT)
Advertisements

Black Box Testing Csci 565 Spring 2009.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
IPOG: A General Strategy for T-Way Software Testing
Combinatorial Testing Using Covering Arrays - Going Beyond Pairwise Testing Raghu Kacker, NIST Yu Lei, UTA 5/15/06.
Cloud Computing Resource provisioning Keke Chen. Outline  For Web applications statistical Learning and automatic control for datacenters  For data.
Divide and Conquer. Recall Complexity Analysis – Comparison of algorithm – Big O Simplification From source code – Recursive.
RANJAN BHAMBROO Experimental Investigation of Effectiveness of Logical Expressions Using t-way Testing.
Nattee Niparnan. Recall  Complexity Analysis  Comparison of Two Algos  Big O  Simplification  From source code  Recursive.
Practical Approach to Teaching Software Testing Sashko Ristov 11th Workshop on “Software Engineering Education and Reverse Engineering” – August 22-27,
Software Testing and Quality Assurance
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
Prune-and-search Strategy
Rick Kuhn Computer Security Division
ECE 667 Synthesis and Verification of Digital Systems
CSCI 5582 Fall 2006 CSCI 5582 Artificial Intelligence Lecture 22 Jim Martin.
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 9 Functional Testing
1 Joe Meehean. 2 Testing is the process of executing a program with the intent of finding errors. -Glenford Myers.
January 27, 2002 ECEN5033 University of Colorado -- Class Testing 1 Specifying interactions Remainder of slides assume Operations defined by a class are.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Chapter 5 Algorithm Analysis 1CSCI 3333 Data Structures.
System/Software Testing
10- 1 Chapter 10. To familiarize you with  Main types of computer-generated reports  Techniques used for efficient printing of group reports and control.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Black-Box Testing Techniques I Software Testing Lecture 4.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
© The McGraw-Hill Companies, Inc., Chapter 6 Prune-and-Search Strategy.
Querying Structured Text in an XML Database By Xuemei Luo.
CoFM: An Environment for Collaborative Feature Modeling Li Yi Institute of Software, School of EECS, Peking University Key Laboratory of High Confidence.
Testing Testing Techniques to Design Tests. Testing:Example Problem: Find a mode and its frequency given an ordered list (array) of with one or more integer.
Combinatorial Testing Review “Combinatorial Software Testing”, Kuhn, Kacker, Lei, Hunter, IEEE Computer, Aug Compared “traditional” software test.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
Software Testing Input Space Partition Testing. 2 Input Space Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Use cases.
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt retest/
Today’s Agenda  Final Exam: 12:30am-1:50pm, 12/6 (Tue)  Final Review Software Testing and Maintenance 1.
Overview Concept Learning Representation Inductive Learning Hypothesis
Introduction to Software Testing Chapters 1-5 Coverage Summary Paul Ammann & Jeff Offutt
Introduction to Software Testing Paul Ammann & Jeff Offutt Updated 24-August 2010.
1 Input Space Partitioning(2). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 4  Section 4.1  Section
Equivalence Class Testing In chapter 5, we saw that all four variations of boundary value testing are vulnerable to –gaps of untested functionality, and.
Review Sorting algorithms Selection Sort Insertion Sort Bubble Sort Merge Sort Quick Sort.
Control Break Processing
Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt
Condition Testing. Condition testing is a test case design method that exercises the logical conditions contained in a program module. A simple condition.
1 Software Testing. 2 Equivalence Class Testing 3 The use of equivalence class testing has two motivations: –Sense of complete testing –Avoid redundancy.
Mutation Testing Breaking the application to test it.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Introduction to Software Testing. Introduction 2 Four Structures for Modeling Software Graphs Logic Input Space Syntax Use cases Specs Design Source Applied.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Lab 7 Control-Flow Testing
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
ISP Coverage Criteria CS 4501 / 6501 Software Testing
Software Testing and Maintenance 1
Input Space Partition Testing CS 4501 / 6501 Software Testing
Paul Ammann & Jeff Offutt
Software Testing and Maintenance 1
Paul Ammann & Jeff Offutt
Combinatorial Testing
Paul Ammann & Jeff Offutt
IPOG: A General Strategy for T-Way Software Testing
ISP Coverage Criteria CS 4501 / 6501 Software Testing
Lecture 2- Query Processing (continued)
Regression Testing.
IPOG: A general strategy for t-way software testing by Lei, Yu, IEEE /2/2019 Mehra N Borazjany.
Presentation transcript:

Today’s Agenda  HW #1 Due  Quick Review  Finish Input Space Partitioning  Combinatorial Testing Software Testing and Maintenance 1

Quick Review  What is equivalence partitioning? What are the two major approaches to equivalence partitioning? Software Testing and Maintenance 2

Software Testing and Maintenance 3 Combinatorial Testing  Introduction  Combinatorial Coverage Criteria  Pairwise Test Generation  Summary

Software Testing and Maintenance 4 Motivation  The behavior of a software application may be affected by many factors, e.g., input parameters, environment configurations, and state variables.  Techniques like equivalence partitioning and boundary-value analysis can be used to identify the possible values of each factor.  It is impractical to test all possible combinations of values of all those factors. (Why?)

Software Testing and Maintenance 5 Combinatorial Explosion  Assume that an application has 10 parameters, each of which can take 5 values. How many possible combinations?

Software Testing and Maintenance 6 Example - sort > man sort Reformatting page. Wait... done User Commands sort(1) NAME sort - sort, merge, or sequence check text files SYNOPSIS /usr/bin/sort [ -cmu ] [ -o output ] [ -T directory ] [ -y [ kmem ]] [ -z recsz ] [ -dfiMnr ] [ -b ] [ -t char ] [ -k keydef ] [ +pos1 [ -pos2 ]] [ file...] …

Software Testing and Maintenance 7 Combinatorial Design  Instead of testing all possible combinations, a subset of combinations is generated to satisfy some well-defined combination strategies.  A key observation is that not every factor contributes to every fault, and it is often the case that a fault is caused by interactions among a few factors.  Combinatorial design can dramatically reduce the number of combinations to be covered but remains very effective in terms of fault detection.

Software Testing and Maintenance 8 Fault Model  A t-way interaction fault is a fault that is triggered by a certain combination of t input values.  A simple fault is a t-way fault where t = 1; a pairwise fault is a t-way fault where t = 2.  In practice, the majority of faults in a software applications consist of simple and pairwise faults.

Software Testing and Maintenance 9 Example – Pairwise Fault begin int x, y, z; input (x, y, z); if (x == x1 and y == y2) output (f(x, y, z)); else if (x == x2 and y == y1) output (g(x, y)); else output (f(x, y, z) + g(x, y)) end Expected: x = x1 and y = y1 => f(x, y, z) – g(x, y); x = x2, y = y2 => f(x, y, z) + g(x, y)

Software Testing and Maintenance 10 Example – 3-way Fault begin int x, y, z, p; input (x, y, z); p = (x + y) * z // should be p = (x – y) * z if (p >= 0) output (f(x, y, z)); else output (g(x, y)); end

Software Testing and Maintenance 11 Combinatorial Testing  Introduction  Combination Strategies Criteria  Pairwise Test Generation  Summary

Software Testing and Maintenance 12 All Combinations Coverage  Every possible combination of values of the parameters must be covered  For example, if we have three parameters P1 = (A, B), P2 = (1, 2, 3), and P3 = (x, y), then all combinations coverage requires 12 tests: {(A, 1, x), (A, 1, y), (A, 2, x), (A, 2, y), (A, 3, x), (A, 3, y), (B, 1, x), (B, 1, y), (B, 2, x), (B, 2, y), (B, 3, x), (B, 3, y)}

Software Testing and Maintenance 13 Each Choice Coverage  Each parameter value must be covered in at least one test case.  Consider the previous example, a test set that satisfies each choice coverage is the following: {(A, 1, x), (B, 2, y), (A, 3, x)}

Software Testing and Maintenance 14 Pairwise Coverage  Given any two parameters, every combination of values of these two parameters are covered in at least one test case.  A pairwise test set of the previous example is the following: P1 P2P3 A 1x A 2x A 3x A -y B 1y B 2y B 3y B -x

Software Testing and Maintenance 15 T-Wise Coverage  Given any t parameters, every combination of values of these t parameters must be covered in at least one test case.  For example, a 3-wise coverage requires every triple be covered in at least one test case.  Note that all combinations, each choice, and pairwise coverage can be considered to be a special case of t-wise coverage.

Software Testing and Maintenance 16 Base Choice Coverage  For each parameter, one of the possible values is designated as a base choice of the parameter  A base test is formed by using the base choice for each parameter  Subsequent tests are chosen by holding all base choices constant, except for one, which is replaced using a non-base choice of the corresponding parameter: P1 P2P3 A 1x B 1x A 2x A 3x A 1y

Software Testing and Maintenance 17 Multiple Base Choices Coverage  At least one, and possibly more, base choices are designated for each parameter.  The notions of a base test and subsequent tests are defined in the same as Base Choice.

Software Testing and Maintenance 18 Subsumption Relation All Combinations T-Wise Pairwise Multiple Base Choices Base Choice Each Choice

Software Testing and Maintenance 19 Combinatorial Testing  Introduction  Combination Strategies Criteria  Pairwise Test Generation  Summary

Software Testing and Maintenance 20 Why Pairwise?  Many faults are caused by the interactions between two parameters  Not practical to cover all the parameter interactions

Software Testing and Maintenance 21 Example (1) Consider a system with the following parameters and values:  parameter A has values A1 and A2  parameter B has values B1 and B2, and  parameter C has values C1, C2, and C3

Software Testing and Maintenance 22 Example (2) ABC A1B1C1 A1B2C2 A2B1C3 A2B2 C1 A2B1C2 A1B2C3 ABC A1B1C1 A1B2C1 A2B1C2 A2B2C3 A2B1 C1 A1B2C2 A1B1C3 ABC A1B1C1 A1B2C1 A2B1C2 A2B2C2 A2B1 C1 A1B1C2 A1B1C3 A2B2C3

Software Testing and Maintenance 23 The IPO Strategy  First generate a pairwise test set for the first two parameters, then for the first three parameters, and so on  A pairwise test set for the first n parameters is built by extending the test set for the first n – 1 parameters  Horizontal growth: Extend each existing test case by adding one value of the new parameter  Vertical growth: Adds new tests, if necessary

Software Testing and Maintenance 24 Algorithm IPO_H (T, p i ) Assume that the domain of p i contains values v 1, v 2, …, and v q ;  = { pairs between values of p i and values of p 1, p 2, …, and p i-1 if ( |T| <= q) for 1 <= j <= |T|, extend the j th test in T by adding value v j and remove from  pairs covered by the extended test else for 1 <=j <= q, extend the j th test in T by adding value v j and remove from  pairs covered by the extended test; for q < j <= |T|, extend the j th test in T by adding one value of p i such that the resulting test covers the most number of pairs in , and remove from  pairs covered by the extended test

Software Testing and Maintenance 25 Algorithm IPO_V(T,  ) let T’ be an empty set; for each pair in  assume that the pair contains value w of p k, 1 ≤ k < i, and value u of p i ; if (T’ contains a test with “-” as the value of p k and u as the value of p i ) modify this test by replacing the “-” with w else add a new test to T’ that has w as the value of p k, u as the value of p i, and “-” as the value of every other parameter; T = T  T’

Software Testing and Maintenance 26 Example Revisited Show how to apply the IPO strategy to construct the pairwise test set for the example system.

Software Testing and Maintenance 27 Combinatorial Testing  Introduction  Combinatorial Coverage Criteria  Pairwise Test Generation  Summary

Software Testing and Maintenance 28 Summary  Combinatorial testing makes an excellent trade- off between test effort and test effectiveness.  Pairwise testing can often reduce the number of dramatically, but it can still detect faults effectively.  The IPO strategy constructs a pairwise test set incrementally, one parameter at a time.  In practice, some combinations may be invalid from the domain semantics, and must be excluded, e.g., by means of constraint processing.