Contents

Introduction

Part I. The Tale

Chapter 1. Prologue

Ways to Develop Software

One Way

Another Way

The Difference

The Importance of Acceptance Tests

System and Team Introduction

The System

The People

Summary

Chapter 2. Lean and Agile

The Triad and Its Units

Post-Implementation Tests

Quick Feedback Better Than Slow Feedback

Preimplementation Tests

Lean and Agile Principles

Summary

Chapter 3. Testing Strategy

Types of Tests

Where Tests Run

Test Facets

Control and Observation Points

New Test Is a New Requirement

Summary

Chapter 4. An Introductory Acceptance Test

A Sample Business Rule

Implementing the Acceptance Tests

Test Script

Test User Interface

xUnit Test

Automated Acceptance Test

An Overall Test

Testing Process

Summary

Chapter 5. The Example Project

The Charter

Objectives

Project Acceptance Tests

High-Level Requirements

Features

Feature Acceptance Criteria

Summary

Chapter 6. The User Story Technique

Stories

Features into Stories

Roles

Role Attributes

Persona

Stories for Roles

Story Acceptance Criteria

Acceptance Tests Determine Size

Customer Terms

INVEST Criteria

Summary

Chapter 7. Collaborating on Scenarios

Use Cases from User Stories

Simple Use Case

Exceptions and Alternatives

Acceptance Tests

Documentation

Story Map

Conceptual Flow

Communication

Summary

Chapter 8. Test Anatomy

Triad Creates Tests

Test Context

Test Structure

Calculation Table

Data Table

Action Table

Tests with Example Values

Requirements Revised

Acceptance Test Revised

Test with Values in Text

When and Where Tests Are Run

Summary

Chapter 9. Scenario Tests

Tests for Exception Scenarios

Tests for Business Rules

Cross-Story Issues

Don’t Automate Everything

Multi-Level Tests

User Interface Tests

Check the Objectives

Summary

Chapter 10. User Story Breakup

Acceptance Tests Help Break Up Stories

Business Rule Tests

A Story with a Business Rule

Summary

Chapter 11. System Boundary

External Interfaces

More Details

External Interface Tests

Component Tests

Test Doubles and Mocks

What Is Real?

Story Map of Activities

Summary

Chapter 12. Development Review

The Rest of the Story

Usability Testing

Separating State from Display

Quality Attribute Tests

Workflow Tests

Deployment Plans

From Charter to Deliverable

Summary

Part II. Details

Chapter 13. Simplification by Separation

Complex Business Rules

Simplify by Separating

The Simplified Rule

Rental History

Summary

Chapter 14. Separate View from Model

Decouple the User Interface

Decoupling Simplifies Testing

Summary

Chapter 15. Events, Responses, and States

Events and an Event Table

States and State Transitions

Internal State or External Response

Transient or Persistent States

A Zen Question

Summary

Chapter 16. Developer Acceptance Tests

Component Acceptance Tests

Field Display Tests

Tabular Display Tests

Summary

Chapter 17. Decouple with Interfaces

Tests for a Service Provider

The Interface

Quality Attribute Tests

Comparing Implementations

Separating User Interface from Service

Separation of Concerns

Reusable Business Rules

Summary

Chapter 18. Entities and Relationships

Relationships

Entities and Relationships

Multiple Relationships

Alternative Representations

Summary

Chapter 19. Triads for Large Systems

Large Systems

When a Customer Test May Not Be Required

Data Conversion

Database Conversions

What If There Are No Tests?

Legacy Systems

Summary

Part III. General Issues

Chapter 20. Business Capabilities, Rules, and Value

Business Capabilities

Scenario Handling

Business Rules Exposed

A Different Business Value

Summary

Chapter 21. Test Presentation

Customer Understood Tables

Table Versus Text

Specifying Multiple Actions

Complex Data

Custom Table Forms

Summary

Chapter 22. Test Evaluation

Test Facets

Understandable to Customers

Spell Checked

Idempotent

Not Fragile

Test Sequence

Workflow Tests

Test Conditions

Separation of Concerns

Test Failure

Test Redundancy

No Implementation Issues

Points to Remember

Summary

Chapter 23. Using Tests for Other Things

Uses of Acceptance Tests

Degree of Doneness

Estimation Aid

Breaking Down Stories

Developer Stories

Tests as a Bug Report

Root Cause Analysis

Production Bugs

Regression Testing

Summary

Chapter 24. Context and Domain Language

Ubiquitous Language

Two Domains

Summary

Chapter 25. Retrospective and Perspective

Recap

The Process

Testing Layers

The Tests

Communication

What’s the Block?

Monad

Unavailable Customer

Change

Risks

Benefits

Summary

Part IV. Case Studies

Chapter 26. Case Study: Retirement Contributions

Context

The Main Course Test

Setup

Event

Expected

Implementation Issues

Separation of Concerns

Business Value Tracking

One Exception

Event

Expected

Another Exception

Event

Expected

Two Simultaneous Exceptions

Event

Expected

The Big Picture

Event Table

State Transition Table

Summary

Chapter 27. Case Study: Signal Processing

It’s Too Loud

Sound Levels

Developer Tests

Summary

Chapter 28. Case Study: A Library Print Server

The Context

A Workflow Test

Summary

Chapter 29. Case Study: Highly Available Platform

Context for Switching Servers

Test for Switching Servers

Test for Technical Rule

Summary

Part V. Technical Topics

Chapter 30. How Does What You Do Fit with ATDD?

Test Platforms

Internal Design from Tests

Device Testing

Starting with User Interfaces

Black Box Testing

Unit Testing

Summary

Chapter 31. Test Setup

A Common Setup

Some Amelioration

Test Order

Persistent Storage Issues

Summary

Chapter 32. Case Study: E-Mail Addresses

Context

Breaking Down Tests

Local-Part Validation

Domain Tests

Disallowed Domain Tests

Test to Ensure Connection

Verification Test

Summary

Part VI. Appendices

Appendix A. Other Issues

Context

Customer Examples

Fuzzy Acceptance Tests

Acceptance Test Detail

Requirements and Acceptance Tests

Documenting Requirements and Tests

Decoupling Requirements

Separation of Issues

Testing Systems with Random Events

The Power of Three

Summary

Appendix B. Estimating Business Value

Business Value

Developer Stories

Summary

Appendix C. Test Framework Examples

The Examples

Fit Implementation

Setup

Check-Out CD

Check-In

Category-Based Rental Fees

Slim—Table Style

Header

Setup

Check-Out CD

Check-In

Category-Based Rental Fees

Slim—Cucumber Style

Setup

Check-Out CD

Check-In CD

Scenario Library

Category-Based Rental Fees

Robot

Setup

Check-Out CD

Check-In CD

Category-Based Rental Fees

Cucumber

Check-Out CD

Check-In CD

Category-Based Rental Fees

Test Frameworks

Summary

Appendix D. Tables Everywhere

User Interface Tests with Tables

Requirement Tables

Another Table

Quality Attribute Requirements

Data Tables

Summary

Appendix E. Money with ATDD

The Context

The Original Tests

The Acceptance Test Approach

Summary

Appendix F. Exercises

Calculator

Create Some Tests

More Exercises

Sam’s CD Rental

Triangle

File Copying Exercise

Epilogue

References

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.202.27