Software Testing
800 East 96th Street, Indianapolis, Indiana 46240
,Software Testing Publisher
Paul Boger
Copyright © 2006 by Sams Publishing
Acquisitions Editor
All rights reserved. No part of this book shall be reproduced, stored
Neil Rowe
in a retrieval system, or transmitted by any means, electronic,
mechanical, photocopying, recording, or otherwise, without
Development Editor
written permission from the publisher. No patent liability is
Songlin Qiu
assumed with respect to the use of the information contained
herein. Although every precaution has been taken in the prepara- Managing Editor
tion of this book, the publisher and author assume no responsibil- Charlotte Clapp
ity for errors or omissions. Nor is any liability assumed for damages
resulting from the use of the information contained herein. Project Editor
George E. Nedeff
International Standard Book Number: 0-672-32798-8
Indexer
Library of Congress Catalog Card Number: 2005927095
Lisa Wilson
Printed in the United States of America
Proofreader
First Printing: July 2005 Elizabeth Scott
08 07 06 05 4 3 2 1 Technical Editor
Danny Faught
Trademarks Publishing Coordinator
All terms mentioned in this book that are known to be trademarks Cindy Teeters
or service marks have been appropriately capitalized. Sams
Publishing cannot attest to the accuracy of this information. Use of Book Designer
a term in this book should not be regarded as affecting the validity Gary Adair
of any trademark or service mark.
Warning and Disclaimer
Every effort has been made to make this book as complete and as
accurate as possible, but no warranty or fitness is implied. The
information provided is on an “as is” basis.
Bulk Sales
Sams Publishing offers excellent discounts on this book when
ordered in quantity for bulk purchases or special sales. For more
information, please contact
U.S. Corporate and Government Sales
1-800-382-3419
For sales outside of the U.S., please contact
International Sales
, Contents at a Glance
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Part I The Big Picture
1 Software Testing Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 The Software Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3 The Realities of Software Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Part II Testing Fundamentals
4 Examining the Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5 Testing the Software with Blinders On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6 Examining the Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7 Testing the Software with X-Ray Glasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Part III Applying Your Testing Skills
8 Configuration Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
9 Compatibility Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
10 Foreign-Language Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
11 Usability Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
12 Testing the Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
13 Testing for Software Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
14 Website Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Part IV Supplementing Your Testing
15 Automated Testing and Test Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
16 Bug Bashes and Beta Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Part V Working with Test Documentation
17 Planning Your Test Effort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
18 Writing and Tracking Test Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
19 Reporting What You Find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
20 Measuring Your Success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313