Software Testing Techniques: Finding the Defects that Matter

Software Testing Techniques: Finding the Defects that Matter

by Scott Loveland
     
 

ISBN-10: 1584503467

ISBN-13: 9781584503460

Pub. Date: 10/14/2004

Publisher: Cengage Learning

Reliability and continuous availability have become crucial for computer software in the information economy. Well-publicized failures from both industry and government have underscored the need for mission-critical software to be thoroughly tested before being released into the marketplace. When it comes to industrial-strength reliability, no computer system is

…  See more details below

Overview

Reliability and continuous availability have become crucial for computer software in the information economy. Well-publicized failures from both industry and government have underscored the need for mission-critical software to be thoroughly tested before being released into the marketplace. When it comes to industrial-strength reliability, no computer system is more renowned than the mainframe. But for years the actual approaches used to test mainframe software have been kept under wraps. What techniques are used? How do the teams in mainframe development labs test their systems to ensure they will deliver such extreme levels of robustness? How can these lessons be applied to other software projects? Software Testing Techniques: Finding the Defects that Matter answers these questions and provides practical testing techniques for achieving robust reliability with any large-scale software project. Written in a friendly, accessible style, the book highlights areas such as devising attacks to validate data integrity, wreaking havoc to ensure recoverability, exploiting virtualized environments to improve test efficiency, the tug of war between finding defects and meeting schedules, and approaches for emulating customer environments to find the most critical defects. Focusing on real-life techniques illustrated through examples and case studies gleaned from the authors' experiences with large server testing and operation, software engineers will discover tried and true techniques that are used for testing multimillion-dollar commercial software products.

Read More

Product Details

ISBN-13:
9781584503460
Publisher:
Cengage Learning
Publication date:
10/14/2004
Series:
Charles River Media Programming Series
Edition description:
New Edition
Pages:
362
Product dimensions:
7.36(w) x 9.22(h) x 1.05(d)

Table of Contents

Noticesv
Acknowledgmentsxix
Prefacexxi
Part ITesting: Why Worry?1
1The Testing Challenge and Those who Take It On3
Software Engineering Evolution4
A Tester's True Goal6
What Is a User?7
Testers, What Makes Them Special?9
Summary12
2Industrial-strength Software, It's Not a Science Project13
Industrial-strength Software14
Production Environments15
Mission-critical Software19
Case Study: A Pension Plan Management Vendor20
Summary24
Part IIThe Testing Ecosystem25
3The Development Process27
Test Process Definitions28
Traditional Software Development Models43
Iterative Software Development Models49
The "Let's Just Skip SVT" Fallacy59
Summary60
4The Test and Development Divide61
Should Developers Test Their Own Software?62
Diplomacy: The Tester's Relationship with Development64
Summary76
Part IIIThe Best-laid Plans77
5Where to Start? Snooping for Information79
The Importance of Knowing What You Test80
Viewing All Software as a Solution to a Problem87
Customer Reconnaissance87
A Simple Test Preparation Tool90
Don't Just Take, Give a Little92
Summary93
6Coping with Complexity through Teaming95
Complex Software Products: You Can't Know It All96
Reducing Complexity through Component Spies98
Sharing Expertise Across the Team104
Summary106
7Test Plan Focus Areas107
The Test Plan Document108
Unit Test Focus Areas114
Function Verification Test Focus Areas115
System Verification Test Focus Areas122
Integration Test Focus Areas130
Single-system versus Multisystem Testing131
Test Plan Reviews135
Summary137
8Testing for Recoverability139
Function Verification Test140
System Verification Test144
Integration Test146
Case Study: Clustered System Recovery147
Summary150
9Planning for Trouble151
Scheduling152
Entry and Exit Criteria156
Injecting Testability into Development Plans161
Case Study: The Testability of Errors163
Summary166
Part IVPreparing for the Test167
10The Magic of Reuse169
Who Writes More Code: Development or Test?170
Reuse Opportunities and Techniques170
Case Study: Testing Real Memory Management174
Summary176
11Developing Good Test Programs177
Function Verification Test Programs178
System Verification Test Programs184
Case Study: Task Termination Processing185
Summary188
12Data Corruption189
Data Integrity: What Is It?190
Protecting against Data Corruption191
The Need for Special Testing192
Data Integrity Monitors193
Case Study: Memory and File Thrashers194
Summary200
13Tools-You Can't Build a House without Them201
The Magic Tool Myth202
Tool Categories203
Case Study: A Homegrown Test Tool Framework208
Buy versus Build215
Avoid the Tool Merry-Go-Round216
Summary217
14Emulating Customers to Find the Bugs that Matter219
Determining What Tests to Run220
It's Not Just What, but How You Test227
Managing the Test Environments232
Summary234
Part VExecuting the Test235
15Test Execution237
Test Execution Sequence238
Artistic Testing240
An Iterative Approach: Algorithm Verification Testing243
Catching Problems248
Problem Diagnosis250
Testing the Documentation253
Summary255
16Testing with a Virtual Computer257
Partitioning258
Virtualization261
Partitioning at Virtualization Combinations265
Why Go Virtual?265
Case Study: A Closer Look at z/VM268
Summary276
17Simulators and Prototypes277
Simulators and Prototypes: What Are They?277
The Case of the Missing Hardware278
Simulation279
The Perils of Simulation282
Prototypes285
Summary288
18Managing the Test289
Testing the Correct Code290
Run Logs: Keeping Track of What's Going On291
An End-of-Day Checklist295
Guarding the Treasury: Problem Management296
Getting Bugs Fixed298
Removing Defects versus Meeting Schedules301
Summary305
Part VIThe Final Stages307
19The Customer's Role in Testing309
Controlled Early Introduction Programs310
Preproduction Testing314
Summary319
20The Testing End Game321
Continuous Improvement321
The Final Lesson-Bugs: You'll Never Find Them All328
Summary333
References335
Glossary339
Index349

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >