exploratory testing foundations

84
Exploratory Testing Foundations Maaret Pyhäjärvi Exploratory Testing Foundations by Maaret Pyhäjärvi is licensed under CC BY 4.0 @maaretp

Upload: others

Post on 29-Dec-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Exploratory Testing Foundations

Exploratory Testing

FoundationsMaaret Pyhäjärvi

Exploratory Testing Foundations by Maaret

Pyhäjärvi is licensed under CC BY 4.0 @maaretp

Page 2: Exploratory Testing Foundations

@maaretp http://maaretp.com

Optimizing the value of testing

Page 3: Exploratory Testing Foundations

@maaretp http://maaretp.com

Test Design

(ideas)

Test Execution

(information)

Learning

Page 4: Exploratory Testing Foundations

@maaretp http://maaretp.com

Exploratory Testing the Verb

Doing

TestingINPUT OUTPUT

Page 5: Exploratory Testing Foundations

@maaretp http://maaretp.com

InputTester

Domain knowledge

Requirements and specifications

Testing knowledge

Miscellaneous knowledge

Doing

TestingINPUT OUTPUT

Page 6: Exploratory Testing Foundations

@maaretp http://maaretp.com

OutputBetter tester

Coverage

Information incl. defects and change requests

Documentation: Strategy

Documentation: Tests

Doing

TestingINPUT OUTPUT

Page 7: Exploratory Testing Foundations

Chapter 1: Test target and our options for

exploring

Chapter 2: Self-management basics on

setting yourself constraints

Chapter 3: The moment of first impression

Chapter 4: Recognizing and learning a

domain

Chapter 5: Recognizing functionality

Chapter 6: Recognizing data

Chapter 7: Recognizing application and

execution environment

Chapter 8: Documenting in a mindmap

Chapter 9: Robot framework the very

basics

Chapter 10: Documenting as skeleton test

automation

Chapter 11: Robot framework browser

library and CSS selectors on web pages

Chapter 12: Documenting as executable

test automation

Chapter 13: Why this is not about Robot

Framework

Chapter 14: Use of time

Chapter 15: Coverage

Chapter 16: Test Strategy

Chapter 17: Closing remarks

Course Outline

Page 8: Exploratory Testing Foundations

Course OutlineSection 1: Options for Exploring

Section II: Control through Choices

Section III: Documenting (with Automation)

Extending with Function, Data,

Environment and Domain

Section IV: Use of time and coverage

1

2

3

4-13

14-17

Page 9: Exploratory Testing Foundations

Test Target and Our Options for Exploring

Chapter 1

Page 10: Exploratory Testing Foundations

@maaretp http://maaretp.com

Page 11: Exploratory Testing Foundations

Stop-and-Think:

Options for Exploring

What would you do first, and soon

after you get started?

List all things that come to your mind

about how you could test this. What

would you start from? What you

would not do?

Page 12: Exploratory Testing Foundations

@maaretp http://maaretp.com

Options for ExploringResearch the Domain

Use it with a constraint

Page 13: Exploratory Testing Foundations

Self-management Basics on Setting Yourself

ConstraintsChapter 2

Page 14: Exploratory Testing Foundations

@maaretp http://maaretp.com

Charters

Elizabeth Zagroba’s concise template adapted

from Elizabeth Hendrickson’s template

Page 15: Exploratory Testing Foundations

@maaretp http://maaretp.com

Choose Your Own Constraint

Deliberately excluding perspectives!

Never Be Bored!

Page 16: Exploratory Testing Foundations

@maaretp http://maaretp.com

Explore with Intent

Mission Charter

Other

ChartersDetails

INT

EN

TL

EA

RN

ING

S

Page 17: Exploratory Testing Foundations

Stop-and-Think:

Charters, Constraints,

Intent

You’re approaching the moment of

first impression. How do you want to

frame your moment of first

impression?

Page 18: Exploratory Testing Foundations

The Moment of First Impression

Chapter 3

Page 19: Exploratory Testing Foundations

@maaretp http://maaretp.com

Options ExpireCapture First Impression

Borrow someone else’s First Impression

Timing of feedback changes reaction to it!

Page 20: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 21: Exploratory Testing Foundations

@maaretp http://maaretp.com

Example: Test Results, Red is Bug

Page 22: Exploratory Testing Foundations

@maaretp http://maaretp.com

Bugs are Conversation

StartersBug is anything that might bug a user.

You start conversations about defects and

change requests.

Page 23: Exploratory Testing Foundations

Recognizing and Learning a Domain

Chapter 4

Page 24: Exploratory Testing Foundations

@maaretp http://maaretp.com

ConferenceReferenceInference

Page 25: Exploratory Testing Foundations

@maaretp http://maaretp.com

Page 26: Exploratory Testing Foundations

@maaretp http://maaretp.com

Page 27: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 28: Exploratory Testing Foundations

Learning of Domain of E-Primer

Core Idea Writing English language

avoiding verb “be” in all

its forms

Why? Someone claims it had

benefits, intellectual

challenge

Examples Used in sentences

Listed examples

Sample texts The Bible!

Page 29: Exploratory Testing Foundations

Recognizing Functionality

Chapter 5

Page 30: Exploratory Testing Foundations

@maaretp http://maaretp.com

Naming of FunctionFunctions in Code

Expected Features

Visible Features

Page 31: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 32: Exploratory Testing Foundations

Learning of Function of E-Primer

Input Text field and button

Output Three numbers, text area

Containers Resizable text field,

resizable browser

window, page

Presentation Fonts, text and element

sizes, order of functions

Browser Settings, zoom

Algorithm Recognizing eprime

Page 33: Exploratory Testing Foundations

Recognizing DataChapter 6

Page 34: Exploratory Testing Foundations

@maaretp http://maaretp.com

Data or Variables

Function

Dat

a

Page 35: Exploratory Testing Foundations

@maaretp http://maaretp.com

Versatile DataLifecycle of Data: Create, Read, Update,

Delete

Known problematic inputs: GitHub Naughty

Stringshttps://github.com/minimaxir/big-list-of-naughty-strings/blob/master/blns.txt

Page 36: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 37: Exploratory Testing Foundations

Learning of Data of E-Primer

Word

delimiter

Space, wordcount breaks

with characters and line

change

Types of

apostrophes

Typesetter / typewriter

Long text Copied / tool generated

Valid eprime Recognizing right as right

Eprime

violations

Recognizing wrong as

wrong

Page 38: Exploratory Testing Foundations

Recognizing Application and Execution Environment

Chapter 7

Page 39: Exploratory Testing Foundations

@maaretp http://maaretp.com

What You Coded is a Bad Constraint

Page 40: Exploratory Testing Foundations

@maaretp http://maaretp.com

Execution Environment

Different browsers: web and mobile

Browser functionality and add-ons

HTML standard compatibility

Accessibility standard compatibility

Page 41: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 42: Exploratory Testing Foundations

Learning of Application and Execution Environment of E-Primer

Browser Chrome, Brave, …

Screen size Web, Mobile

Browser

Settings

Zoom, Security, …

Add-ons BugMagnet

Validators HTML, Accessibility, …

Page 43: Exploratory Testing Foundations

Documenting in a Mindmap

Chapter 8

Page 44: Exploratory Testing Foundations

@maaretp http://maaretp.com

Mindmap

Page 45: Exploratory Testing Foundations

@maaretp http://maaretp.com

R eplicate

I solate

M azimize

G eneralize

E xternalize

N eutral toneCem

Kan

er.

Bug

Report

ing

Heuri

stic

.

BugR

epor

ts

Page 46: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 47: Exploratory Testing Foundations

Mindmapping as Future Reference

Notetaking in the moment

Restructure as you learn

Documentation for the future

General purpose mindmaps

Page 48: Exploratory Testing Foundations

Robot Framework the Very Basics

Chapter 9

Page 49: Exploratory Testing Foundations

@maaretp http://maaretp.com

Robot FrameworkCustom-made language

Built-in reporting

Ecosystem of keyword libraries

Page 50: Exploratory Testing Foundations

Documenting as Skeleton Test Automation

Chapter 10

Page 51: Exploratory Testing Foundations

@maaretp http://maaretp.com

Log

Page 52: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 53: Exploratory Testing Foundations

Skeleton Test Automation

Stepwise Test Cases as

Automation Placeholders

Like test cases but version

controlled as code

Handoff to a task that is

decomposing testing

differently

Page 54: Exploratory Testing Foundations

Robot Framework Browser Library and css

selectors on Web PageChapter 11

Page 55: Exploratory Testing Foundations

@maaretp http://maaretp.com

Browser LibraryPlaywright inside

Speed – Reliability –Visibility

Automatic waits

Page 56: Exploratory Testing Foundations

@maaretp http://maaretp.com

css=

#id

.class

tag

[attribute='value']

[part_of_attribute_value_contains*='value']

css selectors

Page 57: Exploratory Testing Foundations

@maaretp http://maaretp.com

Keywords

https://marketsquare.github.io/robotframework-browser/Browser.html

Page 58: Exploratory Testing Foundations

Documenting as Executable Test Automation

Chapter 12

Page 59: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 60: Exploratory Testing Foundations

@maaretp http://maaretp.com

Page 61: Exploratory Testing Foundations

@maaretp http://maaretp.com

Page 62: Exploratory Testing Foundations

@maaretp http://maaretp.com

Page 63: Exploratory Testing Foundations

@maaretp http://maaretp.com

Page 64: Exploratory Testing Foundations

Documenting as Executable Test Automation

Single line

→See it fail

→First test

→Same test but variables

→Same test but templates

→Failing test with a bug

→Spec to tests

→Guess the values that are likely to fail

→Multiple browsers

→Runs in CI

Throwaway

automation?

Page 65: Exploratory Testing Foundations

Why This is not about Robot Framework

Chapter 13

Page 66: Exploratory Testing Foundations

@maaretp http://maaretp.com

Documentation as a Constraint

A Balancing Act between Now and Future

Never be bored is not possible without

automation

Page 67: Exploratory Testing Foundations

@maaretp http://maaretp.com

Automation in Frame of

Exploratory Testing

Page 68: Exploratory Testing Foundations

@maaretp http://maaretp.com

Attended

Unattended

Moving FocusLearning

Learning

Learning

Learning

Page 69: Exploratory Testing Foundations

Stop-and-Think:

Robot Framework Browser

How would the testing you did before

this have been different if you were to

start with this?

Page 70: Exploratory Testing Foundations

Use of TimeChapter 14

Page 71: Exploratory Testing Foundations

@maaretp http://maaretp.com

Test, Bug, SetupSoftware with little bugs is faster to test

Setup is configuring, learning and

documenting

Test grows coverage

Page 72: Exploratory Testing Foundations

@maaretp http://maaretp.com

Algorithm

trap

Bug trap

Test Cases

trap

Data trap

Page 73: Exploratory Testing Foundations

Stop-and-Think:

Time and Traps

Where did your time go on testing of

the application?

Page 74: Exploratory Testing Foundations

CoverageChapter 15

Page 75: Exploratory Testing Foundations

@maaretp http://maaretp.com

Setting the Stage for Testing

SeriousTest ideas

We target

these… …to find

these…

…to tell if there’s

more and what

level we know

things.Coverage

REQUIREMENTS

RISKS (of relevant bugs)

CODE

ENVIRONMENTS

WHAT

WHEN

WHO

HOW

WHY

B

PM

T

U

business

project (time)

testing (time)

user

Page 76: Exploratory Testing Foundations

@maaretp http://maaretp.com

Risk CoverageCoverage of relevant bugs

Effectiveness – results of overall strategy

facilitate experience of quality for

stakeholders

Page 77: Exploratory Testing Foundations

Stop-and-Think:

Coverage of Today’s Testing

Would the testing you thought of have

missed any of the bugs we have seen?

What did we not test?

Page 78: Exploratory Testing Foundations

Test StrategyChapter 16

Page 79: Exploratory Testing Foundations

@maaretp http://maaretp.com

Ideas that Guide Test Design

Specific to Application Under Test

Risks to ways of testing for them

Page 80: Exploratory Testing Foundations

Let’s Test

https://www.exploratorytestingacademy.com/app/

https://eviltester.github.io/TestingApp/apps/eprimer/eprimer.html

Page 81: Exploratory Testing Foundations

Test Strategy for E-Primer

Page 82: Exploratory Testing Foundations

Closing RemarksChapter 17

Page 83: Exploratory Testing Foundations

Chapter 1: Test target and our options for

exploring

Chapter 2: Self-management basics on

setting yourself constraints

Chapter 3: The moment of first impression

Chapter 4: Recognizing and learning a

domain

Chapter 5: Recognizing functionality

Chapter 6: Recognizing data

Chapter 7: Recognizing application and

execution environment

Chapter 8: Documenting in a mindmap

Chapter 9: Robot framework the very

basics

Chapter 10: Documenting as skeleton test

automation

Chapter 11: Robot framework browser

library and CSS selectors on web pages

Chapter 12: Documenting as executable

test automation

Chapter 13: Why this is not about Robot

Framework

Chapter 14: Use of time

Chapter 15: Coverage

Chapter 16: Test Strategy

Chapter 17: Closing remarks

Course Outline

Page 84: Exploratory Testing Foundations

@maaretp http://maaretp.com

2020 2016

MIATPPMost Influential Agile Testing

Professional Person

#PayToSpeak #TechVoices

#EnsembleTesting #EnsembleProgramming #StrongStylePairing

#ExploratoryTesting #TestAutomation

#ModernAgile

#AwesomeTesters

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)