1. Exploratory Testing in An
Agile Context
Elisabeth Hendrickson
Quality Tree Software, Inc.
esh@qualitytree.com
2. What is Exploratory Testing?
Simultaneously…
…learning about the software
…designing tests
…executing tests
using feedback from the last
test to inform the next
(Term coined by Cem Kaner. Definition refined by
James Bach. Others have contributed to ET including
James Lyndsay, Jonathan Kohl, Michael Bolton.)
3. Exploratory Testing and Emergent Behavior
The unit tests This security story
all pass! The passes my acceptance
build is green. tests.
Did anyone notice that a
user can make themselves
an administrator?
4. Thinking is Mandatory
All the usual test design practices apply…
• Variable analysis
• Heuristics
• Boundary analysis
• State modeling
• Decision tables
• Personas
• Etc.
5. Organize the Work with Charters
A template:
Explore area/feature [ with resources,
conditions, or constraints ] to discover
information
Examples:
Explore the Calculator feature in the Fly to
discover conditions or sequences that generate
inaccurate results.
Explore drawing calculators with irregular,
small, and too close buttons and lines to
discover how the Fly behaves under these
conditions.
6. Time Box Exploration in Sessions
Charters Sessions
Explore the login feature in combination Session
with bookmarks & history to discover
Session
information about interactions.
Session
Explore the site with various browsers
and settings to discover risks related Session
to unsupported configurations.
Session
Explore error handling using data type
attacks to find problems related to Session
data validation.
7. Where Do Charters Come From?
• Stakeholder Questions
“What happens if we have more than 5000
records?”
• Quality Attributes
“Explore the features associated with users,
groups, and security to find security holes.”
• Risks
Imagine the worst thing that could possibly
happen, and consider what might contribute
to it happening?
• Any Other Need for Information
Testing yields information. Charters can
come from any information need.
8. Exploratory Testing on Agile Projects
Within an Iteration
Automated Manual
Automated
Acceptance or Exploratory
Unit Tests
Story Tests Testing
Define “done”, Drive design,
Provides
represent represent
additional
executable executable
feedback
requirements specifications
9. ATDD: Part of an Agile Testing Strategy
Support Critique
Business-
facing Acceptance Tests Exploratory Testing
Code- Reviews, inspections,
facing Unit Tests pairing, code
quality metrics
(A variation on Brian Marick’s Agile Testing Quadrants
as published in his essay “Agile Testing Directions”)
10. Result: Feedback on Process AND Product
We’ve automated the I’ll add things like
regression test when that to the
we fixed the bug. acceptance criteria.
We need to think about
that kind of thing in
future designs too.