@maaretp
@maaretp@mas.to
by Maaret Pyhäjärvi
Let’s Do A Thing
and Call it Foo
Slide 2
Slide 2 text
@maaretp
@maaretp@mas.to
The terms foobar (/ˈfuːbɑːr/), foo, bar, baz, and others are
used as metasyntactic variables and placeholder
names in computer programming or computer-related
documentation.[1] They have been used to name entities
such as variables, functions, and commands whose
exact identity is unimportant and serve
only to demonstrate a concept.
https://en.wikipedia.org/wiki/Foobar
Slide 3
Slide 3 text
@maaretp
@maaretp@mas.to
Stakeholders happy,
even delighted
–Quality Information
Good Team’s Output
–Quality Information
Less than Good
Team’s Output
–Quality Information
Results Gap
Surprise!
Results Gap
on a Team that thinks
Testers == Testing
Pick up the pizza boxes…
”Find (some of) What Others May Have Missed”
@maaretp
@maaretp@mas.to
CTRL+enter for alternatives
Slide 6
Slide 6 text
@maaretp
@maaretp@mas.to
CTRL+enter for alternatives
Slide 7
Slide 7 text
@maaretp
@maaretp@mas.to
WE are
accountable
1. Intent / Implementation
2. Domain for the Layman
3. Domain for the Expert
4. Reference Implementation
5. People Filtering
Slide 8
Slide 8 text
@maaretp
@maaretp@mas.to
Say We Have This…
Done?
Slide 9
Slide 9 text
@maaretp
@maaretp@mas.to
Shapes of Approaches
Asserts
Approvals
Slide 10
Slide 10 text
@maaretp
@maaretp@mas.to
From One to Many
Asserts
Approvals
Slide 11
Slide 11 text
@maaretp
@maaretp@mas.to
Domain rules: 1V à IIII in clock design as
per orders of King Louis XIV of France
https://www.amalgamsab.com/iiii-or-is-it-iv.html
@maaretp
@maaretp@mas.to
Answer Key to Some of the Bugs
• Values over 4k don’t work (without extending to line-on-top notation)
– Zeros, fractions, large numbers later in scope
• Decimal values truncated vs. rounded
• *some of the implementations*
– Boundary values miscalculated
– Infinite loop
• Implementing Classic when expecting Simplified
• Got someone’s code without license text!
Slide 24
Slide 24 text
@maaretp
@maaretp@mas.to
Insights from 8 rounds of pair/ensemble testing
• Unit Exploratory Testing is FAST
• Concepts: Parametrized tests, pytest.raises, approvaltests
• Selecting vs. oversampling for finding boundaries
• Choosing later what is left behind (if dropping tests is worth
the investment)
• Both valid and invalid values, balance and role-based heuristics
• Fooling a domain expert on conflicting domain rules
surprising how versatile a simple appearing domain is
@maaretp
@maaretp@mas.to
A majority of the
production failures (77%)
can be reproduced by a
unit test.
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf
Through https://www.slideshare.net/Kevlin/the-error-of-our-ways
Slide 27
Slide 27 text
@maaretp
@maaretp@mas.to
Slide 28
Slide 28 text
@maaretp
@maaretp@mas.to
Everything that does not
need to be automated gets
done while automating.
* Programming with thinking – quality of thinking matters
Slide 29
Slide 29 text
@maaretp
@maaretp@mas.to
WE are
accountable
1. Intent / Implementation
2. Domain for the Layman
3. Domain for the Expert
4. Reference Implementation
5. People Filtering
Slide 30
Slide 30 text
@maaretp
@maaretp@mas.to
Find (some of) what
others may have missed!
Testing
… and never be bored.
Slide 31
Slide 31 text
@maaretp
@maaretp@mas.to
For pair / ensemble testing this with me <3
Thank You
Alex, Elisabeth, Bertold, Thomas,
Mirja, Karen, Moroni, Isidro,
Benjamin & Testing Dozen #1
Slide 32
Slide 32 text
@maaretp
@maaretp@mas.to
2020 2016
MIATPP
Most Influential Agile Testing
Professional Person
#PayToSpeak #TechVoices
#EnsembleTesting #EnsembleProgramming #StrongStylePairing
#ExploratoryTesting #TestAutomation
#ModernAgile
#AwesomeTesters
Maaret Pyhäjärvi
(from Finland)
Email: maaret@iki.fi
Twitter: @maaretp
Web: maaretp.com
Blog: visible-quality.blogspot.fi
(please connect with me through
Twitter or LinkedIn)
2019 - 2022
https://exploratorytestingacademy.com
Ohjelmistotestaus ry
https://techvoices.org