SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
@maaretp http://maaretp.com
Exploratory Testing
an API
by Maaret Pyhäjärvi
@maaretp http://maaretp.com
Testers don’t break your
code, they break your
illusions about the code.
-- adapted from James Bach
@maaretp http://maaretp.com
Exploratory testing is a
systematic approach for
discovering risks using
rigorous analysis techniques
coupled with testing heuristics.
@maaretp http://maaretp.com
What Testing gives Us
UnitTesting
ExploratoryTesting
SPEC
FEEDBACK
REGRESSION
GRANULARITY
GUIDANCE
UNDERSTANDING
MODELS
SERENDIPITYTesting as
artifact
creation
Testing as
performance
@maaretp http://maaretp.com
Before
implementing
While
implementing
Before
production
While in
production
Testing as
artifact creation
Testing as
performance
(exploration)
Ways to think of testing peak at different moments with regards to adding a capability
TOTALS
Testing is Everywhere!
@maaretp http://maaretp.com
An application programming
interface (API) is a set of
routines, protocols, and tools
for building software and
applications.
@maaretp http://maaretp.com
Product is my external
imagination
I am my developer’s external imagination
@maaretp http://maaretp.com
Teaching Exploratory Testing
in a Mob
@maaretp http://maaretp.com
Let’s Test!
A Unit Testing Library
@maaretp http://maaretp.com
The Test Target
@maaretp http://maaretp.com
Mob Testing – Rules for the
Exercise
No thinking as the driver
Yes, and…
Kindness, consideration and respect
@maaretp http://maaretp.com
From Michael Sahota
STICKYNOTESDONERIGHT
@maaretp http://maaretp.com
Takeaways
Exploratory Testing an API
@maaretp http://maaretp.com
@maaretp http://maaretp.com
@maaretp http://maaretp.com
@maaretp http://maaretp.com
How to Explore
•  Do something with it
•  Find out what is the common thing to do with it
•  Find out what you could do with it
•  Reflect after anything and everything – make
notes
–  What do we know from other connections?
–  What do we know from empirical evidence?
–  How do we turn it all into empirical evidence?
@maaretp http://maaretp.com
Structure
Function
Data
Platform
Operations
Time
SFDPOT 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
A Few Ideas of Exploratory Testing
•  It’s not just about GUI and finalized features
–  You can explore an API
–  You can adapt to known limitations
•  It’s not just for functional
–  You should do exploratory performance/security …
testing
•  It’s not without automation
–  Sometimes you need to do things humans can’t do! –
exploratory test automation
•  Repeating is seldom an issue
–  Vary the data, the environment, the story around your
testing – exploratory regression testing
@maaretp http://maaretp.com
Patterns of Exploration for
APIs
Lessons Distilled
@maaretp http://maaretp.com
Working with limited
understanding: Focus!
@maaretp http://maaretp.com
Calls and Operations.
Inputs and Outputs.
Exceptions.
@maaretp http://maaretp.com
Target of your testing
vs. the environment
it depends on
@maaretp http://maaretp.com
Specific user with
a specific purpose
@maaretp http://maaretp.com
Why would anyone
use this?
@maaretp http://maaretp.com
Think lifecycle
Versioning and Deprecation
@maaretp http://maaretp.com
Google for Concepts
like “Conservative Overloading Strategy”
@maaretp http://maaretp.com
Fast-track your
understanding:
collaborate
@maaretp http://maaretp.com
Documentation Matters
a Lot for APIs
@maaretp http://maaretp.com
Explore to
create documentation
@maaretp http://maaretp.com
Some patterns become
visible with repetition
@maaretp http://maaretp.com
Disposable
test automation
@maaretp http://maaretp.com
#MobProgrammingGuidebook
@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)

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

AADays Poland: Perfecting the Craft of Test Automation
AADays Poland: Perfecting the Craft of Test AutomationAADays Poland: Perfecting the Craft of Test Automation
AADays Poland: Perfecting the Craft of Test Automation
 
AATC2016: Exploratory testing an API
AATC2016: Exploratory testing an APIAATC2016: Exploratory testing an API
AATC2016: Exploratory testing an API
 
Agile Serbia: Exploratory Testing Explained and Experienced
Agile Serbia: Exploratory Testing Explained and ExperiencedAgile Serbia: Exploratory Testing Explained and Experienced
Agile Serbia: Exploratory Testing Explained and Experienced
 
AgileTD: Mob testing Training Day
AgileTD: Mob testing Training DayAgileTD: Mob testing Training Day
AgileTD: Mob testing Training Day
 
AgileTD: Learning through osmosis
AgileTD: Learning through osmosisAgileTD: Learning through osmosis
AgileTD: Learning through osmosis
 
Geekle QA: Automationist's Gambit
Geekle QA: Automationist's GambitGeekle QA: Automationist's Gambit
Geekle QA: Automationist's Gambit
 
SLASSCOM: Breaking illusions with Testing
SLASSCOM: Breaking illusions with TestingSLASSCOM: Breaking illusions with Testing
SLASSCOM: Breaking illusions with Testing
 
Selenium Summit 21: Contemporary Exploratory Testing
Selenium Summit 21: Contemporary Exploratory TestingSelenium Summit 21: Contemporary Exploratory Testing
Selenium Summit 21: Contemporary Exploratory Testing
 
Testbash Australia: Next Level Teamwork - Pairing and Mobbing
Testbash Australia: Next Level Teamwork - Pairing and MobbingTestbash Australia: Next Level Teamwork - Pairing and Mobbing
Testbash Australia: Next Level Teamwork - Pairing and Mobbing
 
You have no idea what your users want - WordCamp PDX
You have no idea what your users want - WordCamp PDXYou have no idea what your users want - WordCamp PDX
You have no idea what your users want - WordCamp PDX
 
Testing javascript
Testing javascriptTesting javascript
Testing javascript
 
Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When Automating
 
Andrew rusling 21 experiments to increase velocity
Andrew rusling 21 experiments to increase velocityAndrew rusling 21 experiments to increase velocity
Andrew rusling 21 experiments to increase velocity
 
Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604
 
WooCommerce snippets
WooCommerce snippetsWooCommerce snippets
WooCommerce snippets
 
Software User Interface Design Ergonomics
Software User Interface Design ErgonomicsSoftware User Interface Design Ergonomics
Software User Interface Design Ergonomics
 
Adaptive Automation: Tests that Recover Instead of Failing
Adaptive Automation: Tests that Recover Instead of FailingAdaptive Automation: Tests that Recover Instead of Failing
Adaptive Automation: Tests that Recover Instead of Failing
 
Technical Testing Webinar
Technical Testing WebinarTechnical Testing Webinar
Technical Testing Webinar
 
Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021
 
Technology Based Testing
Technology Based TestingTechnology Based Testing
Technology Based Testing
 

Ähnlich wie Agile2016: Exploratory Testing an API

Best practices for JavaScript RIAs
Best practices for JavaScript RIAsBest practices for JavaScript RIAs
Best practices for JavaScript RIAs
Carlos Ble
 

Ähnlich wie Agile2016: Exploratory Testing an API (20)

Test driven development
Test driven developmentTest driven development
Test driven development
 
Rails Testing
Rails TestingRails Testing
Rails Testing
 
App Assessments Reloaded
App Assessments ReloadedApp Assessments Reloaded
App Assessments Reloaded
 
Node.js Development Workflow Automation with Grunt.js
Node.js Development Workflow Automation with Grunt.jsNode.js Development Workflow Automation with Grunt.js
Node.js Development Workflow Automation with Grunt.js
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Agile Software Testing the Agilogy Way
Agile Software Testing the Agilogy WayAgile Software Testing the Agilogy Way
Agile Software Testing the Agilogy Way
 
CBDW2014 - MockBox, get ready to mock your socks off!
CBDW2014 - MockBox, get ready to mock your socks off!CBDW2014 - MockBox, get ready to mock your socks off!
CBDW2014 - MockBox, get ready to mock your socks off!
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 
we45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Pythonwe45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Python
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-Driven
 
Test
TestTest
Test
 
Best practices for JavaScript RIAs
Best practices for JavaScript RIAsBest practices for JavaScript RIAs
Best practices for JavaScript RIAs
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
 
WebTest - Efficient Functional Web Testing with HtmlUnit and Beyond
WebTest - Efficient Functional Web Testing with HtmlUnit and BeyondWebTest - Efficient Functional Web Testing with HtmlUnit and Beyond
WebTest - Efficient Functional Web Testing with HtmlUnit and Beyond
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E Tests
 
Rtt preso
Rtt presoRtt preso
Rtt preso
 
You and your code.pdf
You and your code.pdfYou and your code.pdf
You and your code.pdf
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
Bsides Knoxville - APT2
Bsides Knoxville - APT2Bsides Knoxville - APT2
Bsides Knoxville - APT2
 
Exploratory Testing on Computer interfaces
Exploratory Testing on Computer interfacesExploratory Testing on Computer interfaces
Exploratory Testing on Computer interfaces
 

Mehr von Maaret Pyhäjärvi

AxiomSummit 2022: A Practitioner's Guide to Contemporary Exploratory Testing
AxiomSummit 2022: A Practitioner's Guide to Contemporary Exploratory TestingAxiomSummit 2022: A Practitioner's Guide to Contemporary Exploratory Testing
AxiomSummit 2022: A Practitioner's Guide to Contemporary Exploratory Testing
Maaret Pyhäjärvi
 

Mehr von 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
 
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
 
SauceCon: It's More Complicated than THAT
SauceCon: It's More Complicated than THATSauceCon: It's More Complicated than THAT
SauceCon: It's More Complicated than THAT
 
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
 
Let's Do a Thing and Call it Foo
Let's Do a Thing and Call it FooLet's Do a Thing and Call it Foo
Let's Do a Thing and Call it Foo
 
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
 
AxiomSummit 2022: A Practitioner's Guide to Contemporary Exploratory Testing
AxiomSummit 2022: A Practitioner's Guide to Contemporary Exploratory TestingAxiomSummit 2022: A Practitioner's Guide to Contemporary Exploratory Testing
AxiomSummit 2022: A Practitioner's Guide to Contemporary Exploratory Testing
 
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
 
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
 

Kürzlich hochgeladen

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Kürzlich hochgeladen (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Agile2016: Exploratory Testing an API