SlideShare a Scribd company logo
1 of 27
Download to read offline
@maaretp
Let’s Do a Thing and
Call it Foo
by Maaret Pyhäjärvi
@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
@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”
@maaretp
For pair / ensemble testing this with me <3
Thank You
Alex, Elisabeth, Bertold,Thomas,
Mirja, Karen, Moroni, Isidro,
Benjamin
@maaretp
Computer Assisted
Software Authorship
https://github.com/features/copilot/
@maaretp
WE are
accountable
1. Intent / Implementation
2. Domain for the Layman
3. Domain for the Expert
4. Reference Implementation
5. People Filtering
@maaretp
CASA (Computer
Assisted Software
Authorship) in action
@maaretp
https://en.wikipedia.org/wiki/Roman_numerals
@maaretp
@maaretp
@maaretp
One Solution
@maaretp
Some Tests
@maaretp
References…
@maaretp
References…
@maaretp
References…
@maaretp
ApprovalTests
@maaretp
Two Tests,
Three ways
@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
@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
@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
@maaretp
WE are
accountable
1. Intent / Implementation
2. Domain for the Layman
3. Domain for the Expert
4. Reference Implementation
5. People Filtering
@maaretp
@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
@maaretp
Everything that does not
need to be automated gets
done while automating.
@maaretp
Foo
Contemporary
Exploratory Testing
@maaretp
Find (some of) what
others may have missed!
Testing
… and never be bored.
@maaretp
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, 2020, 2021
https://exploratorytestingacademy.com
Ohjelmistotestaus ry
https://techvoices.org

More Related Content

Similar to Let's Do a Thing and Call it Foo

How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
Mike Harris
 
Lab 10.doc
Lab 10.docLab 10.doc
Lab 10.doc
butest
 
Lab 10.doc
Lab 10.docLab 10.doc
Lab 10.doc
butest
 

Similar to Let's Do a Thing and Call it Foo (20)

Agile2016: Exploratory Testing an API
Agile2016: Exploratory Testing an APIAgile2016: Exploratory Testing an API
Agile2016: Exploratory Testing an API
 
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
 
Selenium Conf: Patterns to Whole Team Test Automation Transformation
Selenium Conf: Patterns to Whole Team Test Automation TransformationSelenium Conf: Patterns to Whole Team Test Automation Transformation
Selenium Conf: Patterns to Whole Team Test Automation Transformation
 
Open source bridge testing antipatterns presentation
Open source bridge testing antipatterns presentationOpen source bridge testing antipatterns presentation
Open source bridge testing antipatterns presentation
 
Session on Contemporary Exploratory Testing by Maaret Pyhäjärvi
Session on Contemporary Exploratory Testing by Maaret PyhäjärviSession on Contemporary Exploratory Testing by Maaret Pyhäjärvi
Session on Contemporary Exploratory Testing by Maaret Pyhäjärvi
 
Selenium Summit 21: Contemporary Exploratory Testing
Selenium Summit 21: Contemporary Exploratory TestingSelenium Summit 21: Contemporary Exploratory Testing
Selenium Summit 21: Contemporary Exploratory Testing
 
Lab 10.doc
Lab 10.docLab 10.doc
Lab 10.doc
 
Lab 10.doc
Lab 10.docLab 10.doc
Lab 10.doc
 
TestJSConf: Go Find What We May Have Missed
TestJSConf: Go Find What We May Have MissedTestJSConf: Go Find What We May Have Missed
TestJSConf: Go Find What We May Have Missed
 
rTest, a Testing Tool for FME Workspaces
rTest, a Testing Tool for FME WorkspacesrTest, a Testing Tool for FME Workspaces
rTest, a Testing Tool for FME Workspaces
 
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
 
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
 
MoT Sfax: Good Exploratory Testing Tactics for Taking Over Testing
MoT Sfax: Good Exploratory Testing Tactics for Taking Over TestingMoT Sfax: Good Exploratory Testing Tactics for Taking Over Testing
MoT Sfax: Good Exploratory Testing Tactics for Taking Over Testing
 
CraftConf: How Would You Test a Test Field?
CraftConf: How Would You Test a Test Field?CraftConf: How Would You Test a Test Field?
CraftConf: How Would You Test a Test Field?
 
QAI QUEST 2016 Webinar Series: Pairwise Testing w/ Philip Lew
QAI QUEST 2016 Webinar Series: Pairwise Testing w/ Philip LewQAI QUEST 2016 Webinar Series: Pairwise Testing w/ Philip Lew
QAI QUEST 2016 Webinar Series: Pairwise Testing w/ Philip Lew
 
Optimizing thread performance for a genomics variant caller
Optimizing thread performance for a genomics variant callerOptimizing thread performance for a genomics variant caller
Optimizing thread performance for a genomics variant caller
 
Shift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David LaulusaShift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David Laulusa
 
Design smells
Design smellsDesign smells
Design smells
 
Testing smells
Testing smellsTesting smells
Testing smells
 
The Evolution of Development Testing
The Evolution of Development TestingThe Evolution of Development Testing
The Evolution of Development Testing
 

More from Maaret Pyhäjärvi

More from Maaret Pyhäjärvi (20)

ATAGTR '20 Keynote: Building status
ATAGTR '20 Keynote: Building statusATAGTR '20 Keynote: Building status
ATAGTR '20 Keynote: Building status
 
MoT Cork: Exploring Realities of Testing - From Theory to Practice
MoT Cork: Exploring Realities of Testing - From Theory to PracticeMoT Cork: Exploring Realities of Testing - From Theory to Practice
MoT Cork: Exploring Realities of Testing - From Theory to Practice
 
Testing Voices '21 keynote: Testing Becoming Harder To BeValuable
Testing Voices '21 keynote: Testing Becoming Harder To BeValuableTesting Voices '21 keynote: Testing Becoming Harder To BeValuable
Testing Voices '21 keynote: Testing Becoming Harder To BeValuable
 
TSQA: Something In The Way We Test
TSQA: Something In The Way We TestTSQA: Something In The Way We Test
TSQA: Something In The Way We Test
 
ATAGTR: Targeting Errors Of Omission
ATAGTR: Targeting Errors Of OmissionATAGTR: Targeting Errors Of Omission
ATAGTR: Targeting Errors Of Omission
 
Pivotal Moments, Pivotal Experiences
Pivotal Moments, Pivotal ExperiencesPivotal Moments, Pivotal Experiences
Pivotal Moments, Pivotal Experiences
 
Keynote at Sanae Beer.EX: The Automationist's Gambit
Keynote at Sanae Beer.EX: The Automationist's GambitKeynote at Sanae Beer.EX: The Automationist's Gambit
Keynote at Sanae Beer.EX: The Automationist's Gambit
 
Testing Assembly: From Observations to Insights on Test Specialist Careers
Testing Assembly: From Observations to Insights on Test Specialist CareersTesting Assembly: From Observations to Insights on Test Specialist Careers
Testing Assembly: From Observations to Insights on Test Specialist Careers
 
Geekle QA: Automationist's Gambit
Geekle QA: Automationist's GambitGeekle QA: Automationist's Gambit
Geekle QA: Automationist's Gambit
 
Programming Assignments in Tester Interviews
Programming Assignments in Tester InterviewsProgramming Assignments in Tester Interviews
Programming Assignments in Tester Interviews
 
ATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
ATAGTR Keynote: I have a rock in my shoe - Navigating ImprovementATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
ATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
 
MoT Sarajevo: How to get better at Exploratory testing
MoT Sarajevo: How to get better at Exploratory testingMoT Sarajevo: How to get better at Exploratory testing
MoT Sarajevo: How to get better at Exploratory testing
 
HUSTEF '21 Keynote: Hands Off Exploratory Testing - Managing at Scale
HUSTEF '21 Keynote: Hands Off Exploratory Testing - Managing at ScaleHUSTEF '21 Keynote: Hands Off Exploratory Testing - Managing at Scale
HUSTEF '21 Keynote: Hands Off Exploratory Testing - Managing at Scale
 
EuroSTAR '21 Keynote: Automationist's Gambit
EuroSTAR '21 Keynote: Automationist's GambitEuroSTAR '21 Keynote: Automationist's Gambit
EuroSTAR '21 Keynote: Automationist's Gambit
 
AppiumLite Keynote: Many Hats to Make a Tester
AppiumLite Keynote: Many Hats to Make a TesterAppiumLite Keynote: Many Hats to Make a Tester
AppiumLite Keynote: Many Hats to Make a Tester
 
Hands off Exploratory Testing - Managing Testing at Scale
Hands off Exploratory Testing - Managing Testing at ScaleHands off Exploratory Testing - Managing Testing at Scale
Hands off Exploratory Testing - Managing Testing at Scale
 
Breakpoint 2021: Contemporary exploratorytesting
Breakpoint 2021: Contemporary exploratorytestingBreakpoint 2021: Contemporary exploratorytesting
Breakpoint 2021: Contemporary exploratorytesting
 
SLASSCOM: Breaking illusions with Testing
SLASSCOM: Breaking illusions with TestingSLASSCOM: Breaking illusions with Testing
SLASSCOM: Breaking illusions with Testing
 
Mimmit Koodaa - Testiautomaatio on testauksen dokumentointia
Mimmit Koodaa - Testiautomaatio on testauksen dokumentointiaMimmit Koodaa - Testiautomaatio on testauksen dokumentointia
Mimmit Koodaa - Testiautomaatio on testauksen dokumentointia
 
Testing United - Social Software Testing Approaches
Testing United - Social Software Testing ApproachesTesting United - Social Software Testing Approaches
Testing United - Social Software Testing Approaches
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 

Let's Do a Thing and Call it Foo