6e72c0d244812e8e7c51d28cddec0dd7.ppt
- Количество слайдов: 62
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. 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
Testability n n n n Operability—it operates cleanly Observability—the results of each test case are readily observed Controllability—the degree to which testing can be automated and optimized Decomposability—testing can be targeted Simplicity—reduce complex architecture and logic to simplify tests Stability—few changes are requested during testing Understandability—of the design 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
What is a “Good” Test? n n A good test has a high probability of finding an error A good test is not redundant. A good test should be “best of breed” A good test should be neither too simple nor too complex 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
Test Case Design "Bugs lurk in corners and congregate at boundaries. . . " Boris Beizer OBJECTIVE to uncover errors CRITERIA in a complete manner CONSTRAINT with a minimum of effort and time 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
Exhaustive Testing loop < 20 X 14 There are 10 possible paths! If we execute one test per millisecond, it would take 3, 170 years to test this program!! 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
Selective Testing Selected path loop < 20 X 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
Software Testing black-box methods white-box methods Methods Strategies 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
White-Box Testing . . . our goal is to ensure that all statements and conditions have been executed at least once. . . 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
Why Cover? logic errors and incorrect assumptions are inversely proportional to a path's execution probability we often believe 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 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
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 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
Cyclomatic Complexity A number of industry studies have indicated that the higher V(G), the higher the probability or errors. modules V(G) modules in this range are more error prone 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
Basis Path Testing Next, we derive the independent paths: 1 2 3 4 5 7 8 6 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. 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
Flow Graph: Binary search n n n V(G) = E – N + 2 = 11 – 9 + 2 = 4 #Paths = 4 Test cases should be derived so that all of these paths are executed n n 1, 2, 3, 8, 9 1, 2, 3, 4, 6, 7, 2 1, 2, 3, 4, 5, 7, 2 1, 2, 3, 4, 6, 7, 2, 8, 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 13
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 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
Graph Matrices n n n 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. By adding a link weight to each matrix entry, the graph matrix can become a powerful tool for evaluating program control structure during testing 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 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
Control Structure Testing n n 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 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
Loop Testing Simple loop Nested Loops Concatenated Loops Unstructured Loops 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: Simple Loops Minimum conditions—Simple Loops Simple loop 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 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: 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. 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: Concatenated Loops If the loops are independent of one another then treat each as a simple loop else* treat as nested loops endif* for example, the final loop counter value of loop 1 is used to initialize loop 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 21
Black-Box Testing requirements output input events 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 n n n n How is functional validity tested? How is system behavior and performance tested? What classes of input will make good test cases? Is the system particularly sensitive to certain input values? How are the boundaries of a data class isolated? What data rates and data volume can the system tolerate? What effect will specific combinations of data have on system operation? 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
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. 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
Equivalence Partitioning user queries mouse picks FK input output formats prompts data 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
Sample Equivalence Classes Valid data user supplied commands responses to system prompts file names computational data physical parameters bounding values initiation values output data formatting responses to error messages graphical data (e. g. , mouse picks) Invalid data outside bounds of the program physically impossible data proper value supplied in wrong place 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
Equivalence partitioning n Partition system inputs and outputs into ‘equivalence sets’ n n If input is a 5 -digit integer between 10, 000 and 99, 999, equivalence partitions are <10, 000, 10, 000 -99, 999 and > 10, 000 Choose test cases at the boundary of these sets n 00000, 09999, 10000, 99999, 10001 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 partitions 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
Boundary Value Analysis user queries mouse picks FK input output formats prompts input domain data output domain 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 Testing n Range a. . b n n Number of values: n n n test cases: a, b, just below a, just above b test cases: max, min, just below min, just above max Output bounds should be checked Boundaries of data structures shall be checked (e. g. arrays) 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 n Example: In 2001, the minimum Social Security (OASDI) deduction from any one paycheck was $0. 00, and the maximum was $4, 984. 80 n Test cases must include input data which should result in deductions of exactly $0. 00 and exactly $4, 984. 80 n Also, test data that might result in deductions of less than $0. 00 or more than $4, 984. 80 n Equivalence classes together with boundary value analysis to test both input specifications and output specifications n Small set of test data with potential of uncovering large number of faults 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
Black-box testing spec n The blackbox testing spec may have the following columns: n 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. • 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. 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
Comparison Testing n Used only in situations in which the reliability of software is absolutely critical (e. g. , human-rated systems) n n n 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 Then all versions are executed in parallel with real-time comparison of results to ensure consistency 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
Orthogonal Array Testing n Used when the number of input parameters is small and the values that each of the parameters may take are clearly bounded 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
OOT—Test Case Design Berard [BER 93] 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 [BER 94]: 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. 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
Testing Methods n Fault-based testing n n Class Testing and the Class Hierarchy n n 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. 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 n 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. 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
OOT Methods: Random Testing n Random testing n n n identify operations applicable to a class define constraints on their use identify a minimum test sequence n n an operation sequence that defines the minimum life history of the class (object) generate a variety of random (but valid) test sequences n exercise other (more complex) class instance life histories 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: Partition Testing n n 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 n n attribute-based partitioning n n categorize and test operations based on their ability to change the state of a class categorize and test operations based on the attributes that they use category-based partitioning n categorize and test operations based on the generic function each performs 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: Inter-Class Testing n Inter-class testing n n 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 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 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: Behavior Testing The tests to be designed should achieve all state coverage [KIR 94]. That is, the operation sequences should cause the Account class to make transition through allowable states 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
Scenario based testing n n Concentrates on (functional) requirements Based on n use cases corresponding sequence diagrams Tests normal as well as exceptional behavior 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
Example 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
Scenarios for ATM Example 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
Test Procedure (1) n n Establish testing budget Rank Use Cases (& variants) according to n Relative frequencies n Criticality Allocate #test cases to each use case (and possibly variants) Develop test cases for scenarios 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
Testing a use case/scenarios (1) n n A scenario is a path through a sequence diagram There are many different scenarios associated with a sequence diagram! 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
What can be wrong? n n n n n Incorrect or missing output Missing function/feature in an object Incorrect parameter values boundary value analysis Correct message - wrong object Incorrect message - right object Incorrect object state Message sent to destroyed object Incorrect exception thrown Incorrect exception handling Incorrect assumption about receiver’s class n Class casts 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
Testing a use case/scenarios (2) n All paths in sequence diagram should be executed n n n Focus on messages from the actor/UI to the system If possible: check “internal” objects Extract control flow information from a sequence diagram n n n Test branches and loops Test exceptions Consider state 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
Example: Establish Session 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 (cont. ) n Several checks are performed n n n Is the card an ATM card? Is the card stolen? Has the customer a valid bank account? Has the customer a valid PIN? Three chances to enter the PIN Service charge if from different bank 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
Test Procedure (2) n Translate the sequence diagram into a flow graph n n n Each message or group of consecutive messages becomes a segment (box). A conditional action (branch, iteration) ends a segment Each bracketed (loop) condition becomes a decision (hexagon) 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
Establish Session 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
Path conditions n n 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 Do the same for the next path conditions until the last one Some paths may not be feasible 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
Example: Path Conditions 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
Test Procedure (3) n n Develop the Use Case / Class coverage matrix Analyze matrix n n n Which classes are not covered by test cases? Which methods of a class are not covered? Create additional test cases 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
Use case / class coverage matrix 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
Test case document n n Usual cover information Use case test descriptions References Appendices 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 Procedure (4) n Define test case n n n Name Unique number Textual description of test procedure n Based on flow graph and conditions n Includes expected results after each step define condition that allows to determine if the step succeeded or failed 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
Use case test descriptions n For every use case/sequence diagram in the design document n n a test case that shows that the scenarios and its variations can be executed by the system n describe as precondition the objects and their state that get messages from the UI n 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 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
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: No. ATMCard exception is thrown and session object was deleted 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 (2) … Step 3: test “get PIN” Precondition: Card entered is ATM card To execute (a): display. Enter. PIN Expected result: “Enter PIN” is displayed To execute (b): get. Entry Expected result: 4 digit entry of a stolen card To execute (c): check. Card Expected result: Stolen. Card. Exception is thrown … 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 (3) … To execute (d): get. Entry Expected result: 4 digit entry of invalid account To execute (e): check. Card Expected result: false To execute (g): get. Entry Expected result: 4 digit entry of valid account To execute (h): check. Card Expected result: true … 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
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. ” [LAN 01] 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. [KAN 01] 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


