Exploratory Testing in An
Quality Tree Software, Inc.
What is Exploratory Testing?
…learning about the software
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.)
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
Thinking is Mandatory
All the usual test design practices apply…
• Variable analysis
• Boundary analysis
• State modeling
• Decision tables
Organize the Work with Charters
Explore area/feature [ with resources,
conditions, or constraints ] to discover
Explore the Calculator feature in the Fly to
discover conditions or sequences that generate
Explore drawing calculators with irregular,
small, and too close buttons and lines to
discover how the Fly behaves under these
Time Box Exploration in Sessions
Explore the login feature in combination Session
with bookmarks & history to discover
information about interactions.
Explore the site with various browsers
and settings to discover risks related Session
to unsupported configurations.
Explore error handling using data type
attacks to find problems related to Session
Where Do Charters Come From?
• Stakeholder Questions
“What happens if we have more than 5000
• Quality Attributes
“Explore the features associated with users,
groups, and security to find security holes.”
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.
Exploratory Testing on Agile Projects
Within an Iteration
Acceptance or Exploratory
Story Tests Testing
Define “done”, Drive design,
ATDD: Part of an Agile Testing Strategy
facing Acceptance Tests Exploratory Testing
Code- Reviews, inspections,
facing Unit Tests pairing, code
(A variation on Brian Marick’s Agile Testing Quadrants
as published in his essay “Agile Testing Directions”)
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.