Department of Computer Science
Illinois Institute of Technology
10 West 31 Street
Chicago, IL 60616
Library of Congress Cataloging-in-Publication Data
Practical software testing : a process-oriented approach / Ilene Burnstein. p. cm.
Includes bibliographical references and index.
ISBN 0-387-95131-8 (hc : alk. paper)
1. Computer software—Testing. I. Title.
QA76.76.T48 B87 2002
Printed on acid-free paper.
2003 Springer-Verlag New York, Inc.
All rights reserved. This work may not be translated or copied in whole or in part without the written permission of the publisher (Springer-Verlag New York, Inc., 175 Fifth Avenue, New York, NY 10010, USA), except for brief excerpts in connection with reviews or scholarly analysis. Use in connection with any form of information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed is forbidden.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identiﬁed as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
Capability Maturity Model and CMM are registered trademarks of the Software Engineering Institute and Carnegie Mellon University. Testing Maturity Model and TMM are service marks of Illinois Institute of Technology.
Printed in the United States of America.
Springer-Verlag New York Berlin Heidelberg
A member of BertelsmannSpringer Science Business Media GmbH
INTR OD UCTION TO TE STING
AS AN E NG INE E R ING ACT IV IT Y
The Evolving Profession of Software Engineering 1
The Role of Process in Software Quality 4
Testing as a Process 6
Overview of the Testing Maturity Model (TMM) 8
1.3.1 TMM Levels
List of Key Terms
TE STING F UND AME NTAL S
2.0 Introduction 19
2.1 Basic Definitions 19
Cont en t s
2.2 Software Testing Principles 26
2.3 The Tester’s Role in a Software Development Organization 34 List of Key Terms
DE F E CTS, H YPOTH E SE S, AND T ES T S
3.0 Origins of Defects 39
3.1 Defect Classes, the Defect Repository, and Test Design 43 3.1.1
Requirements and Specification Defects 44
Design Defects 46
Coding Defects 48
Testing Defects 51
3.2 Defect Examples: The Coin Problem 51
3.3 Developer/Tester Support for Developing a Defect Repository 57 List of Key Terms
STR ATE G IE S AND ME TH OD S FOR T ES T CA S E DES IGN I
Introduction to Testing Design Strategies 61
The Smart Tester 62
Test Case Design Strategies 63
Using the Black Box Approach to Test Case Design 66
Random Testing 66
Equivalence Class Partitioning 67
Boundary Value Analysis 72
An Example of the Application of Equivalence Class Partitioning and Boundary Value Analysis 73
4.8 Other Black Box Test Design Approaches 76
4.8.1 Cause-and-Effect Graphing 78
4.8.2 State Transition Testing 82
4.8.3 Error Guessing 85
C o nt e nt s
4.9 Black Box Testing and Commercial Off-the-Shelf
Components (COTS) 86
4.10 Black Box Methods and TMM Level 2 Maturity Goals 88
List of Key Terms
STR ATE G IE S AND ME TH ODS F OR T ES T CA S E DES IGN II
Using the White Box Approach to Test Design 97
Test Adequacy Criteria 98