Skip to Content

Software Testing

A Craftsman's Approach, Second Edition

By Paul C. Jorgensen

Published June 26th 2002 by CRC Press – 359 pages

Purchasing Options:

  • Hardback:
    978-0-8493-0809-3
    Out-of-print

Description

The software development world has changed significantly in the past five years. Noteworthy among its many changes is the emergence of the "Unified Modeling Language" (UML) as an industry standard. While thousands of software computer professionals and students continue to rely upon the bestselling first edition of Software Testing, the time has come to bring it up to date.

Thoroughly revised, the second edition of Software Testing: A Craftsman's Approach reflects the recent growth and changes in software standards and development. Outdated material has been deleted and new topics, figures, case studies now complement its solid, accessible treatment of the mathematics and techniques of software testing. Foremost among this edition's refinements is the definition of a generalized pseudocode that replaces the outdated Pascal code used in the examples. The text is now independent of any particular programming language. The author has also added five chapters on object-oriented testing, incorporated object-oriented versions of two earlier examples, and used them in the chapter on object-oriented testing, which he completely revised with regard to UML. In addition, GUI testing receives full treatment.

The new edition of Software Testing provides a comprehensive synthesis of the fundamentals, approaches, and methods that form the basis of the craft. Mastering its contents will allow practitioners to make well-informed choices, develop creative solutions, and ultimately derive the sense of pride and pleasure that a true craftsperson realizes from a job well done.

Reviews

"Overall, this book is well written and illustrated, but requires effort to get through. This isn't a criticism of the author, who did an outstanding job of conveying information and clearly explaining complex concepts and topics, but reflects the depth of the material. In my opinion a copy of this book should be among the top five in any serious software test professional's library. "

- Mike Tarrani, Amazon.com Top 50 Reviewer, Tustin, California

Contents

A MATHEMATICAL CONTEXT

A PERSPECTIVE ON TESTING

Basic Definitions

Test Cases

Insights from a Venn Diagram

Identifying Test Cases

Error and Fault Taxonomies

Levels of Testing

EXAMPLES

Generalized Pseudocode

The Triangle Problem

The NextDate Function

The Commission Problem

The SATM System

The Currency Converter

Saturn Windshield Wiper Controller

DISCRETE MATH FOR TESTERS

Set Theory

Functions

Relations

Propositional Logic

Probability Theory

GRAPH THEORY FOR TESTERS

Graphs

Directed Graphs

Graphs for Testing

FUNCTIONAL TESTING

BOUNDARY VALUE TESTING

Boundary Value Analysis

Robustness Testing

Worst-Case Testing

Special Value Testing

Examples

Random Testing

Guidelines for Boundary Value Testing

EQUIVALENCE CLASS TESTING

Equivalence Classes

Equivalence Class Test Cases for the Triangle Problem

Equivalence Class Test Cases for the NextDate Function

Equivalence Class Test Cases for the Commission Problem

Guidelines and Observations

DECISION TABLE-BASED TESTING

Decision Tables

Text Cases for the Triangle Problem

Text Cases for the NextDate Problem

Text Cases for the Commission Problem

Guidelines and Observations

RETROSPECTIVE ON FUNCTIONAL TESTING

Testing Effort

Testing Efficiency

Testing Effectiveness

Guidelines

Case Study

STRUCTURAL TESTING

PATH TESTING

DD-Paths

Test Coverage Metrics

Basis Path Testing

Guidelines and Observations

DATA FLOW TESTING

Define/Use Testing

Slice-Based Testing

Guidelines and Observations

RETROSPECTIVE ON STRUCTURAL TESTING

Gaps and Redundancies

Metrics for Method Evaluation

Case Study Revisited

INTEGRATION AND SYSTEM TESTING

LEVELS OF TESTING

Traditional View of Testing Levels

Alternative Life Cycle Models

The SATM System

Separating Integration and System Testing

INTEGRATION TESTING

A Closer Look at the SATM System

Decomposition-Based Integration

Call Graph-Based Integration

Path-Based Integration

Case Study

SYSTEM TESTING

Threads

Basis Concepts for Requirements Specification

Finding Threads

Structural Strategies for Thread Testing

Functional Strategies for Thread Testing

SATM Test Threads

System Testing Guides

INTERACTION TESTING

Context of Interaction

A Taxonomy of Interactions

Interaction, Composition, and Determinism

Client-Server Testing

OBJECT-ORIENTED TESTING

ISSUES IN OBJECT-ORIENTED TESTING

Units for Object-Oriented Testing

Implications of Composition and Encapsulation

Implications of Inheritance

Implications of Polymorphism

Levels of Object-Oriented Testing

GUI Testing

Data Flow Testing for Object-Oriented Software

Examples for Part V

CLASS TESTING

Methods as Units

Classes as Units

OBJECT-ORIENTED INTEGRATION TESTING

UML Support for Integration Testing

MM-Paths for Object-Oriented Software

A Framework for Object-Oriented Data Flow Integration Testing

GUI TESTING

The Currency Conversion Program

Unit Testing for the Currency Conversion Program

Integration Testing for the Currency Conversion Program

System Testing for the Currency Conversion Program

OBJECT-ORIENTED SYSTEM TESTING

Currency Converter UML Description

UML-Based System Testing

StateChart-Based System Testing

INDEX

Most chapters include exercises and references

Name: Software Testing: A Craftsman's Approach, Second Edition (eBook)CRC Press 
Description: By Paul C. Jorgensen. The software development world has changed significantly in the past five years. Noteworthy among its many changes is the emergence of the "Unified Modeling Language" (UML) as an industry standard. While thousands of software computer...
Categories: Computer Science (General), Software Engineering & Systems Development