Against Test Cases
Against Test Cases
James Bach
Satisfice, Inc.
[email protected]
www.satisfice.com
1
5/19/2009
An artifact.
A container. (“test cases are like briefcases”)
A model. (a pattern, idea, spec, or schematic for a test)
Part of a suite.
A mystery. (“why did he write the test that way?”)
A burden to the future. (is it broken? is it obsolete? is it
limiting my imagination or stealing my time that I could be using
to TEST BETTER?)
A measure of testing progress.
A unit of testing itself.
2
5/19/2009
Compare to:
A test procedure is a way of performing a test.
3
5/19/2009
4
5/19/2009
5
5/19/2009
Micro-behaviors: Unreliable and distractible humans make each test a little bit
new each time through.
Randomness: Can protect you from unconscious bias.
Data Substitution: The same actions may have dramatically different results
when tried on a different database, or with different input.
Platform Substitution: Supposedly equivalent platforms may not be.
Timing/Concurrency Variations: The same actions may have different results
depending on the time frame in which they occur and other concurrent events.
Scenario Variation: The same functions may operate differently when
employed in a different flow or context.
State Pollution: Hidden variables of all kinds frequently exert influence in a
complex system. By varying the order, magnitude, and types of actions, we may
accelerate state pollution, and discover otherwise rare bugs.
Sensitivities and Expectations: Different testers may be sensitive to different
factors, or make different observations. The same tester may see different things at
different times or when intentionally shifting focus to different things.
6
5/19/2009
7
5/19/2009