Download presentation
Presentation is loading. Please wait.
Published byBlanche McGee Modified over 9 years ago
1
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 14 Software Testing Techniques Software Engineering: A Practitioner’s Approach, 6/e Chapter 14 Software Testing Techniques copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.
2
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 2 Testability Operability—it operates cleanly Operability—it operates cleanly Observability—the results of each test case are readily observed Observability—the results of each test case are readily observed Controllability—the degree to which testing can be automated and optimized Controllability—the degree to which testing can be automated and optimized Decomposability—testing can be targeted Decomposability—testing can be targeted Simplicity—reduce complex architecture and logic to simplify tests Simplicity—reduce complex architecture and logic to simplify tests Stability—few changes are requested during testing Stability—few changes are requested during testing Understandability—of the design Understandability—of the design
3
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 3 What is a “Good” Test? A good test has a high probability of finding an error A good test has a high probability of finding an error A good test is not redundant. A good test is not redundant. A good test should be “best of breed” A good test should be “best of breed” A good test should be neither too simple nor too complex A good test should be neither too simple nor too complex
4
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 4 Test Case Design "Bugs lurk in corners and congregate at boundaries..." Boris Beizer OBJECTIVE CRITERIA CONSTRAINT to uncover errors in a complete manner with a minimum of effort and time
5
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5 Exhaustive Testing loop < 20 X There are 10 possible paths! If we execute one test per millisecond, it would take 3,170 years to test this program!! 14
6
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 6 Selective Testing loop < 20 X Selected path
7
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 7 Software Testing Methods Strategies white-box methods black-box methods
8
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 8 White-Box Testing... our goal is to ensure that all statements and conditions have been executed at least once...
9
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 9 Why Cover? logic errors and incorrect assumptions are inversely proportional to a path's execution probability we often believe that a path is not that a path is not likely to be executed; in fact, reality is often counter intuitive typographical errors are random; it's likely that untested paths will contain some
10
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 10 Basis Path Testing First, we compute the cyclomatic complexity: number of simple decisions + 1 or number of enclosed areas + 1 In this case, V(G) = 4
11
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11 Cyclomatic Complexity A number of industry studies have indicated that the higher V(G), the higher the probability or errors. V(G) modules modules in this range are more error prone
12
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 12 Basis Path Testing Next, we derive the independent paths: Since V(G) = 4, there are four paths Path 1: 1,2,3,6,7,8 Path 2: 1,2,3,5,7,8 Path 3: 1,2,4,7,8 Path 4: 1,2,4,7,2,4,...7,8 Finally, we derive test cases to exercise these paths. 1 2 3 4 56 7 8
13
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 13 Flow Graph: Binary search V(G) = E – N + 2 V(G) = E – N + 2 = 11 – 9 + 2 = 4 = 11 – 9 + 2 = 4 #Paths = 4 #Paths = 4 Test cases should be derived so that all of these paths are executed Test cases should be derived so that all of these paths are executed 1, 2, 3, 8, 9 1, 2, 3, 8, 9 1, 2, 3, 4, 6, 7, 2 1, 2, 3, 4, 6, 7, 2 1, 2, 3, 4, 5, 7, 2 1, 2, 3, 4, 5, 7, 2 1, 2, 3, 4, 6, 7, 2, 8, 9 1, 2, 3, 4, 6, 7, 2, 8, 9
14
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 14 Basis Path Testing Notes you don't need a flow chart, but the picture will help when you trace program paths count each simple logical test, compound tests count as 2 or more basis path testing should be applied to critical modules
15
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 15 Graph Matrices A graph matrix is a square matrix whose size (i.e., number of rows and columns) is equal to the number of nodes on a flow graph A graph matrix is a square matrix whose size (i.e., number of rows and columns) is equal to the number of nodes on a flow graph Each row and column corresponds to an identified node, and matrix entries correspond to connections (an edge) between nodes. Each row and column corresponds to an identified node, and matrix entries correspond to connections (an edge) between nodes. By adding a link weight to each matrix entry, the graph matrix can become a powerful tool for evaluating program control structure during testing By adding a link weight to each matrix entry, the graph matrix can become a powerful tool for evaluating program control structure during testing
16
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 16 Graph Matrices
17
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 17 Control Structure Testing Condition testing — a test case design method that exercises the logical conditions contained in a program module Condition testing — a test case design method that exercises the logical conditions contained in a program module Data flow testing — selects test paths of a program according to the locations of definitions and uses of variables in the program Data flow testing — selects test paths of a program according to the locations of definitions and uses of variables in the program
18
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 18 Loop Testing Concatenated Loops Loops Unstructured Loops Simpleloop NestedLoops
19
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 19 Loop Testing: Simple Loops Minimum conditions—Simple Loops 1. skip the loop entirely 2. only one pass through the loop 3. two passes through the loop 4. m passes through the loop m < n 5. (n-1), n, and (n+1) passes through the loop where n is the maximum number of allowable passes Simpleloop
20
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 20 Loop Testing: Nested Loops Start at the innermost loop. Set all outer loops to their minimum iteration parameter values. Test the min+1, typical, max-1 and max for the innermost loop, while holding the outer loops at their minimum values. Move out one loop and set it up as in step 2, holding all other loops at typical values. Continue this step until the outermost loop has been tested. Nested Loops
21
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 21 Loop Testing: Concatenated Loops If the loops are independent of one another then treat each as a simple loop then treat each as a simple loop else* treat as nested loops else* treat as nested loops endif* for example, the final loop counter value of loop 1 is used to initialize loop 2. Concatenated Loops
22
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 22 Black-Box Testing requirements events input output
23
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 23 Black-Box Testing How is functional validity tested? How is functional validity tested? How is system behavior and performance tested? How is system behavior and performance tested? What classes of input will make good test cases? What classes of input will make good test cases? Is the system particularly sensitive to certain input values? Is the system particularly sensitive to certain input values? How are the boundaries of a data class isolated? How are the boundaries of a data class isolated? What data rates and data volume can the system tolerate? What data rates and data volume can the system tolerate? What effect will specific combinations of data have on system operation? What effect will specific combinations of data have on system operation?
24
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 24 Graph-Based Methods To understand the objects that are modeled in software and the relationships that connect these objects In this context, we consider the term “objects” in the broadest possible context. It encompasses data objects, traditional components (modules), and object-oriented elements of computer software.
25
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 25 Equivalence Partitioning userqueries mousepicks outputformats prompts FKinput data
26
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 26 Sample Equivalence Classes user supplied commands responses to system prompts file names computational data physical parameters physical parameters bounding values bounding values initiation values initiation values output data formatting responses to error messages graphical data (e.g., mouse picks) data outside bounds of the program physically impossible data proper value supplied in wrong place Valid data Invalid data
27
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 27 Equivalence partitioning Partition system inputs and outputs into ‘equivalence sets’ Partition system inputs and outputs into ‘equivalence sets’ If input is a 5-digit integer between 10,000 and 99,999, equivalence partitions are 10, 000 If input is a 5-digit integer between 10,000 and 99,999, equivalence partitions are 10, 000 Choose test cases at the boundary of these sets Choose test cases at the boundary of these sets 00000, 09999, 10000, 99999, 10001 00000, 09999, 10000, 99999, 10001
28
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 28 Equivalence partitions
29
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 29 Boundary Value Analysis userqueries mousepicks outputformats prompts FKinput data outputdomain input domain
30
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 30 Boundary Value Testing Range a..b Range a..b test cases: a, b, just below a, just above b test cases: a, b, just below a, just above b Number of values: Number of values: test cases: max, min, just below min, just above max test cases: max, min, just below min, just above max Output bounds should be checked Output bounds should be checked Boundaries of data structures shall be checked (e.g. arrays) Boundaries of data structures shall be checked (e.g. arrays)
31
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 31 Boundary Value Testing Example: Example: In 2001, the minimum Social Security (OASDI) deduction from any one paycheck was $0.00, and the maximum was $4,984.80 Test cases must include input data which should result in deductions of exactly $0.00 and exactly $4,984.80 Test cases must include input data which should result in deductions of exactly $0.00 and exactly $4,984.80 Also, test data that might result in deductions of less than $0.00 or more than $4,984.80 Also, test data that might result in deductions of less than $0.00 or more than $4,984.80 Equivalence classes together with boundary value analysis to test both input specifications and output specifications Equivalence classes together with boundary value analysis to test both input specifications and output specifications Small set of test data with potential of uncovering large number of faults Small set of test data with potential of uncovering large number of faults
32
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 32 Black-box testing spec The blackbox testing spec may have the following columns: Variable name, Valid equivalence class, Invalid equivalence classes, Boundary values to test Requirement You are given a VISA gift card, with a $500.00 balance. You go to a store, buy some merchandise, and the clerk enters a total amount to be deducted from your card. Testing spec The valid range is $0.00 to $500.00. Someone would say that $0.00 is an invalid sale price. For them, the smallest valid is $0.01. Out of bounds values are $-0.01 and $500.01. 501 is a common error, as is -1. Both ignore the values after the decimal point.
33
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 33 Comparison Testing Used only in situations in which the reliability of software is absolutely critical (e.g., human-rated systems) Used only in situations in which the reliability of software is absolutely critical (e.g., human-rated systems) Separate software engineering teams develop independent versions of an application using the same specification Separate software engineering teams develop independent versions of an application using the same specification Each version can be tested with the same test data to ensure that all provide identical output Each version can be tested with the same test data to ensure that all provide identical output Then all versions are executed in parallel with real-time comparison of results to ensure consistency Then all versions are executed in parallel with real-time comparison of results to ensure consistency
34
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 34 Orthogonal Array Testing Used when the number of input parameters is small and the values that each of the parameters may take are clearly bounded
35
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 35 OOT—Test Case Design Berard [BER93] proposes the following approach: 1.Each test case should be uniquely identified and should be explicitly associated with the class to be tested, 2.The purpose of the test should be stated, 3.A list of testing steps should be developed for each test and should contain [BER94]: a.a list of specified states for the object that is to be tested b.a list of messages and operations that will be exercised as a consequence of the test c.a list of exceptions that may occur as the object is tested d.a list of external conditions (i.e., changes in the environment external to the software that must exist in order to properly conduct the test) e.supplementary information that will aid in understanding or implementing the test.
36
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 36 Testing Methods Fault-based testing Fault-based testing The tester looks for plausible faults (i.e., aspects of the implementation of the system that may result in defects). To determine whether these faults exist, test cases are designed to exercise the design or code. The tester looks for plausible faults (i.e., aspects of the implementation of the system that may result in defects). To determine whether these faults exist, test cases are designed to exercise the design or code. Class Testing and the Class Hierarchy Class Testing and the Class Hierarchy Inheritance does not obviate the need for thorough testing of all derived classes. In fact, it can actually complicate the testing process. Inheritance does not obviate the need for thorough testing of all derived classes. In fact, it can actually complicate the testing process. Scenario-Based Test Design Scenario-Based Test Design Scenario-based testing concentrates on what the user does, not what the product does. This means capturing the tasks (via use-cases) that the user has to perform, then applying them and their variants as tests. Scenario-based testing concentrates on what the user does, not what the product does. This means capturing the tasks (via use-cases) that the user has to perform, then applying them and their variants as tests.
37
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 37 OOT Methods: Random Testing Random testing Random testing identify operations applicable to a class identify operations applicable to a class define constraints on their use define constraints on their use identify a minimum test sequence identify a minimum test sequence an operation sequence that defines the minimum life history of the class (object) an operation sequence that defines the minimum life history of the class (object) generate a variety of random (but valid) test sequences generate a variety of random (but valid) test sequences exercise other (more complex) class instance life histories exercise other (more complex) class instance life histories
38
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 38 OOT Methods: Partition Testing Partition Testing Partition Testing reduces the number of test cases required to test a class in much the same way as equivalence partitioning for conventional software reduces the number of test cases required to test a class in much the same way as equivalence partitioning for conventional software state-based partitioning state-based partitioning categorize and test operations based on their ability to change the state of a class categorize and test operations based on their ability to change the state of a class attribute-based partitioning attribute-based partitioning categorize and test operations based on the attributes that they use categorize and test operations based on the attributes that they use category-based partitioning category-based partitioning categorize and test operations based on the generic function each performs categorize and test operations based on the generic function each performs
39
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 39 OOT Methods: Inter-Class Testing Inter-class testing Inter-class testing For each client class, use the list of class operators to generate a series of random test sequences. The operators will send messages to other server classes. For each client class, use the list of class operators to generate a series of random test sequences. The operators will send messages to other server classes. For each message that is generated, determine the collaborator class and the corresponding operator in the server object. For each message that is generated, determine the collaborator class and the corresponding operator in the server object. For each operator in the server object (that has been invoked by messages sent from the client object), determine the messages that it transmits. For each operator in the server object (that has been invoked by messages sent from the client object), determine the messages that it transmits. For each of the messages, determine the next level of operators that are invoked and incorporate these into the test sequence For each of the messages, determine the next level of operators that are invoked and incorporate these into the test sequence
40
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 40 OOT Methods: Behavior Testing The tests to be designed should achieve all state coverage [KIR94]. That is, the operation sequences should cause the Account class to make transition through all allowable states
41
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 41 Scenario based testing Concentrates on (functional) requirements Concentrates on (functional) requirements Based on Based on use cases use cases corresponding sequence diagrams corresponding sequence diagrams Tests normal as well as exceptional behavior Tests normal as well as exceptional behavior
42
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 42 Example
43
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 43 Scenarios for ATM Example
44
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 44 Test Procedure (1) Establish testing budget Establish testing budget Rank Use Cases (& variants) according to Rank Use Cases (& variants) according to Relative frequencies Relative frequencies Criticality Criticality Allocate #test cases to each use case (and possibly variants) Allocate #test cases to each use case (and possibly variants) Develop test cases for scenarios Develop test cases for scenarios
45
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 45 Testing a use case/scenarios (1) A scenario is a path through a sequence diagram A scenario is a path through a sequence diagram There are many different scenarios associated with a sequence diagram! There are many different scenarios associated with a sequence diagram!
46
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 46 What can be wrong? Incorrect or missing output Incorrect or missing output Missing function/feature in an object Missing function/feature in an object Incorrect parameter values boundary value analysis Incorrect parameter values boundary value analysis Correct message - wrong object Correct message - wrong object Incorrect message - right object Incorrect message - right object Incorrect object state Incorrect object state Message sent to destroyed object Message sent to destroyed object Incorrect exception thrown Incorrect exception thrown Incorrect exception handling Incorrect exception handling Incorrect assumption about receiver’s class Incorrect assumption about receiver’s class Class casts Class casts
47
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 47 Testing a use case/scenarios (2) All paths in sequence diagram should be executed All paths in sequence diagram should be executed Focus on messages from the actor/UI to the system Focus on messages from the actor/UI to the system If possible: check “internal” objects If possible: check “internal” objects Extract control flow information from a sequence diagram Extract control flow information from a sequence diagram Test branches and loops Test branches and loops Test exceptions Test exceptions Consider state Consider state
48
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 48 Example: Establish Session
49
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 49 Example (cont.) Several checks are performed Several checks are performed Is the card an ATM card? Is the card an ATM card? Is the card stolen? Is the card stolen? Has the customer a valid bank account? Has the customer a valid bank account? Has the customer a valid PIN? Has the customer a valid PIN? Three chances to enter the PIN Three chances to enter the PIN Service charge if from different bank Service charge if from different bank
50
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 50 Test Procedure (2) Translate the sequence diagram into a flow graph Translate the sequence diagram into a flow graph Each message or group of consecutive messages becomes a segment (box). Each message or group of consecutive messages becomes a segment (box). A conditional action (branch, iteration) ends a segment A conditional action (branch, iteration) ends a segment Each bracketed (loop) condition becomes a decision (hexagon) Each bracketed (loop) condition becomes a decision (hexagon)
51
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 51 Establish Session
52
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 52 Path conditions Input and object state need to satisfy the path conditions Input and object state need to satisfy the path conditions Identify predicates on each path, work from first predicate and identify required input and state variable values Identify predicates on each path, work from first predicate and identify required input and state variable values Do the same for the next path conditions until the last one Do the same for the next path conditions until the last one Some paths may not be feasible Some paths may not be feasible
53
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 53 Example: Path Conditions
54
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 54 Test Procedure (3) Develop the Use Case / Class coverage matrix Develop the Use Case / Class coverage matrix Analyze matrix Analyze matrix Which classes are not covered by test cases? Which classes are not covered by test cases? Which methods of a class are not covered? Which methods of a class are not covered? Create additional test cases Create additional test cases
55
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 55 Use case / class coverage matrix
56
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 56 Test case document Usual cover information Usual cover information Use case test descriptions Use case test descriptions References References Appendices Appendices
57
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 57 Test Procedure (4) Define test case Define test case Name Name Unique number Unique number Textual description of test procedure Textual description of test procedure Based on flow graph and conditions Based on flow graph and conditions Includes expected results after each step define condition that allows to determine if the step succeeded or failed Includes expected results after each step define condition that allows to determine if the step succeeded or failed
58
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 58 Use case test descriptions For every use case/sequence diagram in the design document For every use case/sequence diagram in the design document a test case that shows that the scenarios and its variations can be executed by the system a test case that shows that the scenarios and its variations can be executed by the system describe as precondition the objects and their state that get messages from the UI describe as precondition the objects and their state that get messages from the UI As steps: list the sequence of messages that are send from the UI to other objects As steps: list the sequence of messages that are send from the UI to other objects test cases for all exceptions of the use case test cases for all exceptions of the use case
59
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 59 Example: Test case definition (1) Test “Establish session” UID: 0001 Description: Precondition: ATM is running and no sessions exist … Step 1: test “begin session” To execute: Create a session object Expected result: session object exists and is in its initial state Step 2: test “no ATM card was entered” Precondition: Card entered is no ATM card To execute: Read card Expected result: NoATMCard exception is thrown and session object was deleted
60
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 60 Example: Test case definition (2) … Step 3: test “get PIN” Precondition: Card entered is ATM card To execute (a): displayEnterPIN Expected result: “Enter PIN” is displayed To execute (b): getEntry Expected result: 4 digit entry of a stolen card To execute (c): checkCard Expected result: StolenCardException is thrown …
61
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 61 Example: Test case definition (3) … To execute (d): getEntry Expected result: 4 digit entry of invalid account To execute (e): checkCard Expected result: false To execute (g): getEntry Expected result: 4 digit entry of valid account To execute (h): checkCard Expected result: true …
62
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 62 Testing Patterns Pattern name: pair testing Abstract: A process-oriented pattern, pair testing describes a technique that is analogous to pair programming (Chapter 4) in which two testers work together to design and execute a series of tests that can be applied to unit, integration or validation testing activities. Pattern name: separate test interface Abstract: There is a need to test every class in an object-oriented system, including “internal classes” (i.e., classes that do not expose any interface outside of the component that used them). The separate test interface pattern describes how to create “a test interface that can be used to describe specific tests on classes that are visible only internally to a component.” [LAN01] Pattern name: scenario testing Abstract: Once unit and integration tests have been conducted, there is a need to determine whether the software will perform in a manner that satisfies users. The scenario testing pattern describes a technique for exercising the software from the user’s point of view. A failure at this level indicates that the software has failed to meet a user visible requirement. [KAN01]
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.