Sie sind auf Seite 1von 20

Chapter 17

Software Testing Strategies


Slide Set to accompany

Software Engineering: A Practitioners Approach, 7/e


by Roger S. Pressman
Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman

For non-profit educational use only


May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use.

SS 2011 SE-II Software Quality Assurance

Software Testing
Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.

SS 2011 SE-II Software Quality Assurance

Testing Strategy?
It includes test planning, test case design, test execution, and resultant data collection and evaluation.

SS 2011 SE-II Software Quality Assurance

Chapter Learning Objectives


      

Strategic Approach to Testing Verification and Validation Test Strategies for Conventional Software Test Strategies for Object-Oriented Software Test Strategies for WebApps Validation Testing System Testing

SS 2011 SE-II Software Quality Assurance

What Testing Shows


errors requirements conformance performance

an indication of quality

SS 2011 SE-II Software Quality Assurance

Strategic Approach to Software Testing

SS 2011 SE-II Software Quality Assurance

Strategic Approach
Generic characteristics of any Testing Strategy:  To perform effective testing, you should conduct effective technical reviews. By doing this, many errors will be eliminated before testing commences.  Testing begins at the component level and works "outward" toward the integration of the entire computerbased system.  Different testing techniques are appropriate for different software engineering approaches and at different points in time.  Testing is conducted by the developer of the software and (for large projects) an independent test group.  Testing and debugging are different activities, but debugging must be accommodated in any testing strategy.
7

SS 2011 SE-II Software Quality Assurance

Verification & Validation




Verification refers to the set of tasks that ensure that software conforms to its specification


verification involves looking for bugs in the deliverables for each phase. "Are we building the product right?"

Validation refers to a different set of tasks that ensure that the software that has been built is traceable to customer requirements.


validation involves looking for bugs in the system based on the deliverables for each phase. "Are we building the right product?
8

Software Testing is a one element of this broader topic!


SS 2011 SE-II Software Quality Assurance

The V-Model of Development

Verification and validation includes a wide array of SQA activities


SS 2011 SE-II Software Quality Assurance 9

SS 2011 SE-II Software Quality Assurance

10

Who Tests the Software?


Organizing for Software Testing

developer
Understands the system but, will test "gently" and, is driven by "delivery"

independent tester
Must learn about the system, but, will attempt to break it and, is driven by quality

SS 2011 SE-II Software Quality Assurance

11

Testing Strategy A Big Picture

SS 2011 SE-II Software Quality Assurance

12


 

We begin by testing-in-the-small and move toward testing-in-the-large For conventional software


 

The module (component) is our initial focus Integration of modules follows 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

For OO software


SS 2011 SE-II Software Quality Assurance

13

Testing Steps

SS 2011 SE-II Software Quality Assurance

14

When to Stop Testing?




???

SS 2011 SE-II Software Quality Assurance

15

Test Strategies For Conventional Software

SS 2011 SE-II Software Quality Assurance

16

Strategic Issues
      

Specify product requirements in a quantifiable manner long before testing commences. State testing objectives explicitly. Understand the users of the software and develop a profile for each user category. Build robust software that is designed to test itself. Use effective technical reviews as a filter prior to testing Conduct technical reviews to assess the test strategy and test cases themselves. Develop a continuous improvement approach for the testing process.

SS 2011 SE-II Software Quality Assurance

17

Unit Testing
module to be tested
results software engineer

test cases

SS 2011 SE-II Software Quality Assurance

18

Unit-test Considerations - I
module to be tested interface local data structures boundary conditions independent paths error handling paths

test cases
SS 2011 SE-II Software Quality Assurance 19

Unit-test Considerations - II
 

The module interface is tested to ensure that information properly flows into and out of the program unit under test Local data structures are examined to ensure that data stored temporarily maintains its integrity during all steps in an algorithm's execution. All independent paths through the control structure are exercised to ensure that all statements in a module have been executed at least once. Boundary conditions are tested to ensure that the module operates properly at boundaries established to limit or restrict processing. All error-handling paths are tested.

SS 2011 SE-II Software Quality Assurance

20

Das könnte Ihnen auch gefallen