Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
@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...
@maaretp http://maaretp.com
Exploratory testing is a
systematic approach for
discovering risks using
rigorous analysis tec...
@maaretp http://maaretp.com
What Testing gives Us
UnitTesting
ExploratoryTesting
SPEC
FEEDBACK
REGRESSION
GRANULARITY
GUID...
@maaretp http://maaretp.com
Before
implementing
While
implementing
Before
production
While in
production
Testing as
artifa...
@maaretp http://maaretp.com
An application programming
interface (API) is a set of
routines, protocols, and tools
for buil...
@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, considerati...
@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
•  F...
@maaretp http://maaretp.com
Structure
Function
Data
Platform
Operations
Time
SFDPOT heuristics from James Bach / Michael B...
@maaretp http://maaretp.com
Approvers do
•  Formatting
•  Sorting
•  File Extensions
•  Scrubbing (removing common inconsi...
@maaretp http://maaretp.com
Reporters do
•  Waiting
•  Scrubbing (removing common inconsistencies)
•  Execution
•  Launchi...
@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 ca...
@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...
Upcoming SlideShare
Loading in …5
×

Agile2016: Exploratory Testing an API

757 views

Published on

The session materials from Agile2016 for my session

Published in: Software
  • Be the first to comment

  • Be the first to like this

Agile2016: Exploratory Testing an API

  1. 1. @maaretp http://maaretp.com Exploratory Testing an API by Maaret Pyhäjärvi
  2. 2. @maaretp http://maaretp.com Testers don’t break your code, they break your illusions about the code. -- adapted from James Bach
  3. 3. @maaretp http://maaretp.com Exploratory testing is a systematic approach for discovering risks using rigorous analysis techniques coupled with testing heuristics.
  4. 4. @maaretp http://maaretp.com What Testing gives Us UnitTesting ExploratoryTesting SPEC FEEDBACK REGRESSION GRANULARITY GUIDANCE UNDERSTANDING MODELS SERENDIPITYTesting as artifact creation Testing as performance
  5. 5. @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!
  6. 6. @maaretp http://maaretp.com An application programming interface (API) is a set of routines, protocols, and tools for building software and applications.
  7. 7. @maaretp http://maaretp.com Product is my external imagination I am my developer’s external imagination
  8. 8. @maaretp http://maaretp.com Teaching Exploratory Testing in a Mob
  9. 9. @maaretp http://maaretp.com Let’s Test! A Unit Testing Library
  10. 10. @maaretp http://maaretp.com The Test Target
  11. 11. @maaretp http://maaretp.com Mob Testing – Rules for the Exercise No thinking as the driver Yes, and… Kindness, consideration and respect
  12. 12. @maaretp http://maaretp.com From Michael Sahota STICKYNOTESDONERIGHT
  13. 13. @maaretp http://maaretp.com Takeaways Exploratory Testing an API
  14. 14. @maaretp http://maaretp.com
  15. 15. @maaretp http://maaretp.com
  16. 16. @maaretp http://maaretp.com
  17. 17. @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?
  18. 18. @maaretp http://maaretp.com Structure Function Data Platform Operations Time SFDPOT heuristics from James Bach / Michael Bolton, Rapid SoftwareTesting
  19. 19. @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
  20. 20. @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
  21. 21. @maaretp http://maaretp.comI LEARNED ABOUTTHE ENVIRONMENT
  22. 22. @maaretp http://maaretp.com
  23. 23. @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
  24. 24. @maaretp http://maaretp.com Patterns of Exploration for APIs Lessons Distilled
  25. 25. @maaretp http://maaretp.com Working with limited understanding: Focus!
  26. 26. @maaretp http://maaretp.com Calls and Operations. Inputs and Outputs. Exceptions.
  27. 27. @maaretp http://maaretp.com Target of your testing vs. the environment it depends on
  28. 28. @maaretp http://maaretp.com Specific user with a specific purpose
  29. 29. @maaretp http://maaretp.com Why would anyone use this?
  30. 30. @maaretp http://maaretp.com Think lifecycle Versioning and Deprecation
  31. 31. @maaretp http://maaretp.com Google for Concepts like “Conservative Overloading Strategy”
  32. 32. @maaretp http://maaretp.com Fast-track your understanding: collaborate
  33. 33. @maaretp http://maaretp.com Documentation Matters a Lot for APIs
  34. 34. @maaretp http://maaretp.com Explore to create documentation
  35. 35. @maaretp http://maaretp.com Some patterns become visible with repetition
  36. 36. @maaretp http://maaretp.com Disposable test automation
  37. 37. @maaretp http://maaretp.com #MobProgrammingGuidebook
  38. 38. @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)

×