@maaretp http://maaretp.com
Breaking Illusions
with Testing
by Maaret Pyhäjärvi
@maaretp http://maaretp.com
A FewYears Ago…
@maaretp http://maaretp.com
@maaretp http://maaretp.com
http://visible-quality.blogspot.fi/2017/03/from-appreciation-of-shallow-testing.html
She's like "I want to exploratory
test your ApprovalTests" and I'm
like "Yeah, go for it", cause it's all
written test first and its code I'm
very proud of. And she destroyed it
in like an hour and a half.
@maaretp http://maaretp.com
Testers don’t break
the code, they break
your illusions about
the code.
- Adapted from James Bach
@maaretp http://maaretp.com
@maaretp http://maaretp.com
Code doing what it’s supposed to.
Product doing what it would need to.
Product doing only what it is supposed to do.
Basic Illusions: Code Making a Product
Other Illusions: Ideas Leading to Code
Process being able to deliver with a change in mind
People having skills to deliver well.
Business model driving the selection of right focus.
@maaretp http://maaretp.com
How?
@maaretp http://maaretp.com
(Exploratory)
Tester
Product is my
external
imagination
@maaretp http://maaretp.com
Never be bored.
Heuristics
@maaretp http://maaretp.com
In the beginning, you
know the least.
Heuristics
@maaretp http://maaretp.com
Poke it until it pops
Variable recognition and persistency heuristics from Alexandra Schladebeck
Heuristics
@maaretp http://maaretp.com
@maaretp http://maaretp.com
Structure
Function
Data
Platform
Operations
Time
Idea generation heuristics from James Bach / Michael Bolton, Rapid SoftwareTesting
@maaretp http://maaretp.com
Approvers do
•  Formatting
•  Sorting
•  File Extensions
•  Scrubbing (removing common inconsistencies)
•  Serialization(saving to a file)
•  Mocking
•  Proxying
•  Rendering
•  Execution (e.g. retrieve the URL)
•  Aggregating test cases
•  File naming
•  PRINCIPLE: ”Every time you handle this type of object, you do
these things to it.”
I LEARNED ABOUT FUNCTIONS
@maaretp http://maaretp.com
Reporters do
•  Waiting
•  Scrubbing (removing common inconsistencies)
•  Execution
•  Launching
•  Serialization
•  Decompilation
•  Chain of responsibility
•  Creating Approved file
•  Environmental awareness
I LEARNED ABOUT FUNCTIONS
@maaretp http://maaretp.comI LEARNED ABOUTTHE ENVIRONMENT
@maaretp http://maaretp.com
@maaretp http://maaretp.com
Code doing what it’s
supposed to.
Product doing what it would
need to.
Product doing only what it is
supposed to do.
@maaretp http://maaretp.com
Three Other Illusions
The Ideas Leading into Code
@maaretp http://maaretp.com
Illusion typeVI:
Business model
driving the
selection of right
focus.
@maaretp http://maaretp.com
Insight and illustration
from Allan Kelly, @allankellynet
@maaretp http://maaretp.com
Illusion typeV:
People having
skills to deliver
well.
@maaretp http://maaretp.com
@maaretp http://maaretp.com
Illusion type IV:
Process being able
to deliver with
change in mind.
@maaretp http://maaretp.com
Cognitive
Dissonance
@maaretp http://maaretp.com
Continuous Delivery
No Jira
No Estimates
No Product Owner
No Projects
No Scrum
@maaretp http://maaretp.com
Learning
Superpower and core of
exploring
@maaretp http://maaretp.com
vs.
LinearViewpoint
I know
everything
you do!
You have
nothing left
to teach me
Reality
I know more
than you do!
There is still so
much more I
can learn from
you
Learning
@maaretp http://maaretp.com
Things Can Look Different from
Different Perspectives
@maaretp http://maaretp.com31
@maaretp http://maaretp.com
@maaretp http://maaretp.com
Lesson 1. Testing is not using the
system.You need to be more
driven to information and
understanding. More intentional.
@maaretp http://maaretp.com
Lesson 2. Intent is not enough.
Serendipity happens through
elements of play and making
unplanned connections.Awareness
of what you know and how you
know it becomes essential.
@maaretp http://maaretp.com
Lesson 3.You are in control.
When system gives you a hard
constraint, there are still ways you
can work through that constraint.
If you can simplify or isolate, do
that. Complex can happen later.
@maaretp http://maaretp.com
Lesson 4.Testability.When
something is hard to do,
remember there’s a developer
somewhere who needs to share
the pain to build smarter next
time.
@maaretp http://maaretp.com
Lesson 5.You got tools. Find
them.You pull in what you
need, not rely on just what
you’re given.
@maaretp http://maaretp.com
Lesson 6.Yes, that automation of
permutations integrated with
vocabulary would come in handy.
What you can’t find but want, you
can build.
@maaretp http://maaretp.com
Lesson 7. It really does not
calculate scores right. But does
that matter - what is quality for
this game? What creates emotions
relevant enough to impact user’s
behavior?
@maaretp http://maaretp.com
Serendipity and
Perseverance
@maaretp http://maaretp.com
The more I practice, the
luckier I get
– Arnold Palmer
@maaretp http://maaretp.com
It’s not that I’m so smart,
I just stay with the
problems longer.
– Albert Einstein
See also:
http://blogs.scientificamerican.com/guest-blog/the-forgotten-life-of-einsteins-first-wife/
@maaretp http://maaretp.com
Maaret Pyhäjärvi
Email: maaret@iki.fi
Twitter: @maaretp
Web: maaretp.com
Blog: visible-quality.blogspot.fi
(please connect with me through
Twitter or LinkedIn)

AGRS2019: Breaking illusions with Testing