Top Banner
@maaretp http://maaretp.com Exploratory Testing an API by Maaret Pyhäjärvi
32

Tampere Testing Days: Exploratory Testing an API

Jan 22, 2018

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Exploratory Testing an API

by Maaret Pyhäjärvi

Page 2: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Testers don’t break your code, they break your

illusions about the code. -- adapted from James Bach

Page 3: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Exploratory testing is a systematic approach for discovering risks using

rigorous analysis techniques coupled with testing heuristics.

Page 4: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Teaching Exploratory Testing in a Mob

Page 5: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

An application programming interface (API) is a set of

routines, protocols, and tools for building software and

applications.

Page 6: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Product is my external imagination

I am my developer’s external imagination

Page 7: Tampere Testing Days: Exploratory Testing an API

@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?

Page 8: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Example A Unit Testing Library

Page 9: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

The Test Target

Page 10: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Page 11: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Page 12: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Page 13: Tampere Testing Days: Exploratory Testing an API

@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

Page 14: Tampere Testing Days: Exploratory Testing an API

@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

Page 15: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com I LEARNED ABOUT THE ENVIRONMENT

Page 16: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Patterns of Exploration for APIs

Lessons Distilled

Page 17: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Working with limited understanding: Focus!

Page 18: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Calls and Operations. Inputs and Outputs.

Exceptions.

Page 19: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Target of your testing vs. the environment

it depends on

Page 20: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Specific user with a specific purpose

Page 21: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Why would anyone use this?

Page 22: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Think lifecycle Versioning and Deprecation

Page 23: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Google for Concepts like “Conservative Overloading Strategy”

Page 24: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Fast-track your understanding:

collaborate

Page 25: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Documentation Matters a Lot for APIs

Page 26: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Explore to create documentation

Page 27: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Some patterns become visible with repetition

Page 28: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Disposable test automation

Page 29: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

What Testing gives Us U

nit T

estin

g

Expl

orat

ory T

estin

g

SPEC FEEDBACK REGRESSION GRANULARITY

GUIDANCE UNDERSTANDING

MODELS SERENDIPITY Testing as

artifact creation

Testing as performance

Page 30: Tampere Testing Days: Exploratory Testing an API

@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!

Page 31: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

The value of another’s experience is to give us

hope, not to tell us how or whether to proceed

- Peter Block

Experience Reports over Definitions or Methods

Page 32: Tampere Testing Days: Exploratory Testing an API

@maaretp http://maaretp.com

Maaret Pyhäjärvi Email: [email protected] Twitter: @maaretp Web: maaretp.com Blog: visible-quality.blogspot.fi (please connect with me through Twitter or LinkedIn)