Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
- Length: 368 pages
- Edition: 1
- Language: English
- Publisher: Addison-Wesley Professional
- Publication Date: 2011-01-01
- ISBN-10: 0321714083
- ISBN-13: 9780321714084
- Sales Rank: #261890 (See Top 100 Books)
Praise for Lean-Agile Acceptance Test-Driven Development
“Lean-Agile Acceptance Test-Driven Development tells a tale about three fictive project stakeholders as they use agile techniques to plan and execute their project. The format works well for the book; this book is easy to read, easy to understand, and easy to apply.”
—Johannes Brodwall, Chief Scientist, Steria Norway
“Agile development, some say, is all about pairing, and, yes, I’m a believer in the power of pairing. After reading this book, however, I became a fan of the ‘triad’—the customer or business analyst + the developer + the tester, who work collaboratively on acceptance tests to drive software development. I’ve written some patterns for customer interaction and some patterns for testing and I like what Ken Pugh has chosen to share with his readers in this down-to-earth, easy-to-read book. It’s a book full of stories, real case studies, and his own good experience. Wisdom worth reading!”
—Linda Rising, Coauthor of Fearless Change: Patterns for Introducing New Ideas
“The Agile Manifesto, Extreme Programming, User Stories, and Test-Driven Development have enabled tremendous gains in software development; however, they’re not enough. The question now becomes ‘How can I ensure clear requirements, correct implementation, complete test coverage, and more importantly, customer satisfaction and acceptance?’ The missing link is acceptance as defined by the customer in their own domain language. Lean-Agile Acceptance Test-Driven Development is the answer.”
—Bob Bogetti, Lead Systems Designer, Baxter Healthcare
“Ken Pugh’s Lean-Agile Acceptance Test-Driven Development shows you how to integrate essential requirements thinking, user acceptance tests and sounds, and lean-agile practices, so you can deliver product requirements correctly and efficiently. Ken’s book shows you how table-driven specification, intertwined with requirements modeling, drives out acceptance criteria. Lean-Agile Acceptance Test-Driven Development is an essential guide for lean-agile team members to define clear, unambiguous requirements while also validating needs with acceptance tests.”
—Ellen Gottesdiener, EBG Consulting, www.ebgconsulting.com, Author of Requirements by Collaboration and The Software Requirements Memory Jogger
“If you are serious about giving Agile Testing a chance and only have time to read one book, read this one.”
—David Vydra, http://testdriven.com
“This book provides clear, straightforward guidance on how to use business-facing tests to drive software development. I’m excited about the excellent information in this book. It’s a great combination of the author’s experiences, references to other experts and research, and an example project that covers
many angles of ATDD. A wide range of readers will learn a lot that they can put to use, whether they work on projects that call themselves lean or agile or simply want to deliver the best possible software product.”
—Lisa Crispin, Agile Tester, ePlan Services, Inc., Author of Agile Testing
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
Table of Contents
Part I: The Tale
Chapter 1: Prologue
Chapter 2: Lean and Agile
Chapter 3: Testing Strategy
Chapter 4: An Introductory Acceptance Test
Chapter 5: The Example Project
Chapter 6: The User Story Technique
Chapter 7: Collaborating on Scenarios
Chapter 8: Test Anatomy
Chapter 9: Scenario Tests
Chapter 10: User Story Breakup
Chapter 11: System Boundary
Chapter 12: Development Review
Part II: Details
Chapter 13: Simplification by Separation
Chapter 14: Separate View from Model
Chapter 15: Events, Responses, and States
Chapter 16: Developer Acceptance Tests
Chapter 17: Decouple with Interfaces
Chapter 18: Entities and Relationships
Chapter 19: Triads for Large Systems
Part III: General Issues
Chapter 20: Business Capabilities, Rules, and Value
Chapter 21: Test Presentation
Chapter 22: Test Evaluation
Chapter 23: Using Tests for Other Things
Chapter 24: Context and Domain Language
Chapter 25: Retrospective and Perspective
Part IV: Case Studies
Chapter 26: Case Study: Retirement Contributions
Chapter 27: Case Study: Signal Processing
Chapter 28: Case Study: A Library Print Server
Chapter 29: Case Study: Highly Available Platform
Part V: Technical Topics
Chapter 30: How Does What You Do Fit with ATDD?
Chapter 31: Test Setup
Chapter 32: Case Study: E-Mail Addresses
Part VI : Appendices
Appendix A: Other Issues
Appendix B: Estimating Business Value
Appendix C: Test Framework Examples
Appendix D: Tables Everywhere
Appendix E: Money with ATDD
Appendix F: Exercises