Essential Software Testing: A Use-Case Approach, 1st Edition (Paperback) book cover

Essential Software Testing

A Use-Case Approach, 1st Edition

By Greg Fournier

Auerbach Publications

280 pages | 9 B/W Illus.

Purchasing Options:$ = USD
Paperback: 9781420089813
pub: 2008-10-01
SAVE ~$17.39
Currently out of stock
Hardback: 9781138440487
pub: 2017-11-15
SAVE ~$41.00
eBook (VitalSource) : 9780429114854
pub: 2008-10-01
from $41.98

FREE Standard Shipping!


A Practical Guide to Software Testing

Much has been written about the difficulty of software testing. Often these laments are accompanied by cautionary words about how careful one has to be to ensure testing is done properly. However, there is a dearth of resources that give practical guidance on the nuts and bolts of testing. Essential Software Testing: A Use-Case Approach describes testing methods and techniques in a common sense manner that is easy to understand, helping readers to quickly and effectively implement project-specific testing solutions.

Divided into three parts, the book first discusses ways to make testing agile, providing insight into how testing can be done efficiently in different process environments. Next, the book supplies an overview of testing concepts. Lastly, it demonstrates how to perform the actual test, detailing specific testing activities that can be used on almost any project, with specific attention given to use-case driven testing. It describes how to test using Use Cases regardless of the specific requirements of the project.

The author weaves helpful war stories throughout the text, placing the concepts in a concrete framework. This guide gives software testers a firm grasp of all testing fundamentals: how to determine what to test and how to test it, how to select proper tests to match the plan, techniques to build and trace tests, and finally, how to conduct and record tests.

Table of Contents


Why this book is important

Who this book is for

How to use this book


Testing Essentially

On Being A Tester

Testing Perceptions and Realities



Another testing approach to deal with reality

Testing In an Agile Way…. But Not Agile Testing

Being Agile and Proactive

Dealing With Governance

Basic Concepts Boot Camp

The Real Basics

Black Box Testing

White Box Testing

Unit Testing

Functional Requirements

Non-Functional Requirements

Stakeholder Needs


Testing Concepts



Varieties of Essential Requirements

Traditional Requirements

Use Cases

User Stories

Safety Critical Requirements

High Level Requirements

Low Level Requirements

Derived Requirements

Organizing Your Testing

Test Plans

Test Cases

Test Procedures

Test Scripts

Examples From My Experience We’ll Work With

Experience 1: Rinkratz

The Testing Perspective

Experience 2: The Conveyor System Project

The Testing Perspective

Experience 3: Aircraft Engine Monitoring System

The Testing Perspective

What is Essential Testing?

Testing The Right Things

Testing To The Right Level of Detail

Testing At The Right Time

Bad Tester

Essential and Efficient Testing

The Idea of Agility

Agile Methodologies

Applying Agile Methodologies to Testing

Agile Testing

How Agile Folks See Agile Testing

Essential Testing and Agile Testing

Apply Agility to Any Development Methodology

How Essential Testing Addresses Agility

Being Essentially Agile

The Agility Basics

Understand What Needs To Be Done

Know Your Environment

Communicate A Lot

Expect Change

Be A Minimalist

Be Ready To Explain Yourself

Don’t Sleepwalk

Encourage Feedback




Build Testing Agility Into Any Project

Agile Iterative

Applying Essential Testing to Agile Iterative

Heavy Iterative

Applying Essential Testing to Heavy Iterative

Heavy Waterfall

Applying Essential Testing to Heavy Waterfall

Safety Regulated Systems (for example FAA D0178b)

What Regulated Systems Are

Certifying Regulated Systems

Applying Essential Testing to Regulated Systems


Fundamentals For Testing Success

Requirements – Fundamentals For Testing


Good Requirements

What Makes Up Good Requirements

Not So Good Requirements

What To Do When Requirements Aren’t So Good

Be Proactive: Anticipate Requirements

Use Cases For Testers

Working With Use Cases

Use Case Diagrams

Use Case Specifications

Why Use Use Cases

Use Cases In Essential Testing

Perceived Problems Testing Against Use Cases

Make ‘Em If You Aint Got ‘Em

Building A Test Process That Fits

Test Process: Scoping

Stakeholder Needs and Perceptions

Big vs. Small

Test Process: Inputs and Outputs

Requirements as Test Inputs

Design Artifacts as Test Inputs


Shaping The Test Process

Understand Project Needs

Plan For The Minimum Artifact Set To Get By With

Team Dynamics


Things To Worry About

The Successful Testing Process

Essential Test Planning

Test Planning Realities

Test Planning Tasks

Planning Starts With Understanding

Understand What It Will Take To Prove The System

Understand What Input Artifacts Are Available

Understand What Can Be Done With Artifacts

After Understanding, Analyze

Bag of Tricks


Creating A Testing Solution

Bring The Pieces Together

Grouping Requirements With Use Cases

You Need Use Cases to Be Use Case Driven

The Problems With Testing Individual Requirements, and Why Use

Cases Are The Solution

Example of Grouping Traditional Requirements With Use


The Business Context

Initial System View

Understanding The Requirements

Essential Testing Analysis

Supplied Software Requirements: A Sample

Requirements Sample Considered

Getting To Use Cases

A Use Case Example

Extending Use Cases For Testing

Some Definitions


Operational Variable

System State

Nominal Tests

Off Nominal Tests

The Extended Use Case Test Design Pattern

Binder’s Premises

The Extended Use Case Solution

Adapting the pattern

The Essential Test Identification Approach

Identifying Operational Variables

Discovering Operational Variables Example Based on Open a Lane

Use Case For The Conveyor System

Identifying Tests


Organizing A Variant Table

Filling In A Variant Table


Essential Test Cases

Grouping Tests into Test Cases

An Example using the process

Selecting Tests

Determine What Tests MUST Be Run

Eliminate Unnecessary Tests

Drop Insignificant Tests

Defining Essential Test Cases

Filling In Test Cases I: The Test Definition Section

Test Case Example 1

Comments On This Example

Adding Test Design To Your Test Case

Test Environment

An Example of Test Environment

Test Participants

Procedures: How A Test Will Be Performed

Activity Diagrams For Testers

Describing the Test With An Activity Diagram

An Example Of An Activity Diagram For a Test Case

Creating Tests

Harvesting Tests

Creating Test Procedures

Use Activity Diagrams to Create Test Procedures

Test Procedure Components

The First Pass

The Final Pass

A Test Procedure Example for the Open Lane Basic Flow Positive Test

Test Case


Executing Tests

Execution Problems and Their Solution

DOA Deliveries

Changing Stakeholder Perception

Timing of Tests

Special Considerations at Test Execution Time

Executing Regression Tests

Executing Manual and Automatic Tests

Recording and Reporting Test Results

Test Recording

Test Reporting

Knowing When to Stop Testing

Essential Traceability


Tracing Artifacts


Requirements Coverage

Design Coverage

Code Coverage

Showing Coverage via Traces

Other Things To Trace

Traceability In Practice

A Requirements Perspective

The Impact of Change

Problems With Traceability - And Some Suggested


What Really Needs To Be Traced?

Who Will Do The Tracing And When

Whether/What Tools To Use In Managing Traceability


It All Comes Together Like This


First steps

Test Planning

Lay out the test process

Requirements help and Use Cases creation

Identify tests by Use Case

Low Level Requirements delivered

Requirements Baselined for 2nd time

Design tests

Develop tests

Execute Tests

Coverage analysis

Code Inspections

Create white box tests

Refactoring Tests

Final build delivered

Final coverage analysis


Follow Up



Appendix A

Additional Information for Top Notch Conveyor System

Technical explanation of a typical conveyor system

Appendix B Examples

Variant Table example for Open a Lane Basic Flow

Example of Multiple Variant Tables for a Single Use Case


Example of a Test Procedure For a Manual GUI Test

Test Environment Set Up

Appendix C Templates

A Test Case Template

A Test Procedure Template


Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Information Technology
COMPUTERS / Programming Languages / General
COMPUTERS / Software Development & Engineering / General