2. @maaretp
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
3. @maaretp
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 aTeam that thinks
Testers ==Testing
Pick up the pizza boxes…
”Find (some of) What Others May Have Missed”
4. @maaretp
For pair / ensemble testing this with me <3
Thank You
Alex, Elisabeth, Bertold,Thomas,
Mirja, Karen, Moroni, Isidro,
Benjamin
6. @maaretp
WE are
accountable
1. Intent / Implementation
2. Domain for the Layman
3. Domain for the Expert
4. Reference Implementation
5. People Filtering
18. @maaretp
Say it in English - Options
#We want to translate numbers to
roman numerals.
#convert numbers to roman numbers
# Convert numbers to roman numerals
# convert decimals to roman numerals
# Convert numbers to roman numberals
# translating numbers to roman numerals
# convert decimal numbers to roman
numerals
#Check that roman is an integer
# Raise an exception if not a numeric
value
# Raise an exception if not a valid
number
# catchTypeError if num is not an integer
# catchValueError if num is not within
range
19. @maaretp
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
20. @maaretp
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
21. @maaretp
WE are
accountable
1. Intent / Implementation
2. Domain for the Layman
3. Domain for the Expert
4. Reference Implementation
5. People Filtering
23. @maaretp
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