Gift Guide

Lean-Agile Acceptance Test-Driven-Development [NOOK Book]


Within the framework of Acceptance Test-Driven-Development (ATDD), customers, developers, and testers collaborate to create acceptance tests that thoroughly describe how software should work from the customer’s viewpoint. By tightening the links between customers and agile teams, ATDD can significantly improve both software quality and developer productivity.

This is the first start-to-finish, real-world guide to ATDD for every agile project participant. Leading agile consultant...

See more details below
Lean-Agile Acceptance Test-Driven-Development

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac

Want a NOOK? Explore Now

NOOK Book (eBook)
$25.59 price
(Save 20%)$31.99 List Price


Within the framework of Acceptance Test-Driven-Development (ATDD), customers, developers, and testers collaborate to create acceptance tests that thoroughly describe how software should work from the customer’s viewpoint. By tightening the links between customers and agile teams, ATDD can significantly improve both software quality and developer productivity.

This is the first start-to-finish, real-world guide to ATDD for every agile project participant. Leading agile consultant Ken Pugh begins with a dialogue among a customer, developer, and tester, explaining the “what, why, where, when, and how” of ATDD and illuminating the experience of participating in it.

Next, Pugh presents a practical, complete reference to each facet of ATDD, from creating simple tests to evaluating their results. He concludes with five diverse case studies, each identifying a realistic set of problems and challenges with proven solutions.

Coverage includes

• How to develop software with fully testable requirements

• How to simplify and componentize tests and use them to identify missing logic

• How to test user interfaces, service implementations, and other tricky elements of a software system

• How to identify requirements that are best handled outside software

• How to present test results, evaluate them, and use them to assess a project’s overall progress

• How to build acceptance tests that are mutually beneficial for development organizations and customers

• How to scale ATDD to large projects

Read More Show Less

Product Details

  • ISBN-13: 9780321719447
  • Publisher: Pearson Education
  • Publication date: 1/5/2011
  • Series: Net Objectives Lean-Agile Series
  • Sold by: Barnes & Noble
  • Format: eBook
  • Edition number: 1
  • Pages: 240
  • Sales rank: 1,177,892
  • File size: 12 MB
  • Note: This product may take a few minutes to download.

Meet the Author

Kenneth Pugh has over two-fifths of a century of software experience. Previously a principal at Pugh-Killeen Associates, he is now a fellow consultant for Net Objectives. He has developed software applications ranging from radar tracking to financial analysis. Responsibilities have included everything from gathering requirements to testing. After the start of the new millennium, he has worked with teams to create software more effectively with lean and agile processes. He has spoken at numerous national conferences; consulted and taught all over the world; and testified on technology topics. This is his seventh book. In 2006, his book Prefactoring won the Jolt Award [DrDobbs01]. In his spare time, he snowboards, windsurfs, and backpacks. Between 1997 and 2003, he completed the Appalachian Trail. The cover photograph of Mount Katahdin, the northern end of the trail, was taken by the author from Abol Bridge in Maine.

Read More Show Less

Table of Contents

Introduction 1

Part I: The Tale

Chapter 1: Prologue 9

Ways to Develop Software 9

One Way 9

Another Way 9

The Difference 10

The Importance of Acceptance Tests 10

System and Team Introduction 12

The System 12

The People 13

Summary 14

Chapter 2: Lean and Agile 15

The Triad and Its Units 15

Post-Implementation Tests 17

Quick Feedback Better Than Slow Feedback 18

Preimplementation Tests 19

Lean and Agile Principles 20

Summary 21

Chapter 3: Testing Strategy 23

Types of Tests 23

Where Tests Run 25

Test Facets 26

Control and Observation Points 27

New Test Is a New Requirement 27

Summary 28

Chapter 4: An Introductory Acceptance Test 29

A Sample Business Rule 29

Implementing the Acceptance Tests 31

Test Script 32

Test User Interface 33

xUnit Test 34

Automated Acceptance Test 35

An Overall Test 36

Testing Process 37

Summary 37

Chapter 5: The Example Project 39

The Charter 39

Objectives 40

Project Acceptance Tests 41

High-Level Requirements 43

Features 43

Feature Acceptance Criteria 45

Summary 46

Chapter 6: The User Story Technique 47

Stories 47

Features into Stories 48

Roles 49

Role Attributes 49

Persona 50

Stories for Roles 51

Story Acceptance Criteria 52

Acceptance Tests Determine Size 53

Customer Terms 54

INVEST Criteria 55

Summary 56

Chapter 7: Collaborating on Scenarios 57

Use Cases from User Stories 57

Simple Use Case 59

Exceptions and Alternatives 60

Acceptance Tests 63

Documentation 63

Story Map 63

Conceptual Flow 65

Communication 66

Summary 68

Chapter 8: Test Anatomy 69

Triad Creates Tests 69

Test Context 70

Test Structure 71

Calculation Table 73

Data Table 74

Action Table 75

Tests with Example Values 76

Requirements Revised 77

Acceptance Test Revised 78

Test with Values in Text 79

When and Where Tests Are Run 80

Summary 81

Chapter 9: Scenario Tests 83

Tests for Exception Scenarios 83

Tests for Business Rules 87

Cross-Story Issues 88

Don’t Automate Everything 89

Multi-Level Tests 90

User Interface Tests 93

Check the Objectives 93

Summary 94

Chapter 10: User Story Breakup 95

Acceptance Tests Help Break Up Stories 95

Business Rule Tests 96

A Story with a Business Rule 100

Summary 101

Chapter 11: System Boundary 103

External Interfaces 103

More Details 107

External Interface Tests 108

Component Tests 108

Test Doubles and Mocks 111

What Is Real? 112

Story Map of Activities 113

Summary 114

Chapter 12: Development Review 115

The Rest of the Story 115

Usability Testing 116

Separating State from Display 116

Quality Attribute Tests 118

Workflow Tests 119

Deployment Plans 120

From Charter to Deliverable 120

Summary 121

Part II: Details

Chapter 13: Simplification by Separation 125

Complex Business Rules 125

Simplify by Separating 126

The Simplified Rule 128

Rental History 128

Summary 130

Chapter 14: Separate View from Model 131

Decouple the User Interface 131

Decoupling Simplifies Testing 136

Summary 136

Chapter 15: Events, Responses, and States 137

Events and an Event Table 137

States and State Transitions 139

Internal State or External Response 142

Transient or Persistent States 144

A Zen Question 144

Summary 144

Chapter 16: Developer Acceptance Tests 145

Component Acceptance Tests 145

Field Display Tests 145

Tabular Display Tests 147

Summary 151

Chapter 17: Decouple with Interfaces 153

Tests for a Service Provider 153

The Interface 153

Quality Attribute Tests 155

Comparing Implementations 155

Separating User Interface from Service 157

Separation of Concerns 158

Reusable Business Rules 158

Summary 159

Chapter 18: Entities and Relationships 161

Relationships 161

Entities and Relationships 161

Multiple Relationships 163

Alternative Representations 166

Summary 166

Chapter 19: Triads for Large Systems 167

Large Systems 167

When a Customer Test May Not Be Required 169

Data Conversion 170

Database Conversions 170

What If There Are No Tests? 170

Legacy Systems 172

Summary 173

Part III : General Issues

Chapter 20: Business Capabilities, Rules, and Value 177

Business Capabilities 177

Scenario Handling 178

Business Rules Exposed 179

A Different Business Value 179

Summary 181

Chapter 21: Test Presentation 183

Customer Understood Tables 183

Table Versus Text 185

Specifying Multiple Actions 185

Complex Data 187

Custom Table Forms 188

Summary 189

Chapter 22: Test Evaluation 191

Test Facets 191

Understandable to Customers 191

Spell Checked 192

Idempotent 192

Not Fragile 192

Test Sequence 193

Workflow Tests 193

Test Conditions 194

Separation of Concerns 194

Test Failure 195

Test Redundancy 196

No Implementation Issues 197

Points to Remember 197

Summary 198

Chapter 23: Using Tests for Other Things 199

Uses of Acceptance Tests 199

Degree of Doneness 199

Estimation Aid 200

Breaking Down Stories 200

Developer Stories 200

Tests as a Bug Report 201

Root Cause Analysis 201

Production Bugs 202

Regression Testing 202

Summary 202

Chapter 24: Context and Domain Language 205

Ubiquitous Language 205

Two Domains 207

Summary 208

Chapter 25: Retrospective and Perspective 209

Recap 209

The Process 210

Testing Layers 210

The Tests 211

Communication 212

What’s the Block? 212

Monad 212

Unavailable Customer 213

Change 213

Risks 214

Benefits 214

Summary 215

Part IV Case Studies

Chapter 26: Case Study: Retirement Contributions 219

Context 219

The Main Course Test 220

Setup 220

Event 221

Expected 221

Implementation Issues 222

Separation of Concerns 222

Business Value Tracking 223

One Exception 223

Event 223

Expected 224

Another Exception 225

Event 225

Expected 225

Two Simultaneous Exceptions 226

Event 226

Expected 227

The Big Picture 227

Event Table 228

State Transition Table 228

Summary 230

Chapter 27: Case Study: Signal Processing 231

It’s Too Loud 231

Sound Levels 231

Developer Tests 233

Summary 233

Chapter 28: Case Study: A Library Print Server 235

The Context 235

A Workflow Test 236

Summary 241

Chapter 29: Case Study: Highly Available Platform 243

Context for Switching Servers 243

Test for Switching Servers 244

Test for Technical Rule 246

Summary 248

Part V : Technical Topics

Chapter 30: How Does What You Do Fit with ATDD? 251

Test Platforms 251

Internal Design from Tests 252

Device Testing 254

Starting with User Interfaces 255

Black Box Testing 255

Unit Testing 256

Summary 256

Chapter 31: Test Setup 257

A Common Setup 257

Some Amelioration 259

Test Order 260

Persistent Storage Issues 260

Summary 261

Chapter 32: Case Study: E-Mail Addresses 263

Context 263

Breaking Down Tests 264

Local-Part Validation 265

Domain Tests 266

Disallowed Domain Tests 268

Test to Ensure Connection 269

Verification Test 269

Summary 270

Part VI : Appendices

Appendix A: Other Issues 273

Context 273

Customer Examples 274

Fuzzy Acceptance Tests 274

Acceptance Test Detail 275

Requirements and Acceptance Tests 275

Documenting Requirements and Tests 276

Decoupling Requirements 276

Separation of Issues 276

Testing Systems with Random Events 277

The Power of Three 277

Summary 278

Appendix B: Estimating Business Value 279

Business Value 279

Developer Stories 281

Summary 282

Appendix C: Test Framework Examples 283

The Examples 283

Fit Implementation 284

Setup 284

Check-Out CD 284

Check-In 286

Category-Based Rental Fees 287

Slim–Table Style 288

Header 288

Setup 288

Check-Out CD 288

Check-In 290

Category-Based Rental Fees 291

Slim–Cucumber Style 291

Setup 291

Check-Out CD 292

Check-In CD 292

Scenario Library 292

Category-Based Rental Fees 294

Robot 295

Setup 295

Check-Out CD 295

Check-In CD 296

Category-Based Rental Fees 296

Cucumber 296

Check-Out CD 297

Check-In CD 297

Category-Based Rental Fees 297

Test Frameworks 298

Summary 298

Appendix D: Tables Everywhere 299

User Interface Tests with Tables 299

Requirement Tables 301

Another Table 302

Quality Attribute Requirements 303

Data Tables 304

Summary 304

Appendix E: Money with ATDD 305

The Context 305

The Original Tests 306

The Acceptance Test Approach 307

Summary 310

Appendix F: Exercises 311

Calculator 311

Create Some Tests 313

More Exercises 313

Sam’s CD Rental 314

Triangle 314

File Copying Exercise 314

References 315

Epilogue 323

Index 333

Read More Show Less

Customer Reviews

Average Rating 5
( 2 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted May 30, 2014


    1. Yes <br> 2. Yes <br> 3. No <br> 4. Yes <br> 5. No <br> 6. Yes <br> 7. Yes <br> 8. Yes <br> 9. Sorta <br>

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted May 30, 2014

    Lamb || God Modding

    1. Yes
    2. Yes
    3. No
    4. Yes
    5. No.
    6. (I had trouble with this. If a cat is bitten in the neck, surely it is painful and deadly. But a cat can still acknowlege the pain, and yet fight on with what is ls left of their strength, and still acknowlege that their strength is dimishing. I have decided to go with 'Varies' if that is okay.)
    7. Yes
    8. Omfg yes.
    9. Yes

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)