tampere testing days: exploratory testing an api

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

Upload: maaret-pyhaejaervi

Post on 22-Jan-2018

248 views

Category:

Software


2 download

TRANSCRIPT

@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

Teaching Exploratory Testing in a Mob

@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

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

Example A Unit Testing Library

@maaretp http://maaretp.com

The Test Target

@maaretp http://maaretp.com

@maaretp http://maaretp.com

@maaretp http://maaretp.com

@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.com I LEARNED ABOUT THE ENVIRONMENT

@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

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

@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

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

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