Download presentation
Presentation is loading. Please wait.
Published byJewel Park Modified over 9 years ago
1
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 13a: Software Testing Strategies Software Engineering: A Practitioner’s Approach, 6/e Chapter 13a: Software Testing Strategies 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
2 Software Testing Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.
3
3 What Testing Shows errors requirements conformance performance an indication of quality
4
4 Who Tests the Software? developer independent tester Understands the system but, will test "gently" and, is driven by "delivery" Must learn about the system, but, will attempt to break it and, is driven by quality
5
5 Testing Strategy unit test integrationtest validationtest systemtest
6
6 Testing Strategy We begin by ‘testing-in-the-small’ and move toward ‘testing-in-the-large’ We begin by ‘testing-in-the-small’ and move toward ‘testing-in-the-large’ For conventional software For conventional software The module (component) is our initial focus The module (component) is our initial focus Integration of modules follows Integration of modules follows For OO software For OO software our focus when “testing in the small” changes from an individual module (the conventional view) to an OO class that encompasses attributes and operations and implies communication and collaboration our focus when “testing in the small” changes from an individual module (the conventional view) to an OO class that encompasses attributes and operations and implies communication and collaboration
7
7 Strategic Issues State testing objectives explicitly. State testing objectives explicitly. Understand the users of the software and develop a profile for each user category. Understand the users of the software and develop a profile for each user category. Develop a testing plan that emphasizes “rapid cycle testing.” Develop a testing plan that emphasizes “rapid cycle testing.” Build “robust” software that is designed to test itself Build “robust” software that is designed to test itself Use effective formal technical reviews as a filter prior to testing Use effective formal technical reviews as a filter prior to testing Conduct formal technical reviews to assess the test strategy and test cases themselves. Conduct formal technical reviews to assess the test strategy and test cases themselves. Develop a continuous improvement approach for the testing process. Develop a continuous improvement approach for the testing process.
8
8 Unit Testing module to be tested test cases results softwareengineer
9
9 Unit Testing interface local data structures boundary conditions independent paths error handling paths module to be tested test cases
10
10 Unit Test Environment Module stub stub driver RESULTS interface local data structures boundary conditions independent paths error handling paths test cases
11
11 Integration Testing Strategies Options: the “big bang” approachthe “big bang” approach an incremental construction strategyan incremental construction strategy
12
12 Top Down Integration top module is tested with stubs stubs are replaced one at a time, "depth first" as new modules are integrated, some subset of tests is re-run A B C DE FG
13
13 Bottom-Up Integration drivers are replaced one at a time, "depth first" worker modules are grouped into builds and integrated A B C DE FG cluster
14
14 Sandwich Testing Top modules are tested with stubs Worker modules are grouped into builds and integrated A B C DE FG cluster
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.