SlideShare a Scribd company logo
1 of 27
Download to read offline
MA
Full-day Tutorials
Monday, April 30th, 2018
8:30 AM
Critical Thinking for Software Testers
Presented by:
Michael Bolton
DevelopSense
Brought to you by:
350 Corporate Way, Suite 400, Orange Park, FL 32073
888---268---8770 ·· 904---278---0524 - info@techwell.com - http://www.stareast.techwell.com/
Michael Bolton
DevelopSense
Michael Bolton is a consulting software tester and testing teacher who helps
people solve testing problems that they didn’t realize they could solve. He is the
co-author (with senior author James Bach) of Rapid Software Testing, a
methodology and mindset for testing software expertly and credibly in uncertain
conditions and under extreme time pressure. With twenty-five years of
experience testing, developing, managing, and writing about software, Michael
has led DevelopSense, a Toronto-based testing and development consultancy, for
the past fifteen years. Previously, he was with Quarterdeck Corporation where he
managed the company’s flagship products and directed project and testing teams
both in-house and worldwide. Contact Michael at michael@developsense.com,
on Twitter, or through his website.
Critical Thinking for Testers Michael Bolton and James Bach
1
Critical Thinking for Testers
James Bach
http://www.satisfice.com
james@satisfice.com
Twitter: @jamesmarcusbach
Michael Bolton
http://www.developsense.com
michael@developsense.com
Twitter: @michaelbolton
+1 (416) 992‐8378
namespace ‘Rapid Software Testing’;
We don’t claim to present “a common language for software 
testing.” We believe that any such claim is nonsensical. But 
within this class and the RST methodology, we, as authors, can 
declare authority.  We have no authority over the words you 
use except within RST.
That said, we choose our words very carefully, and discuss 
them with others in order to sharpen our thinking and to 
reduce the chance of misunderstanding. We encourage you to 
do that within your context.
Critical Thinking For Testers.pdf ‐ 2
It’s easy to get the right answer 
for a simple problem.
(Whenever you see a title slide like 
this one, think critically about it.)
Critical Thinking For Testers.pdf ‐ 3
Simple Problems
Daniel Kahneman
Thinking Fast and Slow
Critical Thinking For Testers.pdf ‐ 4
A Simple Puzzle
“Steve,	an	American	man,	is	very	shy	and	withdrawn,	invariably	helpful	
but	with	little	interest	in	people	or	in	the	world	of	reality.	A	meek	and	tidy	
soul,	he	has	a	need	for	order	and	structure,	and	a	passion	for	detail.”	
Is	Steve	more	likely	to	be
a	librarian? a	farmer?
Daniel Kahneman
Thinking Fast and Slow
People shouldn’t argue about 
semantics.
Critical Thinking For Testers.pdf ‐ 8
Critical Thinking for Testers Michael Bolton and James Bach
2
One Event or Two?
Steven Pinker
The Stuff of Thought: Language as a Window into Human Nature
Image Credit: www.theatlantic.com
Critical Thinking For Testers.pdf ‐ 9
Is a Burrito a Sandwich?
Roy Sorenson
A Cabinet of Philosophical Curiosities
Image Credit: www.dreamstime.com
Critical Thinking For Testers.pdf ‐ 10
Wait, let’s try something really simple…
Can we agree?
Can we share common ground?
“There are four geometric figures on this slide.”
“There is one square among those figures.”
“The square is shaded in blue.”
Critical Thinking For Testers.pdf ‐ 11
Beware of
Shallow Agreement!
Wait, let’s try something really simple…
Critical Thinking For Testers.pdf ‐ 12
Some bugs are obvious.
Critical Thinking For Testers.pdf ‐ 13
Do You See a Bug?
Critical Thinking For Testers.pdf ‐ 14
Critical Thinking for Testers Michael Bolton and James Bach
3
Bugs are really problems in logic.
Critical Thinking For Testers.pdf ‐ 16
What are We Seeing Here?
• Mental models and modeling are often 
dominated by unconscious factors.
• Familiar environments and technologies allow 
us to “get by” on memory and habit.
• Social conventions may cause us to value 
politeness over doing our disruptive job.
• Lack of pride and depth in our identity as 
testers may sap our motivation to think better.
Critical Thinking For Testers.pdf ‐ 17
The Nature of Critical Thinking
• “Critical thinking is purposeful, self‐regulatory 
judgment which results in interpretation, 
analysis, evaluation, and inference, as well as 
explanation of the evidential, conceptual, 
methodological, criteriological, or contextual 
considerations upon which that judgment is 
based.” ‐ Critical Thinking: A Statement of Expert Consensus for Purposes 
of Educational Assessment and Instruction, Dr. Peter Facione
(Critical thinking is, for the most part, about getting all the benefits of 
your “System 1” thinking reflexes while avoiding self‐deception and 
other mistakes—including overdependence on System 2.)
Critical Thinking For Testers.pdf ‐ 18
Bolton’s Definition of Critical Thinking
• Michael Bolton
Testing is enactment of critical thinking about software to 
help people make better decisions.
Critical thinking must begin with our belief in the 
likelihood of errors in our thinking.
Critical Thinking For Testers.pdf ‐ 19
To What Do We Apply Critical Thinking?
• The Product
• What it is
• Descriptions of what it is
• Descriptions of what it does
• Descriptions of what it's
supposed to be
• Testing
• Context
• Procedures
• Coverage
• Oracles
• Strategy
• The Project
• Schedule
• Infrastructure
• Processes
• Social orders
• Words
• Numbers
• Language
• Pictures
• Problems
• Biases
• Logical fallacies
• Evidence
• Causation
• Observations
• Learning
• Design
• Behavior
• Models
• Measurement
• Heuristics
• Methods
• …
Critical Thinking For Testers.pdf ‐ 20
Critical Thinking for Testers Michael Bolton and James Bach
4
Reflex is IMPORTANT
But Critical Thinking is About Reflection
REFLEX
REFLECTION
Faster
Looser
Slower
Surer
System 2
System 1
See Thinking Fast and Slow, by Daniel Kahneman
Critical Thinking For Testers.pdf ‐ 21
Why You Should Care
Technology is way more
tricky than regular life.
• Bugs exist in software because of bugs in the way 
people observe, model, think, and decide—and many 
of these bugs used to be features, for individuals or 
for humanity, at some point.
• People hire testers to help inform decisions about 
software products and projects.
• So testers are not supposed to get tricked.
Wason
Critical Thinking For Testers.pdf ‐ 22
Themes
• Technology consists of complex and ephemeral relationships that 
can seem simple, fixed, objective, and dependable even when 
they aren’t.
• Testers are people who ponder and probe complexity.
• Basic testing is a straightforward technical process.
• But, excellent testing is a difficult social and psychological process 
in addition to the technical stuff.
A tester is someone who knows that
things can be different.
Jerry Weinberg
Critical Thinking For Testers.pdf ‐ 23
Bugs in our Approaches:
Calculator Test
“I was carrying a calculator.
I dropped it!
Perhaps it is damaged!
What might you do to test it?”
Critical Thinking For Testers.pdf ‐ 24
Critical Thinking For Testers.pdf ‐ 25
and dry it out before attempting to test it.
When did I drop it? Was I in the middle of a calculation? If so part of my testing might be to visually inspect 
the status of the display to determine whether the calculator appears to still be in the state it was at the 
time I dropped it. If so, I might continue the calculation from that point, unless I believe that the drop 
probably damaged the calculator.
Did I drop it on a hard surface with a force that makes me suspect internal damage? If so then I would 
expect possible hairline fractures. I imagine that would lead to intermittent or persistent short circuits or 
broken circuits. I also suspect damage to moving parts, battery or solar cell connections, or screen.
Did I drop it into a destructive chemical environment? If so, I might worry more about the progressive 
decay of the components.
Did I drop it into a dangerous biological or radiological environment? If so, the functions of the calculator 
maybe less concern than contaminants. I may have to test it with a Geiger counter.
Was the calculator connected to anything else whereby the connection (data cable or AC/cable or duct 
tape that fastened it to a Faberge egg) could have been damaged, or could have damaged the thing it was 
connected to?
Did I detect anything while it was dropping that leads me to suspect any damage in particular (e.g. an 
electrical flash, or maybe a loud popping sound)?
Am I aware of a history of "drop" related problems with this calculator? Have I ever dropped it before?
Is the calculator ruggedized? Is it designed to be dropped in this way?
What is my relationship to this calculator? Is it mine or someone else's?  Maybe I'm just borrowing it.
What is the value of this calculator. I assume that this is not a precious artifact from a museum. The 
exercise as presented appears to be about a calculator as calculating machine, rather than as a precious 
Minoan urn that happens to have calculator functions built into it.
h h l l f ? f ' f f b bl
Critical Thinking for Testers Michael Bolton and James Bach
5
Never make assumptions.
Critical Thinking For Testers.pdf ‐ 27
Assumptions vs. Inferences
• An inference is something we treat as true based on evidence.
• An assumption is a something that we treat as true even though 
we have insufficient evidence.
• A premise is an assumption that begins a chain of reasoning. All 
logic is based on premises.
• Testers question assumptions & premises and gather data for 
better inferences.
Assumption
Inference
weak
inference
plausible
assumption
Critical Thinking For Testers.pdf ‐ 28
Exercise
What makes an assumption more dangerous?
• Not “what specific assumptions are more 
dangerous?”…
• But “what factors would make one 
assumption more dangerous than another?”
• Or “what would make the same assumption 
more dangerous from one time to the next?”
Critical Thinking For Testers.pdf ‐ 29
What makes an assumption more dangerous?
1. Consequential: required to support critical plans and activities. Changing the 
assumption would change important behavior.
2. Unlikely: may conflict with other assumptions or evidence that you have. The 
assumption is counter‐intuitive, confusing, obsolete, or has a low probability of 
being true.
3. Blind: regards a matter about which you have no evidence whatsoever.
4. Controversial: may conflict with assumptions or evidence held by others. The 
assumption may ignore controversy.
5. Impolitic: expected to be declared, by social convention. Failing to disclose the 
assumption violates law or local custom.
6. Volatile: regards a matter that is subject to sudden or extreme change. The 
assumption may be invalidated unexpectedly and explosively.
7. Unsustainable: may be hard to maintain over a long period of time. To be 
sustainable, the assumption and its context must be stable.
8. Premature: regards a matter about which you don’t yet need to assume.
9. Narcotic: any assumption that comes packaged with assurances of its own 
safety, making us go to sleep—and maybe becoming addictive.
10. Latent: Otherwise critical assumptions that we have not yet identified and dealt 
with.  The act of managing assumptions can make them less critical.
Critical Thinking For Testers.pdf ‐ 30
Levels of Assumptions
Reckless Assumptions that are too risky regardless of how they are 
managed. Obviously bad assumptions. Don’t make them.
Risky Assumptions that might be wrong or cause trouble, but can 
be okay with proper management. If you use them, declare 
them.
Safe Assumptions that are acceptable to make without any 
special management or declaration, but still might cause 
trouble.
Required Assumptions so safe that they cause trouble only IF you 
manage them, because people will think you are joking, 
crazy, or insulting.
It is silly to say “don’t make assumptions.” 
Instead, say “let’s be careful about risky assumptions 
and avoid the reckless ones.”
Critical Thinking For Testers.pdf ‐ 31
Remember to
keep your eye on the ball.
Critical Thinking For Testers.pdf ‐ 32
Critical Thinking for Testers Michael Bolton and James Bach
6
Bugs in Observation
Critical Thinking For Testers.pdf ‐ 33
Experience is the best teacher.
Critical Thinking For Testers.pdf ‐ 34
Bugs in Our Models of the World
• Every day the turkey adds one more data 
point to his analysis proving that the farmer 
LOVES turkeys.
• Hundreds of observations
support his theory.
• Then, a few days before
Thanksgiving…
Graph of My Fantastic Life! Page 25!
(by the most intelligent Turkey in the world)
WellBeing!
DATA
ESTIMATED
POSTHUMOUSLY
AFTER THANKSGIVING
“Corn meal a little off
today!”
Critical Thinking For Testers.pdf ‐ 35
Don’t Be A Turkey!
• No experience of the past can LOGICALLY be 
projected into the future, because we have no 
experience OF the future.
• No big deal in a world of stable, simple 
patterns.
• BUT SOFTWARE IS NEITHER
STABLE NOR SIMPLE.
• “PASSING” TESTS CANNOT
PROVE SOFTWARE GOOD.
Based on a story told by Nassim Taleb, who stole it from Bertrand 
Russell, who stole it from David Hume.
Critical Thinking For Testers.pdf ‐ 36
Cognitive biases are bad.
Let’s go out and find a few.
Critical Thinking For Testers.pdf ‐ 37
Features?
• Cognitive biases help us with problems!
–Too much information
–Not enough meaning
–Need to act fast
–What should we remember
Remember these four problems!
See Buster Benson, “Cognitive Bias Cheat Sheet”
https://betterhumans.coach.me/cognitive‐bias‐cheat‐sheet‐55a472476b18#.63xoq03zx
Critical Thinking For Testers.pdf ‐ 38
Critical Thinking for Testers Michael Bolton and James Bach
7
Or Bugs?
• Cognitive biases lead us astray!
–We don’t see everything
–Our search for meaning can conjure illusions
–Quick decisions can be seriously flawed
–Our memory reinforces errors
Remember these four consequences of
our brain’s problem-solving strategies!
See Buster Benson, “Cognitive Bias Cheat Sheet”
https://betterhumans.coach.me/cognitive‐bias‐cheat‐sheet‐55a472476b18#.63xoq03zx
Critical Thinking For Testers.pdf ‐ 39
Exercise  
Think critically about this statement:
“Automated testing allows more time 
for testers to do manual testing.”
Critical Thinking For Testers.pdf ‐ 40
Bugs in our Models of Testing:
Is this what you do?
described actual
“Compare the product to its specification”
Critical Thinking For Testers.pdf ‐ 41
This is more like what testers really do
imagined
actualdescribed
“Compare the idea
of the product to
a description of it”
“Compare the actual product
to a description of it”
“Compare the idea
of the product to
the actual product”
Critical Thinking For Testers.pdf ‐ 42
And this is what you find…
The designer INTENDS the product to be 
Firefox compatible, 
but never says so, and it actually is not.
The designer INTENDS the product to 
be Firefox compatible, SAYS SO IN 
THE SPEC, 
but it actually is not.
The designer assumes
the product is not Firefox compatible, 
and it actually is not, but the ONLINE 
HELP SAYS IT IS.
The designer
INTENDS
the product to be
Firefox compatible, 
SAYS SO, 
and IT IS.
The designer assumes
the product is not 
Firefox compatible, 
but it ACTUALLY IS, and the ONLINE 
HELP SAYS IT IS.
The designer INTENDS the product
to be Firefox compatible,
MAKES IT FIREFOX COMPATIBLE, 
but forgets to say so in the spec.
The designer assumes
the product is not Firefox
compatible, and no one
claims that it is, 
but it ACTUALLY IS.
Critical Thinking For Testers.pdf ‐ 43
Shallow testing is tractable at a close critical distance,
whereas deeper or naturalistic long‐form testing 
tends to require or create more distance from the builder’s mindset.
Critical Distance
“Critical Distance” refers to the difference between one perspective and another. 
Testing benefits from diverse perspectives.
Critical Thinking For Testers.pdf ‐ 44
Critical Thinking for Testers Michael Bolton and James Bach
8
A Central Obstacle Divides Software Work
Mt. Mindset
NOTE: We do NOT claim that this work must be done by different people, or 
that the people must have different roles. We DO claim that roles on a 
development team (collaborating with each other) are a powerful heuristic for 
solving the mindset switching problem.
Developer skill
focus
Tester skill focus
Business analyst skill focus
Critical Thinking For Testers.pdf ‐ 45
Questions for Testers and their Clients
• How should we test this product?
• Where should we look for bugs?
• Are there bugs here?
• Do those bugs matter?
• Whose decides? Whose values matter?
• Are we ready to ship?
• What might be getting in the way of testing 
work, or slowing me down?
• How might we be fooling ourselves?
Critical Thinking For Testers.pdf ‐ 46
Bugs in our Models of Testing:
Call this “Checking”, not Testing
Observe Evaluate Report
Interact with the 
product in specific 
ways to collect 
specific 
observations.
Apply algorithmic
decision rules to
those 
observations.
Report any 
failed checks.
means
operating a product 
to check specific 
facts about it…
Critical Thinking For Testers.pdf ‐ 47
A check can be performed…
by a human who has 
been instructed not to 
think (and who is slow 
and variable)
by a machine
that can’t think
(but that is quick and 
precise)
Critical Thinking For Testers.pdf ‐ 48
Acquiring the competence,
motivation, and credibility for…
Testing Is Learning About a Product
creating the conditions necessary for…
…so that you can help your clients to make 
informed decisions about risk.
evaluating a product by learning
about it through exploration and experimentation, 
which includes to some degree: questioning, study, modeling,
observation and inference, including…
operating a product 
algorithmically to check 
specific facts about it…
Critical Thinking For Testers.pdf ‐ 49
Heuristics
bring useful structure to problem‐solving skill.
“a fallible means of solving a problem”
• a heuristic is not a rule
• a heuristic can work but might fail
“The engineering method is
the use of heuristics to cause the best change
in a poorly understood situation
within the available resources.”
Billy Vaughan Koen 
Discussion of the Method
See “Heuristics for Understanding Heuristics”
http://www.developsense.com/blog/2012/04/heuristics‐for‐understanding‐heuristics/
Critical Thinking For Testers.pdf ‐ 50
Critical Thinking for Testers Michael Bolton and James Bach
9
• You may not understand. (errors in interpreting 
and modeling a situation, communication errors)
• What you understand may not be true. (missing 
information, observations not made, tests not run)
• You may not know the whole story. (perhaps what 
you see is not all there is)
• The truth may not matter, or may matter much 
more than you think. (poor understanding of risk)
Workarounds for Our Bugs:
Introducing Pauses
Giving System 2 time to wake up!
Huh
?Really?
And?
So?
Critical Thinking For Testers.pdf ‐ 51
“Huh?”
Critical Thinking About Words
• Among other things, testers question premises.
• A suppressed premise is an unstated premise that 
an argument needs in order to be logical. 
• A suppressed premise is something that should 
be there, but isn’t…
• (…or is there, but it’s invisible or implicit.)
• Among other things, testers bring suppressed 
premises to light and then question them.
• A diverse set of models can help us to see the 
things that “aren’t there.”
Critical Thinking For Testers.pdf ‐ 52
Test Framing
• Test framing is the set of logical connections 
that structure and inform a test and its result
• The framing of a test consists of 
– premises; essentially ordinary statements
– logical “connectors”
• formal:  if, then, else, and, or
• informal: although, maybe,  
• A change in ONE BIT in the framing of the test 
can invert its result.
Critical Thinking For Testers.pdf ‐ 87
Exercise:  Test Framing
• “We executed 20 test cases this week.  There are 
120 test cases remaining.  Therefore we will be 
finished testing in six weeks.”
“I performed the tests. All my tests passed. 
Therefore, the product works.”
• “The programmer said he fixed the bug. I can’t 
reproduce it anymore. Therefore it must be fixed.”
• “Microsoft Word frequently crashes while I am 
using it. Therefore it’s a bad product.”
• “It’s way better to find bugs earlier than to find 
them later.”
Critical Thinking For Testers.pdf ‐ 53
Treating absolute statements as heuristics helps to 
defend you against critical thinking errors.
And yes, that’s a heuristic.
Grand Truth? Rule?  Or Heuristic?
“"It is generally accepted that it is more
difficult for an author to find defects in their
own work than it is for an independent tester
to find the same defects."
Use “Huh?  Really?  And?  So?”
to critique this sentence:
Critical Thinking For Testers.pdf ‐ 54
• Selectively emphasize each word in a 
statement; also consider alternative meanings.
MARY had a little lamb.
Mary HAD a little lamb.
Mary had A little lamb.
Mary had a LITTLE lamb.
Mary had a little LAMB.
Example: Generating Interpretations
Critical Thinking For Testers.pdf ‐ 55
Critical Thinking for Testers Michael Bolton and James Bach
10
“Really?”
The Data Question
What did you
see or hear
(or smell, or taste, or touch)
that made you believe...?
Critical Thinking For Testers.pdf ‐ 56
Really? Says Who?
Critical Thinking About Research
• Research varies in quality
• Research findings often contradict one another
• Research findings do not prove conclusions
• Researchers have biases
• Writers and speakers may simplify or distort
• “Facts” change over time
• Research happens in specific environments
• Human desires affect research outcomes
Asking the Right Questions:  A Guide to Critical Thinking
M. Neil Browne & Stuart M. Keeley
ALL of these things apply to testing, too.
Critical Thinking For Testers.pdf ‐ 58
“And?”
A vs. THE
• Example:  “THE problem…” instead of “A problem…”
• Using “A” instead of “THE” helps us to avoid several 
kinds of critical thinking errors
– single path of causation
– confusing correlation and causation
– single level of explanation
Whatever we’re focused on may be only one of 
several things we COULD focus on.
Critical Thinking For Testers.pdf ‐ 59
“And?”
Unless…
• When someone asks a question based on a false 
or incomplete premise, try adding “unless…” to 
the premise
• When someone offers a Grand Truth about 
testing, append “unless…” or “except when…”
Whatever is true under these conditions may 
not be true under other conditions.
Critical Thinking For Testers.pdf ‐ 60
“And?”
Also…
• The product gives the correct result! Yay!
• …It also may be silently deleting system files.
• There may be more where that come from.
Whatever is happening,
something else may ALSO be happening.
Critical Thinking For Testers.pdf ‐ 61
Whatever is true now
may not be true for long.
“And?”
“So far” & “Not yet”
• The product works… so far.
• We haven’t seen it fail… yet.
• No customer has complained… yet.
• Remember: There is no test for ALWAYS.
Critical Thinking For Testers.pdf ‐ 62
Critical Thinking for Testers Michael Bolton and James Bach
11
Whatever your theory about “what is”, other theories 
could describe “what is” as well, or better.
“And?”
“What else?”
• The Rule of Three: if you haven’t thought of at 
least three plausible and non‐trivial 
interpretations of what you’ve taken in, you 
probably haven’t thought enough.
– Jerry Weinberg
• See also How Doctors Think, Dr. Jerome 
Groopman
Critical Thinking For Testers.pdf ‐ 63
You’re rarely looking at the whole thing; far more 
often at a model or sample.  What’s missing?
“And?”
“What’s missing?”
Section of the plane Bullet holes per square foot
Engine 1.11
Fuselage 1.73
Fuel system 1.55
Rest of the plane 1.8
U.S. airplanes returning from engagements over Europe, WWII
Jordan Ellenberg, How Not To Be Wrong
Beware of “random” samples that only look random!
Critical Thinking For Testers.pdf ‐ 64
“So?”
Critical Thinking About Risk
“The system shall operate at an input voltage range 
of nominal 100 ‐ 250 VAC.”
“Try it with an input voltage in the range of 100-250.”
Poor answer:
How do you test this?
Critical Thinking For Testers.pdf ‐ 65
Heuristic Model:
The Four‐Part Risk Story
• Victim: Someone that experiences the impact of a problem. 
Ultimately no bug can be important unless it victimizes a human. 
• Problem: Something the product does that we wish it wouldn’t do. 
• Vulnerability: Something about the product that causes or allows 
it to exhibit a problem, under certain conditions.
• Threat: Some condition or input external to the product that, were it 
to occur, would trigger a problem in a vulnerable product.
Some person may be hurt or annoyed
because of something that might go wrong
while operating the product, 
due to some vulnerability in the product
that is triggered by some threat. 
Critical Thinking For Testers.pdf ‐ 66
How Do We Know What “Is”?
“We know what is because we see what is.”
We believe 
we know what is because we see 
what we interpret as signs that indicate 
what is 
based on our prior beliefs about the world
and our (un)awareness of things around us.
Critical Thinking For Testers.pdf ‐ 67
How Do We Know What “Is”?
“If I see X, then probably Y, because probably A, B, C, D, etc.”
• THIS CAN FAIL:
– Ice cream that wasn’t
– Getting into a car– oops, not my car.
– Bad driving– Why?
– Bad work– Why?
– Ignored people at my going away party– Why?
– Couldn’t find soap dispenser in restroom– Why?
– Ordered orange juice at seafood restaurant– waitress misunderstood
Critical Thinking For Testers.pdf ‐ 68
Critical Thinking for Testers Michael Bolton and James Bach
12
Remember this, you testers!
Critical Thinking For Testers.pdf ‐ 69
How many test cases are needed to test
the product represented by this flowchart?
Critical Thinking For Testers.pdf ‐ 70
Models Link Observation and Inference
• A model is an idea, activity, or object…
such as an idea in your mind, a diagram, a list of words, a spreadsheet, a 
person, a toy, an equation, a demonstration, or a program
• …that represents another idea, activity, or object…
such as something complex that you need to work with or study.
• …whereby understanding the model may help you 
understand or manipulate what it represents.
• A map is a model that helps us to navigate across a terrain.
• 2+2=4 is a model for adding two apples to a basket that already has two 
apples in it.
• Atmospheric models help us to predict where hurricanes will go.
• A fashion model helps us to understand how clothes would look on an 
actual (very skinny) human.
• Your beliefs about what you test are a model of what you test.
Critical Thinking For Testers.pdf ‐ 71
Models Link Observation & Inference
• Testers must distinguish
observation from
inference!
• Our mental models form
the links between them
• Defocusing is lateral
thinking.
• Focusing is logical (or
“vertical”) thinking.
My model
of the world
“I see…”
“I believe…”
Critical Thinking For Testers.pdf ‐ 72
Rapid Software Testing
Heuristic Test Strategy Model
See http://www.satisfice.com/rst‐appendices.pdf
Study and practice helps
to move your heuristics
towards System 1 territory
Critical Thinking For Testers.pdf ‐ 73
Rapid Software Testing: Oracles
See http://www.developsense.com/blog/2015/09/oracles‐from‐the‐inside‐out/
System 1 reactions
from experience can be refined
by System 2’s ability to reflect on 
inference, conference, and reference.
Critical Thinking For Testers.pdf ‐ 74
Critical Thinking for Testers Michael Bolton and James Bach
13
Modeling Bugs as Magic Tricks
• Our thinking is limited
• We misunderstand probabilities
• We use the wrong heuristics
• We lack specialized knowledge
• We forget details
• We don’t pay attention to the right things
• The world is hidden
• states
• sequences
• processes
• attributes
• variables
• identities
Magic tricks work
for the same reasons
that bugs exist
Studying magic can
help you develop
the imagination
to find better bugs.
Testing magic is
indistinguishable from
testing sufficiently
advanced technology
Critical Thinking For Testers.pdf ‐ 75
Untangling Observation and Inference
• Observation and inference are easily confused.
• Observation is direct sensory data, but on a very low level it is 
guided and manipulated by inferences and heuristics. 
• You sense very little of what there is to sense.
• You remember little of what you actually sense.
• Some things you think you see in one instance may be 
confused with memories of other things you saw at other 
times.
• It’s easy to miss bugs that occur right in front of your eyes.
• It’s easy to think you “saw” a thing when in fact you merely 
inferred that you must have seen it.
What can you do about it?
Critical Thinking For Testers.pdf ‐ 76
Sharpening Observation and Inference
• Accept that we’re all fallible, but that we can learn to be better 
observers by learning from mistakes.
• Pay special attention to incidents where someone notices 
something you could have noticed, but did not.
• Don’t strongly commit to a belief about any important evidence 
you’ve seen only once.
• Whenever you describe what you experienced, notice where 
you’re saying what you saw and heard, and where you are instead 
jumping to a conclusion about “what was really going on.”
• Where feasible, look at things in more than one way.
• Collect more than one kind of information about what happened 
(such as repeated testing, paired testing, loggers and log files, or 
video cameras).
Here's what:
Critical Thinking For Testers.pdf ‐ 77
Workarounds for Bugs in Speaking:
Safety Language (aka “epistemic modalities”)
• “Safety language” in Rapid Software Testing, means to 
qualify or otherwise draft statements of fact so as to 
avoid false confidence.
• Examples:
So far…
The feature worked
It seems…
I think…
It appears…
apparently…
I infer…
I assumed…
I have not yet seen any
failures in the feature…
Critical Thinking For Testers.pdf ‐ 78
Safety Language In Action
Critical Thinking For Testers.pdf ‐ 79
Safety Language In Action
Critical Thinking For Testers.pdf ‐ 80
Critical Thinking for Testers Michael Bolton and James Bach
14
Qualification Quips:
Safety and Possibilities
• proportional principle: "to some degree"
• relative rule: "to some person, at some time"
• context concept: "in some context"
• uncertainty umbrella: "probably but not certainly"
• necessity nudge: "necessary but not sufficient"
• heuristic heuristic: "the solution is a heuristic“
• model modifier: “not the thing, but our model of the thing”
• particularity premise: “true for us in the here and now”
• debate delay:  “we will decide on this later”
• design deferral:  “we will solve this problem later”
• the et cetera escape: “there may be more to this”
Critical Thinking For Testers.pdf ‐ 81
Critical Thinking About
Common Beliefs About Testing
• Every test must have an expected, predicted result.
• Effective testing requires complete, clear, consistent, 
and unambiguous specifications.
• Bugs found earlier cost less to fix than bugs found later.
• Testers are the quality gatekeepers for a product.
• Repeated tests are fundamentally more valuable.
• You can’t manage what you can’t measure.
• Testing at boundary values is the best way to find bugs.
Critical Thinking For Testers.pdf ‐ 82
Critical Thinking About
Common Beliefs About Testing
• Test documentation is needed to deflect legal liability.
• The more bugs testers find before release, the better 
the testing effort has been.
• Rigorous planning is essential for good testing.
• Exploratory testing is unstructured testing, and is 
therefore unreliable.
• Adopting best practices will guarantee that we do a 
good job of testing.
• Step by step instructions are necessary to make testing 
a repeatable process.
Critical Thinking For Testers.pdf ‐ 83
Critical thinking about practices
What does “best practice” mean?
• Someone: Who is it? What do they know?
• Believes: What specifically is the basis of their belief?
• You: Is their belief applicable to you?
• Might: How likely is the suffering to occur?
• Suffer: So what? Maybe it’s worth it.
• Unless: Really? There’s no alternative?
• You do this practice: What does it mean to “do” it? What does it 
cost? What are the side effects? What if you do it badly? What if 
you do something else really well? Critical Thinking For Testers.pdf ‐ 84
Beware of…
• Numbers: “We cut test time by 94%.”
• Documentation: “You must have a written plan.”
• Judgments: “That project was chaotic. This project was a success.”
• Behavior Claims: “Our testers follow test plans.”
• Terminology: Exactly what is a “test plan?”
• Contempt for Current Practice: CMM Level 1 (initial) vs. 
CMM level 2 (repeatable)
• Unqualified Claims: “A subjective and unquantifiable requirement 
is not testable.”
Critical Thinking For Testers.pdf ‐ 85
Look For…
• Context: “This practice is useful when you want the power of creative 
testing but you need high accountability, too.”
• People: “The test manager must be enthusiastic and a real hands‐on 
leader or this won’t work very well.”
• Skill: “This practice requires the ability to tell a complete story about 
testing: coverage, techniques, and evaluation methods.”
• Learning Curve: “It took a good three months for the testers to get 
good at producing test session reports.”
• Caveats: “The metrics are useless unless the test manager holds daily 
debriefings.” 
• Alternatives: “If you don’t need the metrics, you ditch the daily 
debriefings and the specifically formatted reports.”
• Agendas: “I run a testing business, specializing in exploratory testing.”
Critical Thinking For Testers.pdf ‐ 86
Critical Thinking for Testers Michael Bolton and James Bach
15
The Regression Testing Fantasy
“I rerun my old tests to ensure that nothing has broken.”
Critical Thinking For Testers.pdf ‐ 88
The Regression Testing Fantasy
“I rerun my old tests to ensure that nothing has broken.”
Critical Thinking For Testers.pdf ‐ 89
The Regression Testing Reality
“We run a smattering of old checks
to ensure that they still find no bugs...
And we assume that any bug not found
is also not important.”
Critical Thinking For Testers.pdf ‐ 90
Critical Thinking About Processes
• This is a description of a bug investigation process 
that a particular company uses.  Does it make sense?
See James Bach, Investigating Bugs: A Testing Skills Study 
http://www.satisfice.com/articles/investigating‐bugs.pdf
Critical Thinking For Testers.pdf ‐ 91
Part II:
Critical Thinking About Measurement
Critical Thinking For Testers.pdf ‐ 92
I Don’t Hate Numbers!
• I love numbers so much that I can’t stand to see them 
abused as they are by people in our profession.
• This workshop is designed to take you deeper into 
measurement, spotting critical thinking errors that might 
cause you to miss observations and mislead your client—or 
yourself.
• The intention is not only to suggest that measurement has 
problems, but also to expand our notions of what good 
measurement might be.
Imperfections in measurement are always a problem, but 
they’re a devastating problem
only when we don’t recognize them.
—Daniel Gilbert, Stumbling on Happiness
Critical Thinking For Testers.pdf ‐ 93
Critical Thinking for Testers Michael Bolton and James Bach
16
Example: A Test Project
Total Bugs
Reported
weeks weeks
190
4
15 2Critical Thinking For Testers.pdf ‐ 94
Example: A Test Project
• The original tester was faking it.
• A tiger team took over for the last 2 weeks.
• The reporting system broke down in the last 
several days before the beta was shipped. 
(That’s why the line goes flat–reports were still being 
prepared, but were not being formally logged in the 
tracking system.)
• Pay attention to the whole story.
• Don’t assume that all known
problems are being reported.
• Think critically about the numbers.
Lessons:
Critical Thinking For Testers.pdf ‐ 95
Exercise:  Evaluating Claims
• Choose a claim from the next slide, and write it 
down.
– Using a plausibility scale of 0‐100 (where 0 is ridiculous 
and 100 is absolutely true), what is your assessment of 
the claim?
– What is your thought process on encountering the 
claim?
– What might change your evaluation of the claim?
– Irrespective of your evaluation of the claim, what 
evidence would change your mind to the opposite 
polarity?
• That is, if you disbelieved the claim, what could make you 
believe it?  If you believed it, what could make you disbelieve 
it?
Critical Thinking For Testers.pdf ‐ 96
The Claims
• The average cost of correcting a bug during the coding 
phase is $977.
• Time and motion studies of actual defect repairs shows that 
fixing most bugs in code requires about four hours, 
regardless of whether the bug is found before or after 
release.
• Defect Removal Efficiency averages vary from 73% to 96% 
depending on organizations.
• The cost of defects rises exponentially the later they are 
detected.
• Software defects cost the US economy $60Bn annually.
• 25% of total defects are from bad fixes.
• The average time to find and fix a defect is 10 to 20 hours.
Critical Thinking For Testers.pdf ‐ 97
The Assignment
• Using a plausibility scale of 0‐100 (where 0 is 
ridiculous and 100 is absolutely true), what is your 
assessment of the claim?
• What is your thought process on encountering the 
claim?
• What might change your evaluation of the claim? 
How would you test your belief?
• Irrespective of your evaluation of the claim, what 
evidence would change your mind to the opposite 
polarity?
– That is, if you disbelieved the claim, what could make you 
believe it?  If you believed it, what could make you 
disbelieve it?
Critical Thinking For Testers.pdf ‐ 98
A Model for Evaluating Claims
Work still in progress!
Developed in collaboration with 
Laurent Bossavit
Critical Thinking For Testers.pdf ‐ 99
Critical Thinking for Testers Michael Bolton and James Bach
17
What is measurement?
Critical Thinking For Testers.pdf ‐ 100
What Is Measurement?
Source:  “Software Engineering Metrics:  What Do They Measure and How Do 
We Know?”  (Cem Kaner and Walter P. Bond)
http://www.kaner.com/pdfs/metrics2004.pdf
“Measurement is
the empirical, objective assignment of numbers,
according to a rule derived from a model or theory,
to attributes of objects or events
with the intent of describing them.”
—Cem Kaner and Walter P. Bond
What happens when we walk through that definition?
What do we need to think critically about?
What could go wrong?
Critical Thinking For Testers.pdf ‐ 101
Exercise
Identify and describe
factors in measurement.
Critical Thinking For Testers.pdf ‐ 102
Some measurement factors…
• Object or event
• Attribute(s) of that object or event
– measured / unmeasured
– observed / unobserved
• Measuring instrument(s)
• Metric (how numbers get assigned)
• Rule
• Model or theory
• Description
• Intention (inquiry or control?)
• Observation
• Observer
Critical Thinking For Testers.pdf ‐ 103
…and some more measurement factors…
• Scale
• Precision
• Accuracy
• Validity
• Reliability
• Sample size
• Sample selection
• Errors
Critical Thinking For Testers.pdf ‐ 104
Going deeper…
• People
– observers, consumers, subjects…
• System
– relationship of attributes, objects, and events to others
• Construct
– how to count to one
• Representation
– how the measurement is displayed and described
• Generalization
– how observations and conclusions might apply outside this 
context
• Inferences
– what conclusions we could draw from this measurement
Critical Thinking For Testers.pdf ‐ 105
Critical Thinking for Testers Michael Bolton and James Bach
18
Problems and Sources of Error
• Validity
– operationalization of constructs (“how to count to one”)
– relationship between what we’re measuring and what 
we think we’re measuring
– degree to which we’ve accounted for alternative 
interpretations for our observations and conclusions
• Reliability
– variations in attributes, instruments, observers
– influenced by context: time, place, motivations…
• Biases and fallacies
– too many to list here!  See (e.g.) Wikipedia
• Side effects
– distortion and dysfunction
– people will often behave to optimize things that are 
being measured, at the expense of things that are not
Critical Thinking For Testers.pdf ‐ 106
Objectivity, Reliability, Validity
• Objectivity is the simultaneous realization of 
as much reliability and validity as possible.
• Reliability is the degree to which the finding is 
independent of accidental circumstances of 
the research
• Validity is the degree to which the finding is 
interpreted in a correct way.
Kirk, Jerome, and Miller, Mark, Reliability and Validity in Qualitative Research
Critical Thinking For Testers.pdf ‐ 107
Three Important Kinds of Reliability
• Quixotic reliability
– the measurement yields consistent results in different 
circumstances
– could be the result of a broken instrument, or socially 
acceptable answers
• Diachronic reliability
– the measurement yields consistent results when taken 
multiple times
– only reliable for things that don’t change in a changing 
world; “may deny history”
• Synchronic reliability
– similarity of observations within the same time period
– reveals potentially significant questions when it fails
Kirk, Jerome, and Miller, Mark, Reliability and Validity in Qualitative Research
Critical Thinking For Testers.pdf ‐ 108
Construct Validity & External Validity
• Construct validity is (informally) the degree to which your 
attributes and measurements can justified within an experiment 
or observation
– How do you demarcate the difference between one of something and not‐
one of something?
– How do you know that you’re measuring what you think you’re 
measuring?
• External validity is the degree to which your experiment or 
observation can be generalized to the world outside
– How do you know that your experiment or observation will be relevant at 
other times or in other places?
“In the case of qualitative observations, the issue of validity is not a matter of
methodological hair-splitting about the fifth decimal point, but a question of whether
the researcher sees what he or she thinks he or she sees.”
Kirk, Jerome, and Miller, Mark, Reliability and Validity in Qualitative Research
Critical Thinking For Testers.pdf ‐ 109
Exercise
Analyse Kaner and Bond’s definition. 
How can we sharpen our analysis of 
a given measurement?
Critical Thinking For Testers.pdf ‐ 110
Exercise
Using Kaner and Bond’s questions,
analyze this statement:
“Defect Detection Efficiency is a good way to 
evaluate the performance of the testing group.” 
Critical Thinking For Testers.pdf ‐ 111
Critical Thinking for Testers Michael Bolton and James Bach
19
An Alternative View of Measurement
• Since the time of Aristotle (at least), we’ve known about two 
kinds of measurement that inform decisions
– “Two pounds of meat”
– “Too much”, “too little”, “just right”.
Measurement is the art and science
of making reliable and significant observations.
—Jerry Weinberg, Quality Software Management Vol. 2
We waste time and effort when we try to obtain
six‐decimal‐place answers to whole‐number questions.
• http://www.developsense.com/articles/2009‐05‐IssuesAboutMetricsAboutBugs.pdf
• http://www.developsense.com/articles/2009‐07‐ThreeKindsOfMeasurement.pdf
• http://www.developsense.com/articles/2007‐11‐WhatCounts.pdf
Critical Thinking For Testers.pdf ‐ 112
How Do We Measure?
• Third‐order measurement
– highly instrumented, used to 
discover natural laws
– “What will happen?  What always
happens?”
• Second‐order measurement
– often instrumented, used to 
refine first‐order observation
– used to tune existing systems
– “What’s really going on here? 
What’s happening right now?”
Critical Thinking For Testers.pdf ‐ 113
How Else Do We Measure?
• First‐order measurement
– minimal fuss, direct observation, minimal instrumentation
– used to inform a control action OR to prompt search for more refined 
information
– “What’s going on? What should we do? Where should we look?”
Weinberg suggests that, in software development, we’re obsessed with trying to 
make third‐ and second‐order measurements when first‐order measurements 
might be all we need—and tend to be much cheaper and easier.
Critical Thinking For Testers.pdf ‐ 114
Why Prefer First‐Order Measures?
• When you’re driving, are you mostly concerned about…
– your velocity, acceleration, vehicle mass, drag co‐efficient, frictional 
force? (third‐order)
– your engine temperature, RPMs, and current rate of gas consumption? 
(second‐order)
– looking out the window to avoid hitting things (first‐order)?
I’ve observed many projects that 
have crashed because managers 
were overly focused on the 
dashboard instead of the traffic 
and obstacles around them, and 
the road ahead.
What kind of driver
do you trust?
Critical Thinking For Testers.pdf ‐ 115
Control vs. Inquiry Measurement
• A control measurement is a 
measurement that drives decisions.
– Any measurement you use to control a 
self‐aware system will be used by that 
system to control YOU.
• An inquiry measurement is any 
measurement that helps you ask the 
right questions at the right time.
– Inquiry measurements are also vulnerable to 
gaming, but the stakes are far lower, so there’s 
less incentive for manipulation.
Text here is taken from the work of my colleague, James Bach.
http://www.satisfice.com
Critical Thinking For Testers.pdf ‐ 116
Control vs. Inquiry
• Remove control metrics that are linked to pay, 
bonuses, performance evaluation, etc.
– control metrics trigger some action, usually automatically
– a metric that is used to control something will eventually be 
used to control you
• Foster inquiry metrics
– inquiry metrics prompt us to ask questions
• Relax measurement when the metric stops changing
– if you’re not obtaining new information, try measuring 
something else of interest for a while
Critical Thinking For Testers.pdf ‐ 117
Critical Thinking for Testers Michael Bolton and James Bach
20
Kaner & Bond’s Tests for Construct Validity
from http://www.kaner.com/pdfs/metrics2004.pdf
• What is the purpose of your measurement? The scope?
• What is the attribute you are trying to measure?
• What are the scale and variability of this attribute?
• What is the instrument you’re using?  What is its scale and 
variability?
• What function (metric) do you use to assign a value to the 
attribute?
• What’s the natural scale of the metric?
• What is the relationship of the attribute to the metric’s value?
• What are the natural, foreseeable side effects of using this 
measure?
The essence of good measurement is a model that incorporates 
answers to questions like these.  
If you don’t have solid answers, you aren’t doing measurement; 
you are just playing with numbers.
Critical Thinking For Testers.pdf ‐ 118
Exercise
Apply critical thinking
to this statement:
“Management wants numbers.”
Critical Thinking For Testers.pdf ‐ 119
“Pass Rate” is a Popular Metric
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
2/1 2/8 2/15 2/22 3/1
Pass Rate
Pass Rate
Critical Thinking For Testers.pdf ‐ 120
Critical Thinking About Measurement
from an actual client
DER – Defect Escape Rate
The Defect Escape Rate measures the number of undiscovered 
defects that escaped detection in the product development cycle 
and were released to customers. An escape is a defect found 
while using a released product. DER is defined as:
DER= (Defect Escapes /Total Defects)∗100
DER is a lagging indicator of product quality. The number of 
escapes is always zero until after the product is released. It is 
reported as a percentage and a low number is desired. Each 
business unit has a target DER percentage and an Escape 
Analysis should be performed on each defect to improve test 
coverage. It is desirable for the DER for a product line to decline 
over time. See appendix for calculation details.
Look! Measurement!
What could possibly go wrong?
Critical Thinking For Testers.pdf ‐ 121
"But they ask us for numbers!"
What are they really asking for?
• “We want to know if we’re improving.”
• “We want to know if we’re happy.”
• “We want to know if we should be unhappy.”
Critical Thinking For Testers.pdf ‐ 122
"But they ask us for numbers!"
• Are they asking for specific numbers?
– Perform the Kaner/Bond checklist
– Offer a list of threats to validity
– Provide a number, and include commentary
Critical Thinking For Testers.pdf ‐ 123
Critical Thinking for Testers Michael Bolton and James Bach
21
"But they ask us for numbers!"
Are they asking for numbers?
– Offer an observation
• e.g. "cold enough to freeze the water in the bird bath"
– Offer a description
• e.g. a product status report; a coverage outline
– Offer a list
• e.g. a list of problems in the product; a list of project 
problems
– Offer a table
• e.g. time spent on classes of activities
– Offer a visual model
• e.g. diagrams of effects, Wiggle charts, mind maps…
– Offer a comparison or ranking
Critical Thinking For Testers.pdf ‐ 124
"But they ask us for numbers!"
• Prefer first‐order measurement
• Prefer measurement for inquiry to 
measurement for control
• Ask “compared to what?”
Critical Thinking For Testers.pdf ‐ 125
What could we measure?
Critical Thinking For Testers.pdf ‐ 126
Degrees of Coverage
Level 0 We don’t really know anything about this area. We’re aware 
that this area exists, but it’s a black box to us, so far.
Level 1 We’re just getting to know this area.  We’ve done basic 
reconnaissance; surveyed it; we’ve done smoke and sanity 
testing.  We may have some artifacts that represent our models, 
which will helps us to talk about them and go deeper.
Level 2 We’ve learned a good deal about this area. We’ve looked at the 
core and the critical aspects of it. We’ve done some significant 
tests focused on the most important quality criteria, and we’re 
collecting and diversifying our ideas on how to cover it deeply.
Level 3 We have a comprehensive understanding of this area. We’ve 
looked deeply into it from a number of perspectives, and applied 
a lot of different test techniques. We’ve done harsh, complex, 
and challenging tests on a wide variety of quality criteria.  If 
there were a problem or unrecognized feature in this area that 
we didn’t know about, it would be a big surprise.
Critical Thinking For Testers.pdf ‐ 127
Time Spent on Testing Work
Testing (T) Active test design; experimentation, interaction, learning 
about the product; increasing test coverage.
Bug (B) Study and investigation of bugs; finding repro steps; 
looking for similar bugs inside a session. B–time 
interrupts T‐time.
Setup (S) Work within a session to prepare for testing, to support 
it, or to follow up on it.  Setting up products, tools, 
environments; studying; analyzing non‐bug behaviour… 
S‐time interrupts T‐time.
Opportunity Work within a session that is NOT directed towards 
fulfilling the charter, but towards the general mission of 
testing. Chasing after a risk, helping other testers, testing 
while waiting for something else to happen… 
Non‐session Meetings, lunches, breaks, chat, work‐related or 
personal business done outside of a testing session. 
Critical Thinking For Testers.pdf ‐ 128
You can’t measure quality… but 
you can discuss it.
—James Bach
Critical Thinking For Testers.pdf ‐ 129
Critical Thinking for Testers Michael Bolton and James Bach
22
Appendices
Critical Thinking For Testers.pdf ‐ 130
Some Common Thinking Errors
• Reification Error
– giving a name to a concept, and then believing it has 
an objective existence in the world
– ascribing material attributes to mental constructs—
“that product has quality”
– mistaking relationships for things—“its purpose is…”
– purpose and quality are relationships, not attributes; 
they depend on the person
– how can we count ideas?  how can we quantify 
relationships?
Critical Thinking For Testers.pdf ‐ 131
Some Common Thinking Errors
• Fundamental Attribution Error
– “it always works that way”; “he’s a jerk”
– failure to recognize that circumstance and context 
play a part in behaviour and effects
• The Similarity‐Uniqueness Paradox
– “all companies are like ours”; “no companies are like 
ours”
– failure to consider that everything incorporates 
similarities and differences
• Missing Multiple Paths of Causation
– “A causes B” (even though C and D are also required)
Critical Thinking For Testers.pdf ‐ 132
Some Common Thinking Errors
• Assuming that effects are linear with causes
– “If we have 20% more traffic, throughput will slow 
by 20%”
– this kind of error ignores non‐linearity and 
feedback loops—c.f. general systems
• Reactivity Bias
– the act of observing affects the observed
– a.k.a. “Heisenbugs”, the Hawthorne Effect
• The Probabilistic Fallacy
– confusing unpredictability and randomness
– after the third hurricane hits Florida, is it time to 
relax?
Critical Thinking For Testers.pdf ‐ 133
Some Common Thinking Errors
• Binary Thinking Error / False Dilemmas
– “all manual tests are bad”; “that idea never works”
– failure to consider gray areas; belief that something is 
either entirely something or entirely not
• Unidirectional Thinking
– expresses itself in testing as a belief that “the 
application works”
– failure to consider the opposite: what if the 
application fails?
– to find problems, we need to be able to imagine that 
they might exist
Critical Thinking For Testers.pdf ‐ 134
Some Common Thinking Errors
• Availability Bias
– the tendency to favor prominent or vivid instances in 
making a decision or evaluation
– example:  people are afraid to fly, yet automobiles are 
far more dangerous per passenger mile
– to a tech support person (or to some testers), the 
product always seems completely broken
– spectacular failures often get more attention than 
grinding little bugs
• Confusing concurrence with correlation
– “A and B happen at the same time; they must be 
related”
Critical Thinking For Testers.pdf ‐ 135
Critical Thinking for Testers Michael Bolton and James Bach
23
Some Common Thinking Errors
• Nominal Fallacies
– believing that we know something well because we can 
name it
• “equivalence classes”
– believing that we don’t know something because we 
don’t have a name for it at our fingertips
• “the principle of concomitant variation”; “inattentional
blindness”
• Evaluative Bias of Language
– failure to recognize the spin of word choices
– …or an attempt to game it
– “our product is full‐featured; theirs is bloated”
Critical Thinking For Testers.pdf ‐ 136
Some Common Thinking Errors
• Selectivity Bias
– choosing data (beforehand) that fits your preconceptions 
or mission
– ignoring data that doesn’t fit
• Assimilation Bias
– modifying the data or observation (afterwards) to fit the 
model
– grouping distinct things under one conceptual umbrella
– Jerry Weinberg refers to this as “lumping”
– for testers, the risk is in identifying setup, pinpointing, 
investigating, reporting, and fixing as “testing”
Critical Thinking For Testers.pdf ‐ 137
Some Common Thinking Errors
• Narrative Bias
– a.k.a “post hoc, ergo propter hoc”
– explaining causation after the facts are in
• The Ludic Fallacy
– confusing complex human activities with random, 
roll‐of‐the‐dice games
– “Our project has a two‐in‐three chance of success”
• Confusing correlation with causation
– “When I change A, B changes; therefore A must be 
causing B”
Critical Thinking For Testers.pdf ‐ 138
Some Common Thinking Errors
• Automation bias
– people have a tendency to believe in results from an automated 
process out of all proportion to validity
• Formatting bias
– It’s more credible when it’s on a nicely formatted spreadsheet or 
document
– (I made this one up)
• Survivorship bias
– we record and remember results from projects (or people) who 
survived
– the survivors prayed to Neptune, but so did the sailors who died
– What was the bug rate for projects that were cancelled?
Critical Thinking For Testers.pdf ‐ 139
Critical Thinking About Projects
• “You will have five weeks to test the product”
5 weeks
Critical Thinking For Testers.pdf ‐ 140
Exercise
Events Testing
• You want to test the interaction between 
two potentially overlapping events.
• How would you test this?
time
Event A
Event B
Critical Thinking For Testers.pdf ‐ 141
Critical Thinking for Testers Michael Bolton and James Bach
24
Do you prefer A or B?
Imagine that the US is preparing for the outbreak of an unusual 
Asian disease, which is expected to kill 600 people. Two 
alternative programs to combat the disease have been 
proposed. Assume that the exact scientific estimates of the 
consequences of the programs are as follows.
Program A: If Program A is adopted, 200 people will be saved.
Program B: If Program B is adopted, there is 1/3 probability that 
600 people will be saved, and 2/3 probability that 
no people will be saved.
See Daniel Kahneman, Thinking Fast and Slow
Critical Thinking For Testers.pdf ‐ 142
Do you prefer C or D?
Imagine  two more programs to combat the disease are 
proposed:
Program C: If Program C is adopted, 400 people will die.
Program D: If Program D is adopted, there is 1/3 
probability that 600 people will be saved, and 2/3 
probability that 
no people will be saved.
Critical Thinking For Testers.pdf ‐ 143
A = C    B = D   A > B   D > C
Program A: If Program A is adopted, 200 people will be saved.
(3/4 surveyed prefer this to B)
Program B: If Program B is adopted, there is 1/3 probability that 
600 people will be saved, and 2/3 probability that 
no people will be saved.
Program C: If Program A is adopted, 400 people will die.
Program D: If Program B is adopted, there is 1/3 probability that 
600 people will be saved, and 2/3 probability that 
no people will be saved.
(3/4 surveyed prefer this to C)
Critical Thinking For Testers.pdf ‐ 144
Isn’t it all “just semantics”?
• What does “semantics” mean?
– Semantics is the branch of linguistics concerned with logic 
and meaning, so dismissing something as “semantics” is 
cool as long as logic and meaning don’t matter to you.
• How many “events” were there when the twin towers 
were hit?  Does it matter?
– To insurers and property owners (who were insured per 
event), it matters a great deal.
• What’s the difference between “ad hoc” testing and 
“exploratory testing”?  Don’t they mean the same 
thing?
– We can tell you what the structures and skills of 
exploratory testing are. Can you tell us what the structures 
skills of “ad hoc” testing are?
Critical Thinking For Testers.pdf ‐ 145
Tacit vs. Explicit Knowledge
• Explicit knowledge is knowledge that has been 
told
• Tacit knowledge comes in three forms
– Relational (“weak”) tacit knowledge: knowledge, 
residing in a human mind, that could be told, but 
has not been for various reasons
– Somatic (“medium”) tacit knowledge: knowledge 
that comes from residing in a human body
– Collective (“strong”) tacit knowledge: knowledge 
that is embodied in society
See Harry Collins, Tacit and Explicit Knowledge
Critical Thinking For Testers.pdf ‐ 146
The Role of Tacit Knowledge
• Although people tend to favour the explicit 
(because we can talk about it relatively easily), 
much of what we do in testing is based on 
using and developing tacit knowledge.
• A key problem with test‐case‐focused testing 
is that much of the tacit knowledge necessary 
for excellent testing cannot be encoded.
What are the elements of tacit knowledge in 
your testing?  What parts can be made explicit?
What parts cannot?
Critical Thinking For Testers.pdf ‐ 147
Critical Thinking for Testers Michael Bolton and James Bach
25
Conditional Probability
Reasoning about it is HARD.
Unhappy
test result
Thesepeoplehavethedisease
These people are fine.Happy
test result
These people are fine too.
9990
.99
10
.01
Critical Thinking For Testers.pdf ‐ 148
Conditional Probability
Uh-oh.
Yay!But…Ooops.Missedit.
No problemo.Yay!
Sorry we freaked you out.
Bad
news.
Try considering the number of people in the overall population who have 
the disease BEFORE considering the test result.
Critical Thinking For Testers.pdf ‐ 149
Would banning fighting reduce 
hockey injuries?
• [a] study analyzed approximately 1,410 NHL games 
during 30 randomly selected weeks between the 2009‐
10 and 2011‐12 seasons. It found that 8.8 concussions 
or suspected concussions occurred per 100 NHL 
games. Of these injuries, 0.8 of a concussion per 100 
games was attributed to fighting and the other eight 
were caused by a variety of means, the most common 
of which were “Bodychecking with head contact” and 
“Bodychecking with no head contact.”
• The study found that a player was more likely to suffer 
a concussion by getting hit in the face by a puck than 
by fighting.
Critical Thinking For Testers.pdf ‐ 150
Do you agree?
• “It is clear that we could immediately eliminate the 
0.8 of a fight per 100 games if fighting were banned 
from the NHL. But… the elimination of fighting will 
lead to more reckless and dangerous actions on the 
ice. Those other eight concussions per 100 games are 
going to increase, perhaps dramatically.”
Bobby Smith, The Globe and Mail
http://www.theglobeandmail.com/sports/hockey/end‐to‐
fighting‐would‐not‐make‐hockey‐a‐safer‐
game/article29300049/
How would you test this statement?
Critical Thinking For Testers.pdf ‐ 151

More Related Content

Similar to Ma 15

How to get what you really want from Testing' with Michael Bolton
How to get what you really want from Testing' with Michael BoltonHow to get what you really want from Testing' with Michael Bolton
How to get what you really want from Testing' with Michael BoltonTEST Huddle
 
Rapid Software Testing: Strategy
Rapid Software Testing: StrategyRapid Software Testing: Strategy
Rapid Software Testing: StrategyTechWell
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing ExplainedTechWell
 
spine = .53”261356 • MS PRESS • D1.4 • 7-12-06 • CCCTAY C.docx
spine = .53”261356 • MS PRESS • D1.4 • 7-12-06 • CCCTAY C.docxspine = .53”261356 • MS PRESS • D1.4 • 7-12-06 • CCCTAY C.docx
spine = .53”261356 • MS PRESS • D1.4 • 7-12-06 • CCCTAY C.docxwilliame8
 
Rapid software testing
Rapid software testingRapid software testing
Rapid software testingSachin MK
 
CTO Universe Leadership Series: More Effective Agile Leadership
CTO Universe Leadership Series: More Effective Agile LeadershipCTO Universe Leadership Series: More Effective Agile Leadership
CTO Universe Leadership Series: More Effective Agile LeadershipAggregage
 
SpatzAI Empowering Bold Idea Sharing, Spat by Spat
SpatzAI Empowering Bold Idea Sharing, Spat by SpatSpatzAI Empowering Bold Idea Sharing, Spat by Spat
SpatzAI Empowering Bold Idea Sharing, Spat by SpatDesmond Sherlock
 
Business Analyst Interview Questions with Answers
Business Analyst Interview Questions with AnswersBusiness Analyst Interview Questions with Answers
Business Analyst Interview Questions with AnswersMaria FutureThoughts
 
Conrad_Business_Proposal-2
Conrad_Business_Proposal-2Conrad_Business_Proposal-2
Conrad_Business_Proposal-2Dan Conrad
 
Global Product Management Talk on Chaos To Clarity: Managing The Unmanageable...
Global Product Management Talk on Chaos To Clarity: Managing The Unmanageable...Global Product Management Talk on Chaos To Clarity: Managing The Unmanageable...
Global Product Management Talk on Chaos To Clarity: Managing The Unmanageable...Startup Product Academy, LLC
 
Rapid Software Testing: Strategy
Rapid Software Testing: StrategyRapid Software Testing: Strategy
Rapid Software Testing: StrategyTechWell
 
Getting to better problems
Getting to better problemsGetting to better problems
Getting to better problemsAllison Pollard
 
The Lean Startup Method and Its Value for Testers
The Lean Startup Method and Its Value for TestersThe Lean Startup Method and Its Value for Testers
The Lean Startup Method and Its Value for TestersJosiah Renaudin
 
Micro-Coaching: The Impact of Continuous, Short and Instant Learning and Feed...
Micro-Coaching: The Impact of Continuous, Short and Instant Learning and Feed...Micro-Coaching: The Impact of Continuous, Short and Instant Learning and Feed...
Micro-Coaching: The Impact of Continuous, Short and Instant Learning and Feed...BizLibrary
 
SpatzAI powering Bold Idea Sharing Spat by Spat
SpatzAI powering Bold Idea Sharing Spat by SpatSpatzAI powering Bold Idea Sharing Spat by Spat
SpatzAI powering Bold Idea Sharing Spat by SpatDesmond Sherlock
 
Why Software Drives Us Crazy
Why Software Drives Us CrazyWhy Software Drives Us Crazy
Why Software Drives Us CrazyTechWell
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingTechWell
 
Facebook's Official Guide to Technical Program Management Candidates
Facebook's Official Guide to Technical Program Management CandidatesFacebook's Official Guide to Technical Program Management Candidates
Facebook's Official Guide to Technical Program Management CandidatesLewis Lin 🦊
 
SpatzAI - Powering Bold Idea Sharing Spat by Spat
SpatzAI - Powering Bold Idea Sharing Spat by SpatSpatzAI - Powering Bold Idea Sharing Spat by Spat
SpatzAI - Powering Bold Idea Sharing Spat by SpatDesmond Sherlock
 

Similar to Ma 15 (20)

How to Avoid Poor Quality with Dedicated Teams
How to Avoid Poor Quality with Dedicated TeamsHow to Avoid Poor Quality with Dedicated Teams
How to Avoid Poor Quality with Dedicated Teams
 
How to get what you really want from Testing' with Michael Bolton
How to get what you really want from Testing' with Michael BoltonHow to get what you really want from Testing' with Michael Bolton
How to get what you really want from Testing' with Michael Bolton
 
Rapid Software Testing: Strategy
Rapid Software Testing: StrategyRapid Software Testing: Strategy
Rapid Software Testing: Strategy
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing Explained
 
spine = .53”261356 • MS PRESS • D1.4 • 7-12-06 • CCCTAY C.docx
spine = .53”261356 • MS PRESS • D1.4 • 7-12-06 • CCCTAY C.docxspine = .53”261356 • MS PRESS • D1.4 • 7-12-06 • CCCTAY C.docx
spine = .53”261356 • MS PRESS • D1.4 • 7-12-06 • CCCTAY C.docx
 
Rapid software testing
Rapid software testingRapid software testing
Rapid software testing
 
CTO Universe Leadership Series: More Effective Agile Leadership
CTO Universe Leadership Series: More Effective Agile LeadershipCTO Universe Leadership Series: More Effective Agile Leadership
CTO Universe Leadership Series: More Effective Agile Leadership
 
SpatzAI Empowering Bold Idea Sharing, Spat by Spat
SpatzAI Empowering Bold Idea Sharing, Spat by SpatSpatzAI Empowering Bold Idea Sharing, Spat by Spat
SpatzAI Empowering Bold Idea Sharing, Spat by Spat
 
Business Analyst Interview Questions with Answers
Business Analyst Interview Questions with AnswersBusiness Analyst Interview Questions with Answers
Business Analyst Interview Questions with Answers
 
Conrad_Business_Proposal-2
Conrad_Business_Proposal-2Conrad_Business_Proposal-2
Conrad_Business_Proposal-2
 
Global Product Management Talk on Chaos To Clarity: Managing The Unmanageable...
Global Product Management Talk on Chaos To Clarity: Managing The Unmanageable...Global Product Management Talk on Chaos To Clarity: Managing The Unmanageable...
Global Product Management Talk on Chaos To Clarity: Managing The Unmanageable...
 
Rapid Software Testing: Strategy
Rapid Software Testing: StrategyRapid Software Testing: Strategy
Rapid Software Testing: Strategy
 
Getting to better problems
Getting to better problemsGetting to better problems
Getting to better problems
 
The Lean Startup Method and Its Value for Testers
The Lean Startup Method and Its Value for TestersThe Lean Startup Method and Its Value for Testers
The Lean Startup Method and Its Value for Testers
 
Micro-Coaching: The Impact of Continuous, Short and Instant Learning and Feed...
Micro-Coaching: The Impact of Continuous, Short and Instant Learning and Feed...Micro-Coaching: The Impact of Continuous, Short and Instant Learning and Feed...
Micro-Coaching: The Impact of Continuous, Short and Instant Learning and Feed...
 
SpatzAI powering Bold Idea Sharing Spat by Spat
SpatzAI powering Bold Idea Sharing Spat by SpatSpatzAI powering Bold Idea Sharing Spat by Spat
SpatzAI powering Bold Idea Sharing Spat by Spat
 
Why Software Drives Us Crazy
Why Software Drives Us CrazyWhy Software Drives Us Crazy
Why Software Drives Us Crazy
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software Testing
 
Facebook's Official Guide to Technical Program Management Candidates
Facebook's Official Guide to Technical Program Management CandidatesFacebook's Official Guide to Technical Program Management Candidates
Facebook's Official Guide to Technical Program Management Candidates
 
SpatzAI - Powering Bold Idea Sharing Spat by Spat
SpatzAI - Powering Bold Idea Sharing Spat by SpatSpatzAI - Powering Bold Idea Sharing Spat by Spat
SpatzAI - Powering Bold Idea Sharing Spat by Spat
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 
Scale: The Most Hyped Term in Agile Development Today
Scale: The Most Hyped Term in Agile Development TodayScale: The Most Hyped Term in Agile Development Today
Scale: The Most Hyped Term in Agile Development TodayTechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 
Scale: The Most Hyped Term in Agile Development Today
Scale: The Most Hyped Term in Agile Development TodayScale: The Most Hyped Term in Agile Development Today
Scale: The Most Hyped Term in Agile Development Today
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 

Ma 15

  • 1. MA Full-day Tutorials Monday, April 30th, 2018 8:30 AM Critical Thinking for Software Testers Presented by: Michael Bolton DevelopSense Brought to you by: 350 Corporate Way, Suite 400, Orange Park, FL 32073 888---268---8770 ·· 904---278---0524 - info@techwell.com - http://www.stareast.techwell.com/
  • 2. Michael Bolton DevelopSense Michael Bolton is a consulting software tester and testing teacher who helps people solve testing problems that they didn’t realize they could solve. He is the co-author (with senior author James Bach) of Rapid Software Testing, a methodology and mindset for testing software expertly and credibly in uncertain conditions and under extreme time pressure. With twenty-five years of experience testing, developing, managing, and writing about software, Michael has led DevelopSense, a Toronto-based testing and development consultancy, for the past fifteen years. Previously, he was with Quarterdeck Corporation where he managed the company’s flagship products and directed project and testing teams both in-house and worldwide. Contact Michael at michael@developsense.com, on Twitter, or through his website.
  • 3. Critical Thinking for Testers Michael Bolton and James Bach 1 Critical Thinking for Testers James Bach http://www.satisfice.com james@satisfice.com Twitter: @jamesmarcusbach Michael Bolton http://www.developsense.com michael@developsense.com Twitter: @michaelbolton +1 (416) 992‐8378 namespace ‘Rapid Software Testing’; We don’t claim to present “a common language for software  testing.” We believe that any such claim is nonsensical. But  within this class and the RST methodology, we, as authors, can  declare authority.  We have no authority over the words you  use except within RST. That said, we choose our words very carefully, and discuss  them with others in order to sharpen our thinking and to  reduce the chance of misunderstanding. We encourage you to  do that within your context. Critical Thinking For Testers.pdf ‐ 2 It’s easy to get the right answer  for a simple problem. (Whenever you see a title slide like  this one, think critically about it.) Critical Thinking For Testers.pdf ‐ 3 Simple Problems Daniel Kahneman Thinking Fast and Slow Critical Thinking For Testers.pdf ‐ 4 A Simple Puzzle “Steve, an American man, is very shy and withdrawn, invariably helpful but with little interest in people or in the world of reality. A meek and tidy soul, he has a need for order and structure, and a passion for detail.” Is Steve more likely to be a librarian? a farmer? Daniel Kahneman Thinking Fast and Slow People shouldn’t argue about  semantics. Critical Thinking For Testers.pdf ‐ 8
  • 4. Critical Thinking for Testers Michael Bolton and James Bach 2 One Event or Two? Steven Pinker The Stuff of Thought: Language as a Window into Human Nature Image Credit: www.theatlantic.com Critical Thinking For Testers.pdf ‐ 9 Is a Burrito a Sandwich? Roy Sorenson A Cabinet of Philosophical Curiosities Image Credit: www.dreamstime.com Critical Thinking For Testers.pdf ‐ 10 Wait, let’s try something really simple… Can we agree? Can we share common ground? “There are four geometric figures on this slide.” “There is one square among those figures.” “The square is shaded in blue.” Critical Thinking For Testers.pdf ‐ 11 Beware of Shallow Agreement! Wait, let’s try something really simple… Critical Thinking For Testers.pdf ‐ 12 Some bugs are obvious. Critical Thinking For Testers.pdf ‐ 13 Do You See a Bug? Critical Thinking For Testers.pdf ‐ 14
  • 5. Critical Thinking for Testers Michael Bolton and James Bach 3 Bugs are really problems in logic. Critical Thinking For Testers.pdf ‐ 16 What are We Seeing Here? • Mental models and modeling are often  dominated by unconscious factors. • Familiar environments and technologies allow  us to “get by” on memory and habit. • Social conventions may cause us to value  politeness over doing our disruptive job. • Lack of pride and depth in our identity as  testers may sap our motivation to think better. Critical Thinking For Testers.pdf ‐ 17 The Nature of Critical Thinking • “Critical thinking is purposeful, self‐regulatory  judgment which results in interpretation,  analysis, evaluation, and inference, as well as  explanation of the evidential, conceptual,  methodological, criteriological, or contextual  considerations upon which that judgment is  based.” ‐ Critical Thinking: A Statement of Expert Consensus for Purposes  of Educational Assessment and Instruction, Dr. Peter Facione (Critical thinking is, for the most part, about getting all the benefits of  your “System 1” thinking reflexes while avoiding self‐deception and  other mistakes—including overdependence on System 2.) Critical Thinking For Testers.pdf ‐ 18 Bolton’s Definition of Critical Thinking • Michael Bolton Testing is enactment of critical thinking about software to  help people make better decisions. Critical thinking must begin with our belief in the  likelihood of errors in our thinking. Critical Thinking For Testers.pdf ‐ 19 To What Do We Apply Critical Thinking? • The Product • What it is • Descriptions of what it is • Descriptions of what it does • Descriptions of what it's supposed to be • Testing • Context • Procedures • Coverage • Oracles • Strategy • The Project • Schedule • Infrastructure • Processes • Social orders • Words • Numbers • Language • Pictures • Problems • Biases • Logical fallacies • Evidence • Causation • Observations • Learning • Design • Behavior • Models • Measurement • Heuristics • Methods • … Critical Thinking For Testers.pdf ‐ 20
  • 6. Critical Thinking for Testers Michael Bolton and James Bach 4 Reflex is IMPORTANT But Critical Thinking is About Reflection REFLEX REFLECTION Faster Looser Slower Surer System 2 System 1 See Thinking Fast and Slow, by Daniel Kahneman Critical Thinking For Testers.pdf ‐ 21 Why You Should Care Technology is way more tricky than regular life. • Bugs exist in software because of bugs in the way  people observe, model, think, and decide—and many  of these bugs used to be features, for individuals or  for humanity, at some point. • People hire testers to help inform decisions about  software products and projects. • So testers are not supposed to get tricked. Wason Critical Thinking For Testers.pdf ‐ 22 Themes • Technology consists of complex and ephemeral relationships that  can seem simple, fixed, objective, and dependable even when  they aren’t. • Testers are people who ponder and probe complexity. • Basic testing is a straightforward technical process. • But, excellent testing is a difficult social and psychological process  in addition to the technical stuff. A tester is someone who knows that things can be different. Jerry Weinberg Critical Thinking For Testers.pdf ‐ 23 Bugs in our Approaches: Calculator Test “I was carrying a calculator. I dropped it! Perhaps it is damaged! What might you do to test it?” Critical Thinking For Testers.pdf ‐ 24 Critical Thinking For Testers.pdf ‐ 25 and dry it out before attempting to test it. When did I drop it? Was I in the middle of a calculation? If so part of my testing might be to visually inspect  the status of the display to determine whether the calculator appears to still be in the state it was at the  time I dropped it. If so, I might continue the calculation from that point, unless I believe that the drop  probably damaged the calculator. Did I drop it on a hard surface with a force that makes me suspect internal damage? If so then I would  expect possible hairline fractures. I imagine that would lead to intermittent or persistent short circuits or  broken circuits. I also suspect damage to moving parts, battery or solar cell connections, or screen. Did I drop it into a destructive chemical environment? If so, I might worry more about the progressive  decay of the components. Did I drop it into a dangerous biological or radiological environment? If so, the functions of the calculator  maybe less concern than contaminants. I may have to test it with a Geiger counter. Was the calculator connected to anything else whereby the connection (data cable or AC/cable or duct  tape that fastened it to a Faberge egg) could have been damaged, or could have damaged the thing it was  connected to? Did I detect anything while it was dropping that leads me to suspect any damage in particular (e.g. an  electrical flash, or maybe a loud popping sound)? Am I aware of a history of "drop" related problems with this calculator? Have I ever dropped it before? Is the calculator ruggedized? Is it designed to be dropped in this way? What is my relationship to this calculator? Is it mine or someone else's?  Maybe I'm just borrowing it. What is the value of this calculator. I assume that this is not a precious artifact from a museum. The  exercise as presented appears to be about a calculator as calculating machine, rather than as a precious  Minoan urn that happens to have calculator functions built into it. h h l l f ? f ' f f b bl
  • 7. Critical Thinking for Testers Michael Bolton and James Bach 5 Never make assumptions. Critical Thinking For Testers.pdf ‐ 27 Assumptions vs. Inferences • An inference is something we treat as true based on evidence. • An assumption is a something that we treat as true even though  we have insufficient evidence. • A premise is an assumption that begins a chain of reasoning. All  logic is based on premises. • Testers question assumptions & premises and gather data for  better inferences. Assumption Inference weak inference plausible assumption Critical Thinking For Testers.pdf ‐ 28 Exercise What makes an assumption more dangerous? • Not “what specific assumptions are more  dangerous?”… • But “what factors would make one  assumption more dangerous than another?” • Or “what would make the same assumption  more dangerous from one time to the next?” Critical Thinking For Testers.pdf ‐ 29 What makes an assumption more dangerous? 1. Consequential: required to support critical plans and activities. Changing the  assumption would change important behavior. 2. Unlikely: may conflict with other assumptions or evidence that you have. The  assumption is counter‐intuitive, confusing, obsolete, or has a low probability of  being true. 3. Blind: regards a matter about which you have no evidence whatsoever. 4. Controversial: may conflict with assumptions or evidence held by others. The  assumption may ignore controversy. 5. Impolitic: expected to be declared, by social convention. Failing to disclose the  assumption violates law or local custom. 6. Volatile: regards a matter that is subject to sudden or extreme change. The  assumption may be invalidated unexpectedly and explosively. 7. Unsustainable: may be hard to maintain over a long period of time. To be  sustainable, the assumption and its context must be stable. 8. Premature: regards a matter about which you don’t yet need to assume. 9. Narcotic: any assumption that comes packaged with assurances of its own  safety, making us go to sleep—and maybe becoming addictive. 10. Latent: Otherwise critical assumptions that we have not yet identified and dealt  with.  The act of managing assumptions can make them less critical. Critical Thinking For Testers.pdf ‐ 30 Levels of Assumptions Reckless Assumptions that are too risky regardless of how they are  managed. Obviously bad assumptions. Don’t make them. Risky Assumptions that might be wrong or cause trouble, but can  be okay with proper management. If you use them, declare  them. Safe Assumptions that are acceptable to make without any  special management or declaration, but still might cause  trouble. Required Assumptions so safe that they cause trouble only IF you  manage them, because people will think you are joking,  crazy, or insulting. It is silly to say “don’t make assumptions.”  Instead, say “let’s be careful about risky assumptions  and avoid the reckless ones.” Critical Thinking For Testers.pdf ‐ 31 Remember to keep your eye on the ball. Critical Thinking For Testers.pdf ‐ 32
  • 8. Critical Thinking for Testers Michael Bolton and James Bach 6 Bugs in Observation Critical Thinking For Testers.pdf ‐ 33 Experience is the best teacher. Critical Thinking For Testers.pdf ‐ 34 Bugs in Our Models of the World • Every day the turkey adds one more data  point to his analysis proving that the farmer  LOVES turkeys. • Hundreds of observations support his theory. • Then, a few days before Thanksgiving… Graph of My Fantastic Life! Page 25! (by the most intelligent Turkey in the world) WellBeing! DATA ESTIMATED POSTHUMOUSLY AFTER THANKSGIVING “Corn meal a little off today!” Critical Thinking For Testers.pdf ‐ 35 Don’t Be A Turkey! • No experience of the past can LOGICALLY be  projected into the future, because we have no  experience OF the future. • No big deal in a world of stable, simple  patterns. • BUT SOFTWARE IS NEITHER STABLE NOR SIMPLE. • “PASSING” TESTS CANNOT PROVE SOFTWARE GOOD. Based on a story told by Nassim Taleb, who stole it from Bertrand  Russell, who stole it from David Hume. Critical Thinking For Testers.pdf ‐ 36 Cognitive biases are bad. Let’s go out and find a few. Critical Thinking For Testers.pdf ‐ 37 Features? • Cognitive biases help us with problems! –Too much information –Not enough meaning –Need to act fast –What should we remember Remember these four problems! See Buster Benson, “Cognitive Bias Cheat Sheet” https://betterhumans.coach.me/cognitive‐bias‐cheat‐sheet‐55a472476b18#.63xoq03zx Critical Thinking For Testers.pdf ‐ 38
  • 9. Critical Thinking for Testers Michael Bolton and James Bach 7 Or Bugs? • Cognitive biases lead us astray! –We don’t see everything –Our search for meaning can conjure illusions –Quick decisions can be seriously flawed –Our memory reinforces errors Remember these four consequences of our brain’s problem-solving strategies! See Buster Benson, “Cognitive Bias Cheat Sheet” https://betterhumans.coach.me/cognitive‐bias‐cheat‐sheet‐55a472476b18#.63xoq03zx Critical Thinking For Testers.pdf ‐ 39 Exercise   Think critically about this statement: “Automated testing allows more time  for testers to do manual testing.” Critical Thinking For Testers.pdf ‐ 40 Bugs in our Models of Testing: Is this what you do? described actual “Compare the product to its specification” Critical Thinking For Testers.pdf ‐ 41 This is more like what testers really do imagined actualdescribed “Compare the idea of the product to a description of it” “Compare the actual product to a description of it” “Compare the idea of the product to the actual product” Critical Thinking For Testers.pdf ‐ 42 And this is what you find… The designer INTENDS the product to be  Firefox compatible,  but never says so, and it actually is not. The designer INTENDS the product to  be Firefox compatible, SAYS SO IN  THE SPEC,  but it actually is not. The designer assumes the product is not Firefox compatible,  and it actually is not, but the ONLINE  HELP SAYS IT IS. The designer INTENDS the product to be Firefox compatible,  SAYS SO,  and IT IS. The designer assumes the product is not  Firefox compatible,  but it ACTUALLY IS, and the ONLINE  HELP SAYS IT IS. The designer INTENDS the product to be Firefox compatible, MAKES IT FIREFOX COMPATIBLE,  but forgets to say so in the spec. The designer assumes the product is not Firefox compatible, and no one claims that it is,  but it ACTUALLY IS. Critical Thinking For Testers.pdf ‐ 43 Shallow testing is tractable at a close critical distance, whereas deeper or naturalistic long‐form testing  tends to require or create more distance from the builder’s mindset. Critical Distance “Critical Distance” refers to the difference between one perspective and another.  Testing benefits from diverse perspectives. Critical Thinking For Testers.pdf ‐ 44
  • 10. Critical Thinking for Testers Michael Bolton and James Bach 8 A Central Obstacle Divides Software Work Mt. Mindset NOTE: We do NOT claim that this work must be done by different people, or  that the people must have different roles. We DO claim that roles on a  development team (collaborating with each other) are a powerful heuristic for  solving the mindset switching problem. Developer skill focus Tester skill focus Business analyst skill focus Critical Thinking For Testers.pdf ‐ 45 Questions for Testers and their Clients • How should we test this product? • Where should we look for bugs? • Are there bugs here? • Do those bugs matter? • Whose decides? Whose values matter? • Are we ready to ship? • What might be getting in the way of testing  work, or slowing me down? • How might we be fooling ourselves? Critical Thinking For Testers.pdf ‐ 46 Bugs in our Models of Testing: Call this “Checking”, not Testing Observe Evaluate Report Interact with the  product in specific  ways to collect  specific  observations. Apply algorithmic decision rules to those  observations. Report any  failed checks. means operating a product  to check specific  facts about it… Critical Thinking For Testers.pdf ‐ 47 A check can be performed… by a human who has  been instructed not to  think (and who is slow  and variable) by a machine that can’t think (but that is quick and  precise) Critical Thinking For Testers.pdf ‐ 48 Acquiring the competence, motivation, and credibility for… Testing Is Learning About a Product creating the conditions necessary for… …so that you can help your clients to make  informed decisions about risk. evaluating a product by learning about it through exploration and experimentation,  which includes to some degree: questioning, study, modeling, observation and inference, including… operating a product  algorithmically to check  specific facts about it… Critical Thinking For Testers.pdf ‐ 49 Heuristics bring useful structure to problem‐solving skill. “a fallible means of solving a problem” • a heuristic is not a rule • a heuristic can work but might fail “The engineering method is the use of heuristics to cause the best change in a poorly understood situation within the available resources.” Billy Vaughan Koen  Discussion of the Method See “Heuristics for Understanding Heuristics” http://www.developsense.com/blog/2012/04/heuristics‐for‐understanding‐heuristics/ Critical Thinking For Testers.pdf ‐ 50
  • 11. Critical Thinking for Testers Michael Bolton and James Bach 9 • You may not understand. (errors in interpreting  and modeling a situation, communication errors) • What you understand may not be true. (missing  information, observations not made, tests not run) • You may not know the whole story. (perhaps what  you see is not all there is) • The truth may not matter, or may matter much  more than you think. (poor understanding of risk) Workarounds for Our Bugs: Introducing Pauses Giving System 2 time to wake up! Huh ?Really? And? So? Critical Thinking For Testers.pdf ‐ 51 “Huh?” Critical Thinking About Words • Among other things, testers question premises. • A suppressed premise is an unstated premise that  an argument needs in order to be logical.  • A suppressed premise is something that should  be there, but isn’t… • (…or is there, but it’s invisible or implicit.) • Among other things, testers bring suppressed  premises to light and then question them. • A diverse set of models can help us to see the  things that “aren’t there.” Critical Thinking For Testers.pdf ‐ 52 Test Framing • Test framing is the set of logical connections  that structure and inform a test and its result • The framing of a test consists of  – premises; essentially ordinary statements – logical “connectors” • formal:  if, then, else, and, or • informal: although, maybe,   • A change in ONE BIT in the framing of the test  can invert its result. Critical Thinking For Testers.pdf ‐ 87 Exercise:  Test Framing • “We executed 20 test cases this week.  There are  120 test cases remaining.  Therefore we will be  finished testing in six weeks.” “I performed the tests. All my tests passed.  Therefore, the product works.” • “The programmer said he fixed the bug. I can’t  reproduce it anymore. Therefore it must be fixed.” • “Microsoft Word frequently crashes while I am  using it. Therefore it’s a bad product.” • “It’s way better to find bugs earlier than to find  them later.” Critical Thinking For Testers.pdf ‐ 53 Treating absolute statements as heuristics helps to  defend you against critical thinking errors. And yes, that’s a heuristic. Grand Truth? Rule?  Or Heuristic? “"It is generally accepted that it is more difficult for an author to find defects in their own work than it is for an independent tester to find the same defects." Use “Huh?  Really?  And?  So?” to critique this sentence: Critical Thinking For Testers.pdf ‐ 54 • Selectively emphasize each word in a  statement; also consider alternative meanings. MARY had a little lamb. Mary HAD a little lamb. Mary had A little lamb. Mary had a LITTLE lamb. Mary had a little LAMB. Example: Generating Interpretations Critical Thinking For Testers.pdf ‐ 55
  • 12. Critical Thinking for Testers Michael Bolton and James Bach 10 “Really?” The Data Question What did you see or hear (or smell, or taste, or touch) that made you believe...? Critical Thinking For Testers.pdf ‐ 56 Really? Says Who? Critical Thinking About Research • Research varies in quality • Research findings often contradict one another • Research findings do not prove conclusions • Researchers have biases • Writers and speakers may simplify or distort • “Facts” change over time • Research happens in specific environments • Human desires affect research outcomes Asking the Right Questions:  A Guide to Critical Thinking M. Neil Browne & Stuart M. Keeley ALL of these things apply to testing, too. Critical Thinking For Testers.pdf ‐ 58 “And?” A vs. THE • Example:  “THE problem…” instead of “A problem…” • Using “A” instead of “THE” helps us to avoid several  kinds of critical thinking errors – single path of causation – confusing correlation and causation – single level of explanation Whatever we’re focused on may be only one of  several things we COULD focus on. Critical Thinking For Testers.pdf ‐ 59 “And?” Unless… • When someone asks a question based on a false  or incomplete premise, try adding “unless…” to  the premise • When someone offers a Grand Truth about  testing, append “unless…” or “except when…” Whatever is true under these conditions may  not be true under other conditions. Critical Thinking For Testers.pdf ‐ 60 “And?” Also… • The product gives the correct result! Yay! • …It also may be silently deleting system files. • There may be more where that come from. Whatever is happening, something else may ALSO be happening. Critical Thinking For Testers.pdf ‐ 61 Whatever is true now may not be true for long. “And?” “So far” & “Not yet” • The product works… so far. • We haven’t seen it fail… yet. • No customer has complained… yet. • Remember: There is no test for ALWAYS. Critical Thinking For Testers.pdf ‐ 62
  • 13. Critical Thinking for Testers Michael Bolton and James Bach 11 Whatever your theory about “what is”, other theories  could describe “what is” as well, or better. “And?” “What else?” • The Rule of Three: if you haven’t thought of at  least three plausible and non‐trivial  interpretations of what you’ve taken in, you  probably haven’t thought enough. – Jerry Weinberg • See also How Doctors Think, Dr. Jerome  Groopman Critical Thinking For Testers.pdf ‐ 63 You’re rarely looking at the whole thing; far more  often at a model or sample.  What’s missing? “And?” “What’s missing?” Section of the plane Bullet holes per square foot Engine 1.11 Fuselage 1.73 Fuel system 1.55 Rest of the plane 1.8 U.S. airplanes returning from engagements over Europe, WWII Jordan Ellenberg, How Not To Be Wrong Beware of “random” samples that only look random! Critical Thinking For Testers.pdf ‐ 64 “So?” Critical Thinking About Risk “The system shall operate at an input voltage range  of nominal 100 ‐ 250 VAC.” “Try it with an input voltage in the range of 100-250.” Poor answer: How do you test this? Critical Thinking For Testers.pdf ‐ 65 Heuristic Model: The Four‐Part Risk Story • Victim: Someone that experiences the impact of a problem.  Ultimately no bug can be important unless it victimizes a human.  • Problem: Something the product does that we wish it wouldn’t do.  • Vulnerability: Something about the product that causes or allows  it to exhibit a problem, under certain conditions. • Threat: Some condition or input external to the product that, were it  to occur, would trigger a problem in a vulnerable product. Some person may be hurt or annoyed because of something that might go wrong while operating the product,  due to some vulnerability in the product that is triggered by some threat.  Critical Thinking For Testers.pdf ‐ 66 How Do We Know What “Is”? “We know what is because we see what is.” We believe  we know what is because we see  what we interpret as signs that indicate  what is  based on our prior beliefs about the world and our (un)awareness of things around us. Critical Thinking For Testers.pdf ‐ 67 How Do We Know What “Is”? “If I see X, then probably Y, because probably A, B, C, D, etc.” • THIS CAN FAIL: – Ice cream that wasn’t – Getting into a car– oops, not my car. – Bad driving– Why? – Bad work– Why? – Ignored people at my going away party– Why? – Couldn’t find soap dispenser in restroom– Why? – Ordered orange juice at seafood restaurant– waitress misunderstood Critical Thinking For Testers.pdf ‐ 68
  • 14. Critical Thinking for Testers Michael Bolton and James Bach 12 Remember this, you testers! Critical Thinking For Testers.pdf ‐ 69 How many test cases are needed to test the product represented by this flowchart? Critical Thinking For Testers.pdf ‐ 70 Models Link Observation and Inference • A model is an idea, activity, or object… such as an idea in your mind, a diagram, a list of words, a spreadsheet, a  person, a toy, an equation, a demonstration, or a program • …that represents another idea, activity, or object… such as something complex that you need to work with or study. • …whereby understanding the model may help you  understand or manipulate what it represents. • A map is a model that helps us to navigate across a terrain. • 2+2=4 is a model for adding two apples to a basket that already has two  apples in it. • Atmospheric models help us to predict where hurricanes will go. • A fashion model helps us to understand how clothes would look on an  actual (very skinny) human. • Your beliefs about what you test are a model of what you test. Critical Thinking For Testers.pdf ‐ 71 Models Link Observation & Inference • Testers must distinguish observation from inference! • Our mental models form the links between them • Defocusing is lateral thinking. • Focusing is logical (or “vertical”) thinking. My model of the world “I see…” “I believe…” Critical Thinking For Testers.pdf ‐ 72 Rapid Software Testing Heuristic Test Strategy Model See http://www.satisfice.com/rst‐appendices.pdf Study and practice helps to move your heuristics towards System 1 territory Critical Thinking For Testers.pdf ‐ 73 Rapid Software Testing: Oracles See http://www.developsense.com/blog/2015/09/oracles‐from‐the‐inside‐out/ System 1 reactions from experience can be refined by System 2’s ability to reflect on  inference, conference, and reference. Critical Thinking For Testers.pdf ‐ 74
  • 15. Critical Thinking for Testers Michael Bolton and James Bach 13 Modeling Bugs as Magic Tricks • Our thinking is limited • We misunderstand probabilities • We use the wrong heuristics • We lack specialized knowledge • We forget details • We don’t pay attention to the right things • The world is hidden • states • sequences • processes • attributes • variables • identities Magic tricks work for the same reasons that bugs exist Studying magic can help you develop the imagination to find better bugs. Testing magic is indistinguishable from testing sufficiently advanced technology Critical Thinking For Testers.pdf ‐ 75 Untangling Observation and Inference • Observation and inference are easily confused. • Observation is direct sensory data, but on a very low level it is  guided and manipulated by inferences and heuristics.  • You sense very little of what there is to sense. • You remember little of what you actually sense. • Some things you think you see in one instance may be  confused with memories of other things you saw at other  times. • It’s easy to miss bugs that occur right in front of your eyes. • It’s easy to think you “saw” a thing when in fact you merely  inferred that you must have seen it. What can you do about it? Critical Thinking For Testers.pdf ‐ 76 Sharpening Observation and Inference • Accept that we’re all fallible, but that we can learn to be better  observers by learning from mistakes. • Pay special attention to incidents where someone notices  something you could have noticed, but did not. • Don’t strongly commit to a belief about any important evidence  you’ve seen only once. • Whenever you describe what you experienced, notice where  you’re saying what you saw and heard, and where you are instead  jumping to a conclusion about “what was really going on.” • Where feasible, look at things in more than one way. • Collect more than one kind of information about what happened  (such as repeated testing, paired testing, loggers and log files, or  video cameras). Here's what: Critical Thinking For Testers.pdf ‐ 77 Workarounds for Bugs in Speaking: Safety Language (aka “epistemic modalities”) • “Safety language” in Rapid Software Testing, means to  qualify or otherwise draft statements of fact so as to  avoid false confidence. • Examples: So far… The feature worked It seems… I think… It appears… apparently… I infer… I assumed… I have not yet seen any failures in the feature… Critical Thinking For Testers.pdf ‐ 78 Safety Language In Action Critical Thinking For Testers.pdf ‐ 79 Safety Language In Action Critical Thinking For Testers.pdf ‐ 80
  • 16. Critical Thinking for Testers Michael Bolton and James Bach 14 Qualification Quips: Safety and Possibilities • proportional principle: "to some degree" • relative rule: "to some person, at some time" • context concept: "in some context" • uncertainty umbrella: "probably but not certainly" • necessity nudge: "necessary but not sufficient" • heuristic heuristic: "the solution is a heuristic“ • model modifier: “not the thing, but our model of the thing” • particularity premise: “true for us in the here and now” • debate delay:  “we will decide on this later” • design deferral:  “we will solve this problem later” • the et cetera escape: “there may be more to this” Critical Thinking For Testers.pdf ‐ 81 Critical Thinking About Common Beliefs About Testing • Every test must have an expected, predicted result. • Effective testing requires complete, clear, consistent,  and unambiguous specifications. • Bugs found earlier cost less to fix than bugs found later. • Testers are the quality gatekeepers for a product. • Repeated tests are fundamentally more valuable. • You can’t manage what you can’t measure. • Testing at boundary values is the best way to find bugs. Critical Thinking For Testers.pdf ‐ 82 Critical Thinking About Common Beliefs About Testing • Test documentation is needed to deflect legal liability. • The more bugs testers find before release, the better  the testing effort has been. • Rigorous planning is essential for good testing. • Exploratory testing is unstructured testing, and is  therefore unreliable. • Adopting best practices will guarantee that we do a  good job of testing. • Step by step instructions are necessary to make testing  a repeatable process. Critical Thinking For Testers.pdf ‐ 83 Critical thinking about practices What does “best practice” mean? • Someone: Who is it? What do they know? • Believes: What specifically is the basis of their belief? • You: Is their belief applicable to you? • Might: How likely is the suffering to occur? • Suffer: So what? Maybe it’s worth it. • Unless: Really? There’s no alternative? • You do this practice: What does it mean to “do” it? What does it  cost? What are the side effects? What if you do it badly? What if  you do something else really well? Critical Thinking For Testers.pdf ‐ 84 Beware of… • Numbers: “We cut test time by 94%.” • Documentation: “You must have a written plan.” • Judgments: “That project was chaotic. This project was a success.” • Behavior Claims: “Our testers follow test plans.” • Terminology: Exactly what is a “test plan?” • Contempt for Current Practice: CMM Level 1 (initial) vs.  CMM level 2 (repeatable) • Unqualified Claims: “A subjective and unquantifiable requirement  is not testable.” Critical Thinking For Testers.pdf ‐ 85 Look For… • Context: “This practice is useful when you want the power of creative  testing but you need high accountability, too.” • People: “The test manager must be enthusiastic and a real hands‐on  leader or this won’t work very well.” • Skill: “This practice requires the ability to tell a complete story about  testing: coverage, techniques, and evaluation methods.” • Learning Curve: “It took a good three months for the testers to get  good at producing test session reports.” • Caveats: “The metrics are useless unless the test manager holds daily  debriefings.”  • Alternatives: “If you don’t need the metrics, you ditch the daily  debriefings and the specifically formatted reports.” • Agendas: “I run a testing business, specializing in exploratory testing.” Critical Thinking For Testers.pdf ‐ 86
  • 17. Critical Thinking for Testers Michael Bolton and James Bach 15 The Regression Testing Fantasy “I rerun my old tests to ensure that nothing has broken.” Critical Thinking For Testers.pdf ‐ 88 The Regression Testing Fantasy “I rerun my old tests to ensure that nothing has broken.” Critical Thinking For Testers.pdf ‐ 89 The Regression Testing Reality “We run a smattering of old checks to ensure that they still find no bugs... And we assume that any bug not found is also not important.” Critical Thinking For Testers.pdf ‐ 90 Critical Thinking About Processes • This is a description of a bug investigation process  that a particular company uses.  Does it make sense? See James Bach, Investigating Bugs: A Testing Skills Study  http://www.satisfice.com/articles/investigating‐bugs.pdf Critical Thinking For Testers.pdf ‐ 91 Part II: Critical Thinking About Measurement Critical Thinking For Testers.pdf ‐ 92 I Don’t Hate Numbers! • I love numbers so much that I can’t stand to see them  abused as they are by people in our profession. • This workshop is designed to take you deeper into  measurement, spotting critical thinking errors that might  cause you to miss observations and mislead your client—or  yourself. • The intention is not only to suggest that measurement has  problems, but also to expand our notions of what good  measurement might be. Imperfections in measurement are always a problem, but  they’re a devastating problem only when we don’t recognize them. —Daniel Gilbert, Stumbling on Happiness Critical Thinking For Testers.pdf ‐ 93
  • 18. Critical Thinking for Testers Michael Bolton and James Bach 16 Example: A Test Project Total Bugs Reported weeks weeks 190 4 15 2Critical Thinking For Testers.pdf ‐ 94 Example: A Test Project • The original tester was faking it. • A tiger team took over for the last 2 weeks. • The reporting system broke down in the last  several days before the beta was shipped.  (That’s why the line goes flat–reports were still being  prepared, but were not being formally logged in the  tracking system.) • Pay attention to the whole story. • Don’t assume that all known problems are being reported. • Think critically about the numbers. Lessons: Critical Thinking For Testers.pdf ‐ 95 Exercise:  Evaluating Claims • Choose a claim from the next slide, and write it  down. – Using a plausibility scale of 0‐100 (where 0 is ridiculous  and 100 is absolutely true), what is your assessment of  the claim? – What is your thought process on encountering the  claim? – What might change your evaluation of the claim? – Irrespective of your evaluation of the claim, what  evidence would change your mind to the opposite  polarity? • That is, if you disbelieved the claim, what could make you  believe it?  If you believed it, what could make you disbelieve  it? Critical Thinking For Testers.pdf ‐ 96 The Claims • The average cost of correcting a bug during the coding  phase is $977. • Time and motion studies of actual defect repairs shows that  fixing most bugs in code requires about four hours,  regardless of whether the bug is found before or after  release. • Defect Removal Efficiency averages vary from 73% to 96%  depending on organizations. • The cost of defects rises exponentially the later they are  detected. • Software defects cost the US economy $60Bn annually. • 25% of total defects are from bad fixes. • The average time to find and fix a defect is 10 to 20 hours. Critical Thinking For Testers.pdf ‐ 97 The Assignment • Using a plausibility scale of 0‐100 (where 0 is  ridiculous and 100 is absolutely true), what is your  assessment of the claim? • What is your thought process on encountering the  claim? • What might change your evaluation of the claim?  How would you test your belief? • Irrespective of your evaluation of the claim, what  evidence would change your mind to the opposite  polarity? – That is, if you disbelieved the claim, what could make you  believe it?  If you believed it, what could make you  disbelieve it? Critical Thinking For Testers.pdf ‐ 98 A Model for Evaluating Claims Work still in progress! Developed in collaboration with  Laurent Bossavit Critical Thinking For Testers.pdf ‐ 99
  • 19. Critical Thinking for Testers Michael Bolton and James Bach 17 What is measurement? Critical Thinking For Testers.pdf ‐ 100 What Is Measurement? Source:  “Software Engineering Metrics:  What Do They Measure and How Do  We Know?”  (Cem Kaner and Walter P. Bond) http://www.kaner.com/pdfs/metrics2004.pdf “Measurement is the empirical, objective assignment of numbers, according to a rule derived from a model or theory, to attributes of objects or events with the intent of describing them.” —Cem Kaner and Walter P. Bond What happens when we walk through that definition? What do we need to think critically about? What could go wrong? Critical Thinking For Testers.pdf ‐ 101 Exercise Identify and describe factors in measurement. Critical Thinking For Testers.pdf ‐ 102 Some measurement factors… • Object or event • Attribute(s) of that object or event – measured / unmeasured – observed / unobserved • Measuring instrument(s) • Metric (how numbers get assigned) • Rule • Model or theory • Description • Intention (inquiry or control?) • Observation • Observer Critical Thinking For Testers.pdf ‐ 103 …and some more measurement factors… • Scale • Precision • Accuracy • Validity • Reliability • Sample size • Sample selection • Errors Critical Thinking For Testers.pdf ‐ 104 Going deeper… • People – observers, consumers, subjects… • System – relationship of attributes, objects, and events to others • Construct – how to count to one • Representation – how the measurement is displayed and described • Generalization – how observations and conclusions might apply outside this  context • Inferences – what conclusions we could draw from this measurement Critical Thinking For Testers.pdf ‐ 105
  • 20. Critical Thinking for Testers Michael Bolton and James Bach 18 Problems and Sources of Error • Validity – operationalization of constructs (“how to count to one”) – relationship between what we’re measuring and what  we think we’re measuring – degree to which we’ve accounted for alternative  interpretations for our observations and conclusions • Reliability – variations in attributes, instruments, observers – influenced by context: time, place, motivations… • Biases and fallacies – too many to list here!  See (e.g.) Wikipedia • Side effects – distortion and dysfunction – people will often behave to optimize things that are  being measured, at the expense of things that are not Critical Thinking For Testers.pdf ‐ 106 Objectivity, Reliability, Validity • Objectivity is the simultaneous realization of  as much reliability and validity as possible. • Reliability is the degree to which the finding is  independent of accidental circumstances of  the research • Validity is the degree to which the finding is  interpreted in a correct way. Kirk, Jerome, and Miller, Mark, Reliability and Validity in Qualitative Research Critical Thinking For Testers.pdf ‐ 107 Three Important Kinds of Reliability • Quixotic reliability – the measurement yields consistent results in different  circumstances – could be the result of a broken instrument, or socially  acceptable answers • Diachronic reliability – the measurement yields consistent results when taken  multiple times – only reliable for things that don’t change in a changing  world; “may deny history” • Synchronic reliability – similarity of observations within the same time period – reveals potentially significant questions when it fails Kirk, Jerome, and Miller, Mark, Reliability and Validity in Qualitative Research Critical Thinking For Testers.pdf ‐ 108 Construct Validity & External Validity • Construct validity is (informally) the degree to which your  attributes and measurements can justified within an experiment  or observation – How do you demarcate the difference between one of something and not‐ one of something? – How do you know that you’re measuring what you think you’re  measuring? • External validity is the degree to which your experiment or  observation can be generalized to the world outside – How do you know that your experiment or observation will be relevant at  other times or in other places? “In the case of qualitative observations, the issue of validity is not a matter of methodological hair-splitting about the fifth decimal point, but a question of whether the researcher sees what he or she thinks he or she sees.” Kirk, Jerome, and Miller, Mark, Reliability and Validity in Qualitative Research Critical Thinking For Testers.pdf ‐ 109 Exercise Analyse Kaner and Bond’s definition.  How can we sharpen our analysis of  a given measurement? Critical Thinking For Testers.pdf ‐ 110 Exercise Using Kaner and Bond’s questions, analyze this statement: “Defect Detection Efficiency is a good way to  evaluate the performance of the testing group.”  Critical Thinking For Testers.pdf ‐ 111
  • 21. Critical Thinking for Testers Michael Bolton and James Bach 19 An Alternative View of Measurement • Since the time of Aristotle (at least), we’ve known about two  kinds of measurement that inform decisions – “Two pounds of meat” – “Too much”, “too little”, “just right”. Measurement is the art and science of making reliable and significant observations. —Jerry Weinberg, Quality Software Management Vol. 2 We waste time and effort when we try to obtain six‐decimal‐place answers to whole‐number questions. • http://www.developsense.com/articles/2009‐05‐IssuesAboutMetricsAboutBugs.pdf • http://www.developsense.com/articles/2009‐07‐ThreeKindsOfMeasurement.pdf • http://www.developsense.com/articles/2007‐11‐WhatCounts.pdf Critical Thinking For Testers.pdf ‐ 112 How Do We Measure? • Third‐order measurement – highly instrumented, used to  discover natural laws – “What will happen?  What always happens?” • Second‐order measurement – often instrumented, used to  refine first‐order observation – used to tune existing systems – “What’s really going on here?  What’s happening right now?” Critical Thinking For Testers.pdf ‐ 113 How Else Do We Measure? • First‐order measurement – minimal fuss, direct observation, minimal instrumentation – used to inform a control action OR to prompt search for more refined  information – “What’s going on? What should we do? Where should we look?” Weinberg suggests that, in software development, we’re obsessed with trying to  make third‐ and second‐order measurements when first‐order measurements  might be all we need—and tend to be much cheaper and easier. Critical Thinking For Testers.pdf ‐ 114 Why Prefer First‐Order Measures? • When you’re driving, are you mostly concerned about… – your velocity, acceleration, vehicle mass, drag co‐efficient, frictional  force? (third‐order) – your engine temperature, RPMs, and current rate of gas consumption?  (second‐order) – looking out the window to avoid hitting things (first‐order)? I’ve observed many projects that  have crashed because managers  were overly focused on the  dashboard instead of the traffic  and obstacles around them, and  the road ahead. What kind of driver do you trust? Critical Thinking For Testers.pdf ‐ 115 Control vs. Inquiry Measurement • A control measurement is a  measurement that drives decisions. – Any measurement you use to control a  self‐aware system will be used by that  system to control YOU. • An inquiry measurement is any  measurement that helps you ask the  right questions at the right time. – Inquiry measurements are also vulnerable to  gaming, but the stakes are far lower, so there’s  less incentive for manipulation. Text here is taken from the work of my colleague, James Bach. http://www.satisfice.com Critical Thinking For Testers.pdf ‐ 116 Control vs. Inquiry • Remove control metrics that are linked to pay,  bonuses, performance evaluation, etc. – control metrics trigger some action, usually automatically – a metric that is used to control something will eventually be  used to control you • Foster inquiry metrics – inquiry metrics prompt us to ask questions • Relax measurement when the metric stops changing – if you’re not obtaining new information, try measuring  something else of interest for a while Critical Thinking For Testers.pdf ‐ 117
  • 22. Critical Thinking for Testers Michael Bolton and James Bach 20 Kaner & Bond’s Tests for Construct Validity from http://www.kaner.com/pdfs/metrics2004.pdf • What is the purpose of your measurement? The scope? • What is the attribute you are trying to measure? • What are the scale and variability of this attribute? • What is the instrument you’re using?  What is its scale and  variability? • What function (metric) do you use to assign a value to the  attribute? • What’s the natural scale of the metric? • What is the relationship of the attribute to the metric’s value? • What are the natural, foreseeable side effects of using this  measure? The essence of good measurement is a model that incorporates  answers to questions like these.   If you don’t have solid answers, you aren’t doing measurement;  you are just playing with numbers. Critical Thinking For Testers.pdf ‐ 118 Exercise Apply critical thinking to this statement: “Management wants numbers.” Critical Thinking For Testers.pdf ‐ 119 “Pass Rate” is a Popular Metric 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 2/1 2/8 2/15 2/22 3/1 Pass Rate Pass Rate Critical Thinking For Testers.pdf ‐ 120 Critical Thinking About Measurement from an actual client DER – Defect Escape Rate The Defect Escape Rate measures the number of undiscovered  defects that escaped detection in the product development cycle  and were released to customers. An escape is a defect found  while using a released product. DER is defined as: DER= (Defect Escapes /Total Defects)∗100 DER is a lagging indicator of product quality. The number of  escapes is always zero until after the product is released. It is  reported as a percentage and a low number is desired. Each  business unit has a target DER percentage and an Escape  Analysis should be performed on each defect to improve test  coverage. It is desirable for the DER for a product line to decline  over time. See appendix for calculation details. Look! Measurement! What could possibly go wrong? Critical Thinking For Testers.pdf ‐ 121 "But they ask us for numbers!" What are they really asking for? • “We want to know if we’re improving.” • “We want to know if we’re happy.” • “We want to know if we should be unhappy.” Critical Thinking For Testers.pdf ‐ 122 "But they ask us for numbers!" • Are they asking for specific numbers? – Perform the Kaner/Bond checklist – Offer a list of threats to validity – Provide a number, and include commentary Critical Thinking For Testers.pdf ‐ 123
  • 23. Critical Thinking for Testers Michael Bolton and James Bach 21 "But they ask us for numbers!" Are they asking for numbers? – Offer an observation • e.g. "cold enough to freeze the water in the bird bath" – Offer a description • e.g. a product status report; a coverage outline – Offer a list • e.g. a list of problems in the product; a list of project  problems – Offer a table • e.g. time spent on classes of activities – Offer a visual model • e.g. diagrams of effects, Wiggle charts, mind maps… – Offer a comparison or ranking Critical Thinking For Testers.pdf ‐ 124 "But they ask us for numbers!" • Prefer first‐order measurement • Prefer measurement for inquiry to  measurement for control • Ask “compared to what?” Critical Thinking For Testers.pdf ‐ 125 What could we measure? Critical Thinking For Testers.pdf ‐ 126 Degrees of Coverage Level 0 We don’t really know anything about this area. We’re aware  that this area exists, but it’s a black box to us, so far. Level 1 We’re just getting to know this area.  We’ve done basic  reconnaissance; surveyed it; we’ve done smoke and sanity  testing.  We may have some artifacts that represent our models,  which will helps us to talk about them and go deeper. Level 2 We’ve learned a good deal about this area. We’ve looked at the  core and the critical aspects of it. We’ve done some significant  tests focused on the most important quality criteria, and we’re  collecting and diversifying our ideas on how to cover it deeply. Level 3 We have a comprehensive understanding of this area. We’ve  looked deeply into it from a number of perspectives, and applied  a lot of different test techniques. We’ve done harsh, complex,  and challenging tests on a wide variety of quality criteria.  If  there were a problem or unrecognized feature in this area that  we didn’t know about, it would be a big surprise. Critical Thinking For Testers.pdf ‐ 127 Time Spent on Testing Work Testing (T) Active test design; experimentation, interaction, learning  about the product; increasing test coverage. Bug (B) Study and investigation of bugs; finding repro steps;  looking for similar bugs inside a session. B–time  interrupts T‐time. Setup (S) Work within a session to prepare for testing, to support  it, or to follow up on it.  Setting up products, tools,  environments; studying; analyzing non‐bug behaviour…  S‐time interrupts T‐time. Opportunity Work within a session that is NOT directed towards  fulfilling the charter, but towards the general mission of  testing. Chasing after a risk, helping other testers, testing  while waiting for something else to happen…  Non‐session Meetings, lunches, breaks, chat, work‐related or  personal business done outside of a testing session.  Critical Thinking For Testers.pdf ‐ 128 You can’t measure quality… but  you can discuss it. —James Bach Critical Thinking For Testers.pdf ‐ 129
  • 24. Critical Thinking for Testers Michael Bolton and James Bach 22 Appendices Critical Thinking For Testers.pdf ‐ 130 Some Common Thinking Errors • Reification Error – giving a name to a concept, and then believing it has  an objective existence in the world – ascribing material attributes to mental constructs— “that product has quality” – mistaking relationships for things—“its purpose is…” – purpose and quality are relationships, not attributes;  they depend on the person – how can we count ideas?  how can we quantify  relationships? Critical Thinking For Testers.pdf ‐ 131 Some Common Thinking Errors • Fundamental Attribution Error – “it always works that way”; “he’s a jerk” – failure to recognize that circumstance and context  play a part in behaviour and effects • The Similarity‐Uniqueness Paradox – “all companies are like ours”; “no companies are like  ours” – failure to consider that everything incorporates  similarities and differences • Missing Multiple Paths of Causation – “A causes B” (even though C and D are also required) Critical Thinking For Testers.pdf ‐ 132 Some Common Thinking Errors • Assuming that effects are linear with causes – “If we have 20% more traffic, throughput will slow  by 20%” – this kind of error ignores non‐linearity and  feedback loops—c.f. general systems • Reactivity Bias – the act of observing affects the observed – a.k.a. “Heisenbugs”, the Hawthorne Effect • The Probabilistic Fallacy – confusing unpredictability and randomness – after the third hurricane hits Florida, is it time to  relax? Critical Thinking For Testers.pdf ‐ 133 Some Common Thinking Errors • Binary Thinking Error / False Dilemmas – “all manual tests are bad”; “that idea never works” – failure to consider gray areas; belief that something is  either entirely something or entirely not • Unidirectional Thinking – expresses itself in testing as a belief that “the  application works” – failure to consider the opposite: what if the  application fails? – to find problems, we need to be able to imagine that  they might exist Critical Thinking For Testers.pdf ‐ 134 Some Common Thinking Errors • Availability Bias – the tendency to favor prominent or vivid instances in  making a decision or evaluation – example:  people are afraid to fly, yet automobiles are  far more dangerous per passenger mile – to a tech support person (or to some testers), the  product always seems completely broken – spectacular failures often get more attention than  grinding little bugs • Confusing concurrence with correlation – “A and B happen at the same time; they must be  related” Critical Thinking For Testers.pdf ‐ 135
  • 25. Critical Thinking for Testers Michael Bolton and James Bach 23 Some Common Thinking Errors • Nominal Fallacies – believing that we know something well because we can  name it • “equivalence classes” – believing that we don’t know something because we  don’t have a name for it at our fingertips • “the principle of concomitant variation”; “inattentional blindness” • Evaluative Bias of Language – failure to recognize the spin of word choices – …or an attempt to game it – “our product is full‐featured; theirs is bloated” Critical Thinking For Testers.pdf ‐ 136 Some Common Thinking Errors • Selectivity Bias – choosing data (beforehand) that fits your preconceptions  or mission – ignoring data that doesn’t fit • Assimilation Bias – modifying the data or observation (afterwards) to fit the  model – grouping distinct things under one conceptual umbrella – Jerry Weinberg refers to this as “lumping” – for testers, the risk is in identifying setup, pinpointing,  investigating, reporting, and fixing as “testing” Critical Thinking For Testers.pdf ‐ 137 Some Common Thinking Errors • Narrative Bias – a.k.a “post hoc, ergo propter hoc” – explaining causation after the facts are in • The Ludic Fallacy – confusing complex human activities with random,  roll‐of‐the‐dice games – “Our project has a two‐in‐three chance of success” • Confusing correlation with causation – “When I change A, B changes; therefore A must be  causing B” Critical Thinking For Testers.pdf ‐ 138 Some Common Thinking Errors • Automation bias – people have a tendency to believe in results from an automated  process out of all proportion to validity • Formatting bias – It’s more credible when it’s on a nicely formatted spreadsheet or  document – (I made this one up) • Survivorship bias – we record and remember results from projects (or people) who  survived – the survivors prayed to Neptune, but so did the sailors who died – What was the bug rate for projects that were cancelled? Critical Thinking For Testers.pdf ‐ 139 Critical Thinking About Projects • “You will have five weeks to test the product” 5 weeks Critical Thinking For Testers.pdf ‐ 140 Exercise Events Testing • You want to test the interaction between  two potentially overlapping events. • How would you test this? time Event A Event B Critical Thinking For Testers.pdf ‐ 141
  • 26. Critical Thinking for Testers Michael Bolton and James Bach 24 Do you prefer A or B? Imagine that the US is preparing for the outbreak of an unusual  Asian disease, which is expected to kill 600 people. Two  alternative programs to combat the disease have been  proposed. Assume that the exact scientific estimates of the  consequences of the programs are as follows. Program A: If Program A is adopted, 200 people will be saved. Program B: If Program B is adopted, there is 1/3 probability that  600 people will be saved, and 2/3 probability that  no people will be saved. See Daniel Kahneman, Thinking Fast and Slow Critical Thinking For Testers.pdf ‐ 142 Do you prefer C or D? Imagine  two more programs to combat the disease are  proposed: Program C: If Program C is adopted, 400 people will die. Program D: If Program D is adopted, there is 1/3  probability that 600 people will be saved, and 2/3  probability that  no people will be saved. Critical Thinking For Testers.pdf ‐ 143 A = C    B = D   A > B   D > C Program A: If Program A is adopted, 200 people will be saved. (3/4 surveyed prefer this to B) Program B: If Program B is adopted, there is 1/3 probability that  600 people will be saved, and 2/3 probability that  no people will be saved. Program C: If Program A is adopted, 400 people will die. Program D: If Program B is adopted, there is 1/3 probability that  600 people will be saved, and 2/3 probability that  no people will be saved. (3/4 surveyed prefer this to C) Critical Thinking For Testers.pdf ‐ 144 Isn’t it all “just semantics”? • What does “semantics” mean? – Semantics is the branch of linguistics concerned with logic  and meaning, so dismissing something as “semantics” is  cool as long as logic and meaning don’t matter to you. • How many “events” were there when the twin towers  were hit?  Does it matter? – To insurers and property owners (who were insured per  event), it matters a great deal. • What’s the difference between “ad hoc” testing and  “exploratory testing”?  Don’t they mean the same  thing? – We can tell you what the structures and skills of  exploratory testing are. Can you tell us what the structures  skills of “ad hoc” testing are? Critical Thinking For Testers.pdf ‐ 145 Tacit vs. Explicit Knowledge • Explicit knowledge is knowledge that has been  told • Tacit knowledge comes in three forms – Relational (“weak”) tacit knowledge: knowledge,  residing in a human mind, that could be told, but  has not been for various reasons – Somatic (“medium”) tacit knowledge: knowledge  that comes from residing in a human body – Collective (“strong”) tacit knowledge: knowledge  that is embodied in society See Harry Collins, Tacit and Explicit Knowledge Critical Thinking For Testers.pdf ‐ 146 The Role of Tacit Knowledge • Although people tend to favour the explicit  (because we can talk about it relatively easily),  much of what we do in testing is based on  using and developing tacit knowledge. • A key problem with test‐case‐focused testing  is that much of the tacit knowledge necessary  for excellent testing cannot be encoded. What are the elements of tacit knowledge in  your testing?  What parts can be made explicit? What parts cannot? Critical Thinking For Testers.pdf ‐ 147
  • 27. Critical Thinking for Testers Michael Bolton and James Bach 25 Conditional Probability Reasoning about it is HARD. Unhappy test result Thesepeoplehavethedisease These people are fine.Happy test result These people are fine too. 9990 .99 10 .01 Critical Thinking For Testers.pdf ‐ 148 Conditional Probability Uh-oh. Yay!But…Ooops.Missedit. No problemo.Yay! Sorry we freaked you out. Bad news. Try considering the number of people in the overall population who have  the disease BEFORE considering the test result. Critical Thinking For Testers.pdf ‐ 149 Would banning fighting reduce  hockey injuries? • [a] study analyzed approximately 1,410 NHL games  during 30 randomly selected weeks between the 2009‐ 10 and 2011‐12 seasons. It found that 8.8 concussions  or suspected concussions occurred per 100 NHL  games. Of these injuries, 0.8 of a concussion per 100  games was attributed to fighting and the other eight  were caused by a variety of means, the most common  of which were “Bodychecking with head contact” and  “Bodychecking with no head contact.” • The study found that a player was more likely to suffer  a concussion by getting hit in the face by a puck than  by fighting. Critical Thinking For Testers.pdf ‐ 150 Do you agree? • “It is clear that we could immediately eliminate the  0.8 of a fight per 100 games if fighting were banned  from the NHL. But… the elimination of fighting will  lead to more reckless and dangerous actions on the  ice. Those other eight concussions per 100 games are  going to increase, perhaps dramatically.” Bobby Smith, The Globe and Mail http://www.theglobeandmail.com/sports/hockey/end‐to‐ fighting‐would‐not‐make‐hockey‐a‐safer‐ game/article29300049/ How would you test this statement? Critical Thinking For Testers.pdf ‐ 151