Software Testing Techniques: Finding the Defects that Matter

Paperback
from $0.00

Author: Scott Loveland

ISBN-10: 1584503467

ISBN-13: 9781584503460

Category: Quality Control & Testing - Programming

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....

Search in google:

The authors, all of whom work for the IBM mainframe development laboratory in Poughkeepsie, NY, draw upon their own experience for the illustrative examples used in this introduction to testing techniques and methods applicable to "any general-purpose software that must stand up to the rigors of industrial strength computing." Among the topics the chapters cover are the development process, the test and development divide, test plan focus areas, testing for recoverability, developing test programs, data corruption, testing tools, emulating customers for bug detection, test execution, testing with virtual computers, simulators and prototypes, and the customer's role in testing. Annotation ©2004 Book News, Inc., Portland, OR

NoticesvAcknowledgmentsxixPrefacexxiPart ITesting: Why Worry?11The Testing Challenge and Those who Take It On3Software Engineering Evolution4A Tester's True Goal6What Is a User?7Testers, What Makes Them Special?9Summary122Industrial-strength Software, It's Not a Science Project13Industrial-strength Software14Production Environments15Mission-critical Software19Case Study: A Pension Plan Management Vendor20Summary24Part IIThe Testing Ecosystem253The Development Process27Test Process Definitions28Traditional Software Development Models43Iterative Software Development Models49The "Let's Just Skip SVT" Fallacy59Summary604The Test and Development Divide61Should Developers Test Their Own Software?62Diplomacy: The Tester's Relationship with Development64Summary76Part IIIThe Best-laid Plans775Where to Start? Snooping for Information79The Importance of Knowing What You Test80Viewing All Software as a Solution to a Problem87Customer Reconnaissance87A Simple Test Preparation Tool90Don't Just Take, Give a Little92Summary936Coping with Complexity through Teaming95Complex Software Products: You Can't Know It All96Reducing Complexity through Component Spies98Sharing Expertise Across the Team104Summary1067Test Plan Focus Areas107The Test Plan Document108Unit Test Focus Areas114Function Verification Test Focus Areas115System Verification Test Focus Areas122Integration Test Focus Areas130Single-system versus Multisystem Testing131Test Plan Reviews135Summary1378Testing for Recoverability139Function Verification Test140System Verification Test144Integration Test146Case Study: Clustered System Recovery147Summary1509Planning for Trouble151Scheduling152Entry and Exit Criteria156Injecting Testability into Development Plans161Case Study: The Testability of Errors163Summary166Part IVPreparing for the Test16710The Magic of Reuse169Who Writes More Code: Development or Test?170Reuse Opportunities and Techniques170Case Study: Testing Real Memory Management174Summary17611Developing Good Test Programs177Function Verification Test Programs178System Verification Test Programs184Case Study: Task Termination Processing185Summary18812Data Corruption189Data Integrity: What Is It?190Protecting against Data Corruption191The Need for Special Testing192Data Integrity Monitors193Case Study: Memory and File Thrashers194Summary20013Tools-You Can't Build a House without Them201The Magic Tool Myth202Tool Categories203Case Study: A Homegrown Test Tool Framework208Buy versus Build215Avoid the Tool Merry-Go-Round216Summary21714Emulating Customers to Find the Bugs that Matter219Determining What Tests to Run220It's Not Just What, but How You Test227Managing the Test Environments232Summary234Part VExecuting the Test23515Test Execution237Test Execution Sequence238Artistic Testing240An Iterative Approach: Algorithm Verification Testing243Catching Problems248Problem Diagnosis250Testing the Documentation253Summary25516Testing with a Virtual Computer257Partitioning258Virtualization261Partitioning at Virtualization Combinations265Why Go Virtual?265Case Study: A Closer Look at z/VM268Summary27617Simulators and Prototypes277Simulators and Prototypes: What Are They?277The Case of the Missing Hardware278Simulation279The Perils of Simulation282Prototypes285Summary28818Managing the Test289Testing the Correct Code290Run Logs: Keeping Track of What's Going On291An End-of-Day Checklist295Guarding the Treasury: Problem Management296Getting Bugs Fixed298Removing Defects versus Meeting Schedules301Summary305Part VIThe Final Stages30719The Customer's Role in Testing309Controlled Early Introduction Programs310Preproduction Testing314Summary31920The Testing End Game321Continuous Improvement321The Final Lesson-Bugs: You'll Never Find Them All328Summary333References335Glossary339Index349