SlideShare a Scribd company logo
1 of 33
Download to read offline
Michael Bolton and James Bach Critical Thinking for Testers
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
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.
operating a product
to check specific
facts about it…
means
Michael Bolton and James Bach Critical Thinking for Testers
2
Acquiring the competence, motivation,
and credibility to…
Testing is…
create the conditions necessary to…
so that you help your clients to make
informed decisions about risk.
evaluate a product by learning
about it through experimentation, which includes to
some degree: questioning, study, modeling,
observation and inference, including…
operating a product
to check specific
facts about it…
Michael Bolton and James Bach Critical Thinking for Testers
3
Bolton’s Definition of Critical Thinking
• Michael Bolton
Wait, let’s try something 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.”
Michael Bolton and James Bach Critical Thinking for Testers
4
“Pass Rate” is a Popular Metric
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
2/1
2/3
2/5
2/7
2/9
2/11
2/13
2/15
2/17
2/19
2/21
2/23
2/25
2/27
3/1
3/3
3/5
Pass Rate
Pass Rate
The Beginning of Critical Thinking
Michael Bolton and James Bach Critical Thinking for Testers
5
Why Don’t People Think Well?
“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?
Reflex is IMPORTANT
But Critical Thinking is About Reflection
REFLEX
REFLECTION
Faster
Looser
Slower
Surer
get more
data
System 2
System 1
See Thinking Fast and Slow, by Daniel Kahneman
Michael Bolton and James Bach Critical Thinking for Testers
6
Exercise: Calculator Test
“You are carrying a calculator.
You drop it!
Perhaps it is damaged!
What might you do to test it?”
Assumptions vs. Inferences
• An inference is something we treat as true based on evidence.
• An assumption is a something that we treat as true regardless of
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
Michael Bolton and James Bach Critical Thinking for Testers
7
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.
Obvious 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.”
What makes an assumption more risky?
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 ignores 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.)
7. Unsustainable: may be hard to maintain over a long period of time. (The
assumption 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.
10.Latent: Otherwise critical assumptions that we have not yet identified and dealt
with. (The act of managing assumptions can make them less critical.)
Michael Bolton and James Bach Critical Thinking for Testers
8
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 saps our motivation to think better.
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
Michael Bolton and James Bach Critical Thinking for Testers
9
Don’t Be A Turkey
• 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…
Based on a story told by Nassim Taleb, who stole it from Bertrand
Russell, who stole it from David Hume.
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!”
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 NOT
STABLE OR 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.
Michael Bolton and James Bach Critical Thinking for Testers
10
The Regression Testing Fantasy
“I rerun my old tests to ensure that nothing has broken.”
The Regression Testing Fantasy
“I rerun my old tests to ensure that nothing has broken.”
Michael Bolton and James Bach Critical Thinking for Testers
11
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.”
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.
Michael Bolton and James Bach Critical Thinking for Testers
12
How Do We Know What “Is”?
“If I see X, then probably Y, because probably A, B, C, D, etc.”
• THIS CAN FAIL:
– 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
– McDonald’s clerk told me her husband died.
Remember this, you testers!
Michael Bolton and James Bach Critical Thinking for Testers
13
Models Link Observation and Inference
• A model is an idea, activity, or object…
• …that represents another idea, activity, or object…
• …whereby understanding the model may help you understand
or manipulate what it represents.
31
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
such as something complex that you need to work with or study.
- A map helps navigate across a terrain.
- 2+2=4 is a model for adding two apples to a basket that already has two apples.
- Atmospheric models help predict where hurricanes will go.
- A fashion model helps understand how clothing would look on actual humans.
- Your beliefs about what you test are a model of what you test.
Models Link Observation & Inference
• Testers must distinguish
observation from inference!
• Our mental models form the
link between them
• Defocusing is lateral thinking.
• Focusing is logical (or “vertical”)
thinking.
32
My model
of the world
“I see…”
“I believe…”
Michael Bolton and James Bach Critical Thinking for Testers
14
Testing against requirements
is all about modeling.
“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?
The Nature of Critical Thinking
• We call it critical thinking whenever we
systematically doubt something that the “signs”
tell us is probably true. Working through the
doubt gives us a better foundation for our beliefs.
• Critical thinking is a kind of de-focusing tactic,
because it requires you to seek alternatives to
what is already believed or what is being claimed.
• Critical thinking is also a kind of focusing tactic,
because it requires you to analyze the specific
reasoning behind beliefs and claims.
Michael Bolton and James Bach Critical Thinking for Testers
15
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.)
Why You Should Care
Technology is way more
tricky than regular life.
But testers
are not supposed
to get tricked.
Michael Bolton and James Bach Critical Thinking for Testers
16
How many test cases are needed to test
the product represented by this flowchart?
This is what people think testers do
described actual
“Compare the product to its specification”
Michael Bolton and James Bach Critical Thinking for Testers
17
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”
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.
Michael Bolton and James Bach Critical Thinking for Testers
18
How to Think Critically:
HuRAS!
• 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)
To What Do We Apply Critical Thinking?
• Words and Pictures
• Causation
• The Product
– Design
– Behavior
• The Project
– Schedule
– Infrastructure
• The Test Strategy
– Coverage
– Oracles
– Procedures
Michael Bolton and James Bach Critical Thinking for Testers
19
“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.”
43
Example: Missing Words
• “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.”
• “Step 1. Reboot the test system.”
• “Step 2. Start the application.” 44
Michael Bolton and James Bach Critical Thinking for Testers
20
Example: Generating Interpretations
• 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.
45
“Really?”
The Data Question
Michael Bolton and James Bach Critical Thinking for Testers
21
Safety Language
(aka “epistemic modalities”)
• “Safety language” in 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…
Safety Language In Action
Michael Bolton and James Bach Critical Thinking for Testers
22
Exercise:
How Would You Say These Things
Using Safety Language?
• “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.” 50
“And?”
A vs. THE
• Example: “A problem…” instead of “THE 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
When trying to explain something,
prefer "a" to "the".
Michael Bolton and James Bach Critical Thinking for Testers
23
“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 in the case of…”
At the end of a statement,
try adding "unless..."
“And?”
Also…
• The product gives the correct result! Yay!
• …It also may be silently deleting system files.
Whatever is happening,
something else may ALSO be happening.
Michael Bolton and James Bach Critical Thinking for Testers
24
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.
Questioning 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.
Michael Bolton and James Bach Critical Thinking for Testers
25
Questioning 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 About Projects
• You will have five weeks to test the product:
5 weeks
Michael Bolton and James Bach Critical Thinking for Testers
26
“So?”
Critical Thinking About Risk
“When the user presses a button on the
touchscreen, the system shall respond within 300
milliseconds.”
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.
Michael Bolton and James Bach Critical Thinking for Testers
27
Critical Thinking About Diagrams
Analysis
• [pointing at a box] What if the function in this box fails?
• Can this function ever be invoked at the wrong time?
• [pointing at any part of the diagram] What error checking do
you do here?
• [pointing at an arrow] What exactly does this arrow mean?
What would happen if it was broken?
Web Server
Database
LayerApp Server
Browser
Guideword Heuristics for Diagram Analysis
What’s there? What happens? What could go wrong?
• Boxes
– Interfaces (testable)
– Missing/Drop-out
– Extra/Interfering/Transient
– Incorrect
– Timing/Sequencing
– Contents/Algorithms
– Conditional behavior
– Limitations
– Error Handling
• Lines
– Missing/Drop-out
– Extra/Forking
– Incorrect
– Timing/Sequencing
– Status Communication
– Data Structures
Web Server
Database
LayerApp Server
Browser
• Paths
• Simplest
• Popular
• Critical
• Complex
• Pathological
• Challenging
• Error Handling
• Periodic
Testability!
Michael Bolton and James Bach Critical Thinking for Testers
28
Visual Strategy
Annotation
Web Server
Database
Layer
App Server
Browser
Observation or Oracle
Control or Modify Data or Object
Activity or Tool
Force Fail Path
Web Server
Database
Layer
App Server
Browser
error monitor
- error monitor
- coverage analysis
dropout test
dropout test
data generator
table
consistency
oracle
history
oracle
man-in-middle
performance
data
high ET
stressbots
Michael Bolton and James Bach Critical Thinking for Testers
29
Web Server
Database
Layer
App Server
Browser
Beware Visual Bias!
• browser type & version
• cookies
• security settings
• screen size
• client-side scripts & applets
• usability
• specific functions
Example
data extraction and transformation system
Michael Bolton and James Bach Critical Thinking for Testers
30
Example
dual head radio testing
Example
dual head radio testing
Michael Bolton and James Bach Critical Thinking for Testers
31
One way to cope with
really complex diagrams
• Consider making a
special diagram that
includes only the things
that are worth testing,
then put the annotations
as bullets on the
bottom…
DB
!!Hook
PTT
Head (P)
PC
Mic
Covert
DB
!!Hook
PTT
Head (S)
PC
Mic
Covert
Splitter
(optional)
Power DB
Torso
(optional)
PTT
PC
Mic
DB != DB, DB == DB
Disconnect/Connect
Start/Stop/Restart/Reset
On hook/off hook
PTT Y/N
Signal arriving at antenna
No testing for extender box?!
Coverage
Screen Match
Contrast/Volume Independence
Muted/Unmuted
Reset on Disconnect
Reset on System Error
Pops
Oracles
Happy path
Spam test
Connection tests (failover)
DB interactions
Pairwise interactions
Head interactions
Time (leave it sitting)
Ideas
PTT Mic
Mic
PTT
Extender box Extender box
Extender box Extender box
Michael Bolton and James Bach Critical Thinking for Testers
32
Exercise: Overlapping 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 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?
Michael Bolton and James Bach Critical Thinking for Testers
33
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.”
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.”

More Related Content

What's hot

What's hot (13)

Mental Models
Mental ModelsMental Models
Mental Models
 
Why People Make Bad Decisions: The Role of Cognitive Biases
Why People Make Bad Decisions: The Role of Cognitive BiasesWhy People Make Bad Decisions: The Role of Cognitive Biases
Why People Make Bad Decisions: The Role of Cognitive Biases
 
MHA2018 - The Immunity to Change - How to discover individual or team resista...
MHA2018 - The Immunity to Change - How to discover individual or team resista...MHA2018 - The Immunity to Change - How to discover individual or team resista...
MHA2018 - The Immunity to Change - How to discover individual or team resista...
 
NHS The Edge workshop Rebels at Work Oct 2 2015
NHS The Edge workshop Rebels at Work Oct 2 2015NHS The Edge workshop Rebels at Work Oct 2 2015
NHS The Edge workshop Rebels at Work Oct 2 2015
 
Idea factory by Psykologifabriken
Idea factory by PsykologifabrikenIdea factory by Psykologifabriken
Idea factory by Psykologifabriken
 
Week 3 intro to gamification
Week 3   intro to gamificationWeek 3   intro to gamification
Week 3 intro to gamification
 
Creativity
CreativityCreativity
Creativity
 
Exploiting Fast and Slow Thinking
Exploiting Fast and Slow ThinkingExploiting Fast and Slow Thinking
Exploiting Fast and Slow Thinking
 
Experiments: The Good, the Bad, and the Beautiful
Experiments: The Good, the Bad, and the BeautifulExperiments: The Good, the Bad, and the Beautiful
Experiments: The Good, the Bad, and the Beautiful
 
CAJ 022-Jay Packlick-Overcoming Immunity to Change
CAJ 022-Jay Packlick-Overcoming Immunity to ChangeCAJ 022-Jay Packlick-Overcoming Immunity to Change
CAJ 022-Jay Packlick-Overcoming Immunity to Change
 
Cognitve biases and project management
Cognitve biases  and project managementCognitve biases  and project management
Cognitve biases and project management
 
Thinking Fast & Slow presentation
Thinking Fast & Slow presentationThinking Fast & Slow presentation
Thinking Fast & Slow presentation
 
Reducing Test Case Bloat2 1
Reducing Test Case Bloat2 1Reducing Test Case Bloat2 1
Reducing Test Case Bloat2 1
 

Similar to Critical Thinking for Software Testers

Johns hopkins innovation factory entrepreneur development program #5
Johns hopkins innovation factory entrepreneur development program #5Johns hopkins innovation factory entrepreneur development program #5
Johns hopkins innovation factory entrepreneur development program #5
Glenn Alpert
 
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
TechWell
 
Why study engineering ethics and moral dilemmas
Why study engineering ethics and moral dilemmasWhy study engineering ethics and moral dilemmas
Why study engineering ethics and moral dilemmas
Ezhil Arasi
 

Similar to Critical Thinking for Software Testers (20)

Critical Thinking for Software Testers
Critical Thinking for Software TestersCritical Thinking for Software Testers
Critical Thinking for Software Testers
 
Think epic be epic
Think epic be epicThink epic be epic
Think epic be epic
 
Johns hopkins innovation factory entrepreneur development program #5
Johns hopkins innovation factory entrepreneur development program #5Johns hopkins innovation factory entrepreneur development program #5
Johns hopkins innovation factory entrepreneur development program #5
 
SINY Leanstartup Introduction | Reduce waste, run experiments!
SINY Leanstartup Introduction | Reduce waste, run experiments!SINY Leanstartup Introduction | Reduce waste, run experiments!
SINY Leanstartup Introduction | Reduce waste, run experiments!
 
Stanford CS 007-2 (2018): Personal Finance for Engineers / Compensation
Stanford CS 007-2 (2018): Personal Finance for Engineers / CompensationStanford CS 007-2 (2018): Personal Finance for Engineers / Compensation
Stanford CS 007-2 (2018): Personal Finance for Engineers / Compensation
 
Stanford CS 007-2 (2019): Personal Finance for Engineers / Behavioral Finance
Stanford CS 007-2 (2019): Personal Finance for Engineers / Behavioral FinanceStanford CS 007-2 (2019): Personal Finance for Engineers / Behavioral Finance
Stanford CS 007-2 (2019): Personal Finance for Engineers / Behavioral Finance
 
Stanford CS 007-2 (2020): Personal Finance for Engineers / Behavioral Finance
Stanford CS 007-2 (2020): Personal Finance for Engineers / Behavioral FinanceStanford CS 007-2 (2020): Personal Finance for Engineers / Behavioral Finance
Stanford CS 007-2 (2020): Personal Finance for Engineers / Behavioral Finance
 
The Past, Present and Future of ABM: How To Cope With A New Research Method
The Past, Present and Future of ABM: How To Cope With A New Research Method The Past, Present and Future of ABM: How To Cope With A New Research Method
The Past, Present and Future of ABM: How To Cope With A New Research Method
 
Analytical Thinking And Innovation
Analytical Thinking And InnovationAnalytical Thinking And Innovation
Analytical Thinking And Innovation
 
Leland Sandler's Presentation on Creating and Capturing value
Leland Sandler's Presentation on Creating and Capturing valueLeland Sandler's Presentation on Creating and Capturing value
Leland Sandler's Presentation on Creating and Capturing value
 
Creative thinking skills for hr managers PPT Slides
Creative thinking skills for hr managers PPT SlidesCreative thinking skills for hr managers PPT Slides
Creative thinking skills for hr managers PPT Slides
 
The Customer Isn't Always Right
The Customer Isn't Always RightThe Customer Isn't Always Right
The Customer Isn't Always Right
 
Entrepreneurial Psychology
Entrepreneurial PsychologyEntrepreneurial Psychology
Entrepreneurial Psychology
 
"Worst" practices of software testing
"Worst" practices of software testing"Worst" practices of software testing
"Worst" practices of software testing
 
Cargo Cult Agile training & coaching
Cargo Cult Agile training & coachingCargo Cult Agile training & coaching
Cargo Cult Agile training & coaching
 
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
 
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
 
On practical philosophy of research in science and technology
On practical philosophy of research in science and technologyOn practical philosophy of research in science and technology
On practical philosophy of research in science and technology
 
Introduction to unconscious bias
Introduction to unconscious biasIntroduction to unconscious bias
Introduction to unconscious bias
 
Why study engineering ethics and moral dilemmas
Why study engineering ethics and moral dilemmasWhy study engineering ethics and moral dilemmas
Why study engineering ethics and moral dilemmas
 

More from TechWell

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
 
Ma 15
Ma 15Ma 15
Ma 15
 
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
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

Critical Thinking for Software Testers

  • 1. Michael Bolton and James Bach Critical Thinking for Testers 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 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. operating a product to check specific facts about it… means
  • 2. Michael Bolton and James Bach Critical Thinking for Testers 2 Acquiring the competence, motivation, and credibility to… Testing is… create the conditions necessary to… so that you help your clients to make informed decisions about risk. evaluate a product by learning about it through experimentation, which includes to some degree: questioning, study, modeling, observation and inference, including… operating a product to check specific facts about it…
  • 3. Michael Bolton and James Bach Critical Thinking for Testers 3 Bolton’s Definition of Critical Thinking • Michael Bolton Wait, let’s try something 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.”
  • 4. Michael Bolton and James Bach Critical Thinking for Testers 4 “Pass Rate” is a Popular Metric 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2/1 2/3 2/5 2/7 2/9 2/11 2/13 2/15 2/17 2/19 2/21 2/23 2/25 2/27 3/1 3/3 3/5 Pass Rate Pass Rate The Beginning of Critical Thinking
  • 5. Michael Bolton and James Bach Critical Thinking for Testers 5 Why Don’t People Think Well? “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? Reflex is IMPORTANT But Critical Thinking is About Reflection REFLEX REFLECTION Faster Looser Slower Surer get more data System 2 System 1 See Thinking Fast and Slow, by Daniel Kahneman
  • 6. Michael Bolton and James Bach Critical Thinking for Testers 6 Exercise: Calculator Test “You are carrying a calculator. You drop it! Perhaps it is damaged! What might you do to test it?” Assumptions vs. Inferences • An inference is something we treat as true based on evidence. • An assumption is a something that we treat as true regardless of 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
  • 7. Michael Bolton and James Bach Critical Thinking for Testers 7 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. Obvious 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.” What makes an assumption more risky? 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 ignores 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.) 7. Unsustainable: may be hard to maintain over a long period of time. (The assumption 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. 10.Latent: Otherwise critical assumptions that we have not yet identified and dealt with. (The act of managing assumptions can make them less critical.)
  • 8. Michael Bolton and James Bach Critical Thinking for Testers 8 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 saps our motivation to think better. 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
  • 9. Michael Bolton and James Bach Critical Thinking for Testers 9 Don’t Be A Turkey • 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… Based on a story told by Nassim Taleb, who stole it from Bertrand Russell, who stole it from David Hume. 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!” 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 NOT STABLE OR 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.
  • 10. Michael Bolton and James Bach Critical Thinking for Testers 10 The Regression Testing Fantasy “I rerun my old tests to ensure that nothing has broken.” The Regression Testing Fantasy “I rerun my old tests to ensure that nothing has broken.”
  • 11. Michael Bolton and James Bach Critical Thinking for Testers 11 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.” 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.
  • 12. Michael Bolton and James Bach Critical Thinking for Testers 12 How Do We Know What “Is”? “If I see X, then probably Y, because probably A, B, C, D, etc.” • THIS CAN FAIL: – 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 – McDonald’s clerk told me her husband died. Remember this, you testers!
  • 13. Michael Bolton and James Bach Critical Thinking for Testers 13 Models Link Observation and Inference • A model is an idea, activity, or object… • …that represents another idea, activity, or object… • …whereby understanding the model may help you understand or manipulate what it represents. 31 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 such as something complex that you need to work with or study. - A map helps navigate across a terrain. - 2+2=4 is a model for adding two apples to a basket that already has two apples. - Atmospheric models help predict where hurricanes will go. - A fashion model helps understand how clothing would look on actual humans. - Your beliefs about what you test are a model of what you test. Models Link Observation & Inference • Testers must distinguish observation from inference! • Our mental models form the link between them • Defocusing is lateral thinking. • Focusing is logical (or “vertical”) thinking. 32 My model of the world “I see…” “I believe…”
  • 14. Michael Bolton and James Bach Critical Thinking for Testers 14 Testing against requirements is all about modeling. “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? The Nature of Critical Thinking • We call it critical thinking whenever we systematically doubt something that the “signs” tell us is probably true. Working through the doubt gives us a better foundation for our beliefs. • Critical thinking is a kind of de-focusing tactic, because it requires you to seek alternatives to what is already believed or what is being claimed. • Critical thinking is also a kind of focusing tactic, because it requires you to analyze the specific reasoning behind beliefs and claims.
  • 15. Michael Bolton and James Bach Critical Thinking for Testers 15 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.) Why You Should Care Technology is way more tricky than regular life. But testers are not supposed to get tricked.
  • 16. Michael Bolton and James Bach Critical Thinking for Testers 16 How many test cases are needed to test the product represented by this flowchart? This is what people think testers do described actual “Compare the product to its specification”
  • 17. Michael Bolton and James Bach Critical Thinking for Testers 17 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” 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.
  • 18. Michael Bolton and James Bach Critical Thinking for Testers 18 How to Think Critically: HuRAS! • 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) To What Do We Apply Critical Thinking? • Words and Pictures • Causation • The Product – Design – Behavior • The Project – Schedule – Infrastructure • The Test Strategy – Coverage – Oracles – Procedures
  • 19. Michael Bolton and James Bach Critical Thinking for Testers 19 “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.” 43 Example: Missing Words • “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.” • “Step 1. Reboot the test system.” • “Step 2. Start the application.” 44
  • 20. Michael Bolton and James Bach Critical Thinking for Testers 20 Example: Generating Interpretations • 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. 45 “Really?” The Data Question
  • 21. Michael Bolton and James Bach Critical Thinking for Testers 21 Safety Language (aka “epistemic modalities”) • “Safety language” in 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… Safety Language In Action
  • 22. Michael Bolton and James Bach Critical Thinking for Testers 22 Exercise: How Would You Say These Things Using Safety Language? • “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.” 50 “And?” A vs. THE • Example: “A problem…” instead of “THE 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 When trying to explain something, prefer "a" to "the".
  • 23. Michael Bolton and James Bach Critical Thinking for Testers 23 “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 in the case of…” At the end of a statement, try adding "unless..." “And?” Also… • The product gives the correct result! Yay! • …It also may be silently deleting system files. Whatever is happening, something else may ALSO be happening.
  • 24. Michael Bolton and James Bach Critical Thinking for Testers 24 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. Questioning 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.
  • 25. Michael Bolton and James Bach Critical Thinking for Testers 25 Questioning 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 About Projects • You will have five weeks to test the product: 5 weeks
  • 26. Michael Bolton and James Bach Critical Thinking for Testers 26 “So?” Critical Thinking About Risk “When the user presses a button on the touchscreen, the system shall respond within 300 milliseconds.” 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.
  • 27. Michael Bolton and James Bach Critical Thinking for Testers 27 Critical Thinking About Diagrams Analysis • [pointing at a box] What if the function in this box fails? • Can this function ever be invoked at the wrong time? • [pointing at any part of the diagram] What error checking do you do here? • [pointing at an arrow] What exactly does this arrow mean? What would happen if it was broken? Web Server Database LayerApp Server Browser Guideword Heuristics for Diagram Analysis What’s there? What happens? What could go wrong? • Boxes – Interfaces (testable) – Missing/Drop-out – Extra/Interfering/Transient – Incorrect – Timing/Sequencing – Contents/Algorithms – Conditional behavior – Limitations – Error Handling • Lines – Missing/Drop-out – Extra/Forking – Incorrect – Timing/Sequencing – Status Communication – Data Structures Web Server Database LayerApp Server Browser • Paths • Simplest • Popular • Critical • Complex • Pathological • Challenging • Error Handling • Periodic Testability!
  • 28. Michael Bolton and James Bach Critical Thinking for Testers 28 Visual Strategy Annotation Web Server Database Layer App Server Browser Observation or Oracle Control or Modify Data or Object Activity or Tool Force Fail Path Web Server Database Layer App Server Browser error monitor - error monitor - coverage analysis dropout test dropout test data generator table consistency oracle history oracle man-in-middle performance data high ET stressbots
  • 29. Michael Bolton and James Bach Critical Thinking for Testers 29 Web Server Database Layer App Server Browser Beware Visual Bias! • browser type & version • cookies • security settings • screen size • client-side scripts & applets • usability • specific functions Example data extraction and transformation system
  • 30. Michael Bolton and James Bach Critical Thinking for Testers 30 Example dual head radio testing Example dual head radio testing
  • 31. Michael Bolton and James Bach Critical Thinking for Testers 31 One way to cope with really complex diagrams • Consider making a special diagram that includes only the things that are worth testing, then put the annotations as bullets on the bottom… DB !!Hook PTT Head (P) PC Mic Covert DB !!Hook PTT Head (S) PC Mic Covert Splitter (optional) Power DB Torso (optional) PTT PC Mic DB != DB, DB == DB Disconnect/Connect Start/Stop/Restart/Reset On hook/off hook PTT Y/N Signal arriving at antenna No testing for extender box?! Coverage Screen Match Contrast/Volume Independence Muted/Unmuted Reset on Disconnect Reset on System Error Pops Oracles Happy path Spam test Connection tests (failover) DB interactions Pairwise interactions Head interactions Time (leave it sitting) Ideas PTT Mic Mic PTT Extender box Extender box Extender box Extender box
  • 32. Michael Bolton and James Bach Critical Thinking for Testers 32 Exercise: Overlapping 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 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?
  • 33. Michael Bolton and James Bach Critical Thinking for Testers 33 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.” 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.”