Agile Testing
A Practical Guide for Testers and Agile Teams
Lisa Crispin
Janet Gregory
Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals.
The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.
The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and branding interests. For more information, please contact:
U.S. Corporate and Government Sales
(800) 382-3419
corpsales@pearsontechgroup.com
For sales outside the United States, please contact:
International Sales
international@pearson.com
Visit us on the Web: informit.com/aw
Library of Congress Cataloging-in-Publication Data:
Crispin, Lisa.
Agile testing : a practical guide for testers and agile teams /
Lisa Crispin, Janet Gregory. — 1st ed.
p. cm.
Includes bibliographical references and index.
ISBN-13: 978-0-321-53446-0 (pbk. : alk. paper)
ISBN-10: 0-321-53446-8 (pbk. : alk. paper) 1. Computer software—
Testing. 2. Agile software development. I. Gregory, Janet. II. Title.
QA76.76.T48C75 2009
005.1—dc22
2008042444
Copyright © 2009 Pearson Education, Inc.
All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to:
Pearson Education, Inc.
Rights and Contracts Department
501 Boylston Street, Suite 900
Boston, MA 02116
Fax (617) 671-3447
ISBN-13: 978-0-321-53446-0
ISBN-10: 0-321-53446-8
Text printed in the United States on recycled paper at R.R. Donnelley in Crawfordsville, Indiana.
Second printing, March 2009
Dedication
To my husband, Bob Downing—you’re the bee’s knees!
—Lisa
To Jack, Dana, and Susan, and to all the writers in my family.
—Janet
And to all our favorite donkeys and dragons.
—Lisa and Janet
Table of Contents
Foreword by Mike Cohn
Foreword by Brian Marick
Preface
Acknowledgments
About the Authors
Part I. Introduction
Chapter 1. What Is Agile Testing, Anyway?
Agile Values
What Do We Mean by “Agile Testing”?
A Little Context for Roles and Activities on an Agile Team
Customer Team
Developer Team
Interaction between Customer and Developer Teams
How Is Agile Testing Different?
Working on Traditional Teams
Working on Agile Teams
Traditional vs. Agile Testing
Whole-Team Approach
Summary
Chapter 2. Ten Principles for Agile Testers
What’s an Agile Tester?
The Agile Testing Mind-Set
Applying Agile Principles and Values
Provide Continuous Feedback
Deliver Value to the Customer
Enable Face-to-Face Communication
Have Courage
Keep It Simple
Practice Continuous Improvement
Respond to Change
Self-Organize
Focus on People
Enjoy
Adding Value
Summary
Part II. Organizational Challenges
Chapter 3. Cultural Challenges
Organizational Culture
Quality Philosophy
Sustainable Pace
Customer Relationships
Organization Size
Empower Your Team
Barriers to Successful Agile Adoption by Test/QA Teams
Loss of Identity
Additional Roles
Lack of Training
Not Understanding Agile Concepts
Past Experience/Attitude
Cultural Differences among Roles
Introducing Change
Talk about Fears
Give Team Ownership
Celebrate Success
Management Expectations
Cultural Changes for Managers
Speaking the Manager’s Language
Change Doesn’t Come Easy
Be Patient
Let Them Feel Pain
Build Your Credibility
Work On Your Own Professional Development
Beware the Quality Police Mentality
Vote with Your Feet
Summary
Chapter 4. Team Logistics
Team Structure
Independent QA Teams
Integration of Testers into an Agile Project
Agile Project Teams
Physical Logistics
Resources
Tester-Developer Ratio
Hiring an Agile Tester
Building a Team
Self-Organizing Team
Involving Other Teams
Every Team Member Has Equal Value
Performance and Rewards
What Can You Do?
Summary
Chapter 5. Transitioning Typical Processes
Seeking Lightweight Processes
Metrics
Lean Measurements
Why We Need Metrics
What Not to Do with Metrics
Communicating Metrics
Metrics ROI
Defect Tracking
Why Should We Use a Defect Tracking System (DTS)?
Why Shouldn’t We Use a DTS?
Defect Tracking Tools
Keep Your Focus
Test Planning
Test Strategy vs. Test Planning
Traceability
Existing Processes and Models
Audits
Frameworks, Models, and Standards
Summary
Part III. The Agile Testing Quadrants
Chapter 6. The Purpose of Testing
The Agile Testing Quadrants
Tests that Support the Team
Tests that Critique the Product
Knowing When a Story Is Done
Shared Responsibility
Managing Technical Debt
Testing in Context
Summary
Chapter 7. Technology-Facing Tests that Support the Team
An Agile Testing Foundation
The Purpose of Quadrant 1 Tests
Supporting Infrastructure
Why Write and Execute These Tests?
Lets Us Go Faster and Do More
Making Testers’ Jobs Easier
Designing with Testing in Mind
Timely Feedback
Where Do Technology-Facing Tests Stop?
What If the Team Doesn’t Do These Tests?
What Can Testers Do?
What Can Managers Do?
It’s a Team Problem
Toolkit
Source Code Control
IDEs
Build Tools
Build Automation Tools
Unit Test Tools
Summary
Chapter 8. Business-Facing Tests that Support the Team
Driving Development with Business-Facing Tests
The Requirements Quandary
Читать дальше