Successfully reported this slideshow.

Agile2016: Exploratory Testing an API

1

Share

Loading in …3
×
1 of 38
1 of 38

More Related Content

More from Maaret Pyhäjärvi

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

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)

×