exploratory and unit testing

31
Collaborative Exploratory and Unit Testing Maaret Pyhäjärvi & Llewellyn Falco @maaretp & @LlewellynFalco

Upload: llewellyn-falco

Post on 09-Apr-2017

650 views

Category:

Software


2 download

TRANSCRIPT

Collaborative Exploratory and Unit Testing

Maaret Pyhäjärvi & Llewellyn Falco

@maaretp & @LlewellynFalco

COURSE VISION

Exploratory Tester Extreme Programmer

MOB PROGRAMMING

Strong Style Pairing“For an idea to go from your head to

the computer it must go though someone else’s hands”

*http://llewellynfalco.blogspot.fi/2014/06/llewellyns-strong-style-pairing.html

THINGS TO LEARN TODAY

What is Unit Testing (Llewellyn way)

What is Exploratory Testing (Maaret way)

Collaboration of two different skill sets

Types of Insights Doing Exploratory Testing

Doing Unit Testing

Tools: Mindmup & Approvals

Qua

lity

Power of Collaboratio

n

Qua

lity

Power of Collaboratio

n

“It’s about getting the best (not the

most) out of everyone”

Mob Programming Rulesfor Exploratory Testing Activity

• No thinking as the driver• Yes, and…

• Kindness, consideration and respect

Testing as Performance (Exploring) vs. Testing as Artifact Creation

Explore with Intent

Mission Charter

Other Charters Details

INTE

NT

LEARNIN

GS

StructureFunction

DataPlatform

OperationsTime

Certainty“I know what I

know”Exploit

Caution“I know what I don’t

know”Explore

Amnesia“I don’t know what I

know”Expose

Ignorance“I don’t know what I

don’t know”Experiment

Looking at World from Different Angles

Unit

Test

ing

Expl

orat

ory

Test

ing

Builder view

Tester view

What Testing Gives UsUn

it Te

stin

g

Expl

orat

ory

Test

ing

SPECFEEDBACKREGRESSIONGRANULARITY

GUIDANCEUNDERSTANDING

MODELSSERENDIPITYTesting as

artifact creation

Testing as performan

ce

17

Exploration SkillsSource: Adapted from James Bach, Jon Bach, Michael Bolton. Exploratory Testing

Dynamics. v.2.2. 2009

Self-manageme

nt

Developing ideas

Examining product

DoneTo DoIssuesCoverage

All sources available Best use of time – effective and efficient work

Making modelsTool support – creative solutionsRisk-based testing – scientific approachKeeping one’s eyes open

18

Exploratory Testing: Frame of Management

”A day’s work”

Vision (“Sandbox”) Current Charter

Other Charters Details

Bug Reports

Perception of quality

and coverage

Quality ReportDebriefin

g

Tester

Test Manager

PastResultsObstaclesOutlookFeelings

?#

xCharter backlog of the future testing

Out of budget

Next in importanc

e!#, ?, x, +20:20:60

Session sheets of the past testing

Idea of exploratio

n

Metrics summary

Coaching

PlaybooksCoverage outlines

Functional

Deterministic

All inputs in

All results out

NON-FunctionalGet inputs as needed (global state, file, database…)

Result vary (dates, random, environment)Store results (global, disk, database, transient)

WHY FUNCTIONAL IS EASIER FOR TESTS

Unit Test

Production Code

DoVerify

WHY FUNCTIONAL IS EASIER FOR TESTS

Unit Test

Production Code

DoVerify

Functional Harness

public static Output function(inputs)

SEPARATING FUNCTIONAL PIECES

Non-Functional

Functional

List

SEPARATING FUNCTIONAL PIECES

Non-Functional

Functional

List

List2

PEEL

*http://lfal.co/PeelAndSlice

SLICE

return sample

*http://lfal.co/PeelAndSlice

Why is Testing Hard?1. XPath2. Finding

Elements3. Global state4. Dates5. Failure

cases6. Wait Times7. Mobile

8. Setup9. Lot’s of

paths10.Environme

nt11.Uncontrolla

ble Variables

12.UI

13.Money14.Dates15.Database16.Integration17.Finding

Elements18.Timing

MobTimer

#MobProgrammingGuidebook

Maaret PyhäjärviEmail: [email protected]: @maaretpBlog: visible-quality.blogspot.fi

Get in Touch

Llewellyn FalcoEmail: [email protected]: @LlewellynFalcoBlog: llewellynfalco.blogspot.com

Question, Thoughts?Feedback?

Getting the Software to Test• http://darkfunction.com/editor/ Download the jar• http://lfal.co/DfExamples• Download as zip

The App: Dark Function Editor• Eclipse:

– Open dfEditorApp (Ctrl+Shift+T)– Run (Ctrl+F11)

• A 2D sprite and animation tool for game developer

• Two main uses:– Sprite sheet creator: Create sprite sheets by adding coordinates or

by putting together individual sprites (New / Sprite sheet)– Image animator: Create animations from sprite sheets (New /

Animation set)• Test data to start from:

– In darkFunction-Editor/TestingResources/StarWarsImages/SWAll.sprites