Agile Testing Talk Nov2006
Agile Testing Talk Nov2006
Agile Testing Talk Nov2006
Elisabeth Hendrickson
Quality Tree Software, Inc.
www.qualitytree.com
Contents
• Agile overview
• How traditional testing practices evolved
• Agile and traditional projects contrasted
• Agile test practices evolving
Lean Scrum
Lean manufacturing Lightweight
concepts applied to management
software framework.
development.
Crystal Extreme
Lightweight set of Programming (XP)
development Rigorous set of
practices. practices designed to
keep both the code
and team agile.
Principles: Tools:
• Eliminate waste • Seeing Waste
• Amplify learning • Value Stream Mapping
• Decide as late as possible • Feedback
• Iterations
• Deliver as fast as possible
• Options Thinking
• Empower the team
• Last Responsible
• Build integrity in Moment
• See the whole • Queuing Theory
• Cost of Delay
Source: Mary Poppendieck, • Testing
Tom Poppendieck. Lean
• Refactoring
Software Development: an
Agile Toolkit. Etc. (22 tools in all)
Scrum Scrum
Team Master
Daily
Scrum
Product Sprint
Owner Backlog
Sprint
30 Days
Product
Increment
Product
Backlog
Adapted from the original at
http://www.controlchaos.com/about/
Values: Practices:
• Communication • The Planning Game
• Simplicity • Small releases
• Feedback • Metaphor
• Courage • Simple design
• Testing
• Refactoring
• Pair programming
• Collective ownership
• Continuous integration
• 40 hour week
• On-site customer
• Coding standards
Source: Kent Beck, Extreme Programming Explained.
Adapt Collaborate
Embrace change. Give up on Co-locate team members.
“managing” or “controlling” Whole team thinking. Get
it. close to the customer.
Get Feedback Communicate
Test early, test often. Information radiators. Big
Everyone tests. Customer visible charts. Daily
“accepts.” standup meetings.
Deliver Value… …Continuously
Do important features Short timeboxes
first. Reduce waste. (“iterations” or “sprints”)
Reduce overhead. Reduce
rework.
Agile Expectations
Change is inevitable.
The whole team, including the programmers, testers, customers, is responsible for
the outcome.
Everyone on the team is accessible and actively communicating throughout the
project.
Programmers test early, often, and aggressively.
The whole team actively solicits feedback.
Completed Code
handed off to Test
Release
Iterations
“Fear not!
I’ll protect
you!”
“Hey, would
this help?
from last line of
defense… …to team support
Reduce waste
Traditional Agile
Change Manage & control it Change is inevitable
Planning Comprehensive up Plan as you go
front design
Document- Verbose Only as much as
ation necessary
Handoffs Formal entrance and It’s not a relay race:
exit criteria collaborate
Informal Whiteboards
Change
Sticky Notes
Planning
Index Cards
Documentation
Wikis
Checklists
Formal Databases
Handoffs
Gantt/PERT Charts
Comprehensive, Polished
Automation
Change
Planning
Documentation
Handoffs
Automation
exploratory testing.
Automation
Within an Iteration
Automated Manual
Automated
Acceptance or Exploratory
Unit Tests
Story Tests Testing
Unit Testing
• Done by developers, usually with an xUnit framework, often as a result of
practicing Test Driven Development (TDD)
• Supports the development process
• Unit test suites represent executable specifications
Automated Acceptance Testing
• The result of a collaboration between the developers and business stakeholders
• Often implemented in a FIT-like framework or Domain Specific Language
• Acceptance test suites represent executable requirements
Exploratory Testing
• Provides additional feedback and covers gaps in automation
• Necessary to augment the automated tests