Agile Testing – Is it for me and
how are others doing it?

2013-11-07
Alexander Tarnowski
alexander.tarnowski@crisp.se
alexander_tar
Blog blog.crisp.se/author/alexandertarnowski
www www.techbookreader.com
Agenda
Agile testing –
Introduction

Case studies

State of the
industry

Questions
Agile Manifesto – Some principles
• Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
• The most efficient and effective method of
conveying information to and within a
development team is face-to-face conversation.
• Working software is the primary measure of
progress.
• Simplicity--the art of maximizing the amount
of work not done--is essential.
Working in an agile context
Agile methodologies
Scrum
• Transparency
• Inspection
• Adaption

XP

Lean Software
• Communication Development
•
•
•
•

Feedback
Simplicity
Respect
Courage

•
•
•
•
•
•
•

Eliminate waste
Build quality in
Create knowledge
Defer commitment
Deliver fast
Respect people
Optimize the
whole

5

Working in an agile context
Agile practices summarized
•
•
•
•

Working software delivered frequently
To provide business value as early as possible
By cross-functional teams
That learn and improve

Working in an agile context
Overview of agile testing
Definition

Practices

• Agile testing = testing
performed in an agile
team

Testing is a
supporting activity

The whole team
owns the quality

Expected outcome

Deliver software
instead of written
artifacts

Automation

• The team delivers
high-quality software
Testing is a supporting activity

1. Gather information and find defects
2. Help the team move fast and stay safe

Image courtesy of cooldesign / FreeDigitalPhotos.net
Handovers
Communication barriers
Us-them
”Done” code

Software construction is like building:
Step 1: Build according to blueprint
Step 2: Inspect for defects
Programmer

Bug report

Tester

9

Testing is a supporting activity
Image courtesy of Feelart/ FreeDigitalPhotos.net & http://www.aha-soft.com/
The developer and tester mindsets
I program (create),
but I suffer from
creator’s bias.

David the
Developer

I test (break) and am
a critical thinker,
who sees the whole.

Terry
the
Tester
Testing is a supporting activity
The fundamental test process

Testing is a supporting activity
Agile testing quadrants

Testing is a supporting activity
The whole team owns the quality
• Every team member is responsible for the quality
• Team members that are professional testers may
have more experience in doing this
• Testing activities are estimated just like other
tasks
To do

In progress

Done

Done Done

More Done

The whole team owns the quality
Tester work

Do agile teams require testers?
•
•
•
•

Provide a holistic view of the application
Exploratory testing
Specialized testing
Create the ”nasty” test cases

Developer work

Good enough?

•
•
•
•
•

Develop code test-first or well unit-tested
Write integration tests
Practice CI
Create and maintain the automation layer
Testing sessions (with some training and facilitation)
The whole team owns the quality
Does a tester on an agile team have to be
a techie?

The whole team owns the quality
Deliver software instead of written
artifacts
The Bug Reporting System
• Holds detailed information
• Knowledge base
• Supports distributed teams

Deliver software instead of written artifacts
Metrics
Coverages
Defects in production

Defects during development

Lines of code

Cycle time

Deliver software instead of written artifacts
The test strategy

Deliver software instead of written artifacts

19

Image Flickr commons/The Swedish National Heritage Board
Automation
2-4 week iterations

Developer work

Tedious work

Refactoring

• Keeps the amount of work ”constant”
• Agile teams must automate to maintain their
velocity
Automation
Regression testing
Features

D
C
A

B

Iteration 1

A

E
C

B

Iteration 2

A

B

Iteration 3
Time

Automation
Parachuting a tester into a development
team

The agile tester
An agile tester – True or False
True False

Gathers and shares information
Helps the customer to express requirements
Acts a quality police officer that protects the
customer from bad code
Provides feedback
Communicates through a defect tracking
system
Constantly improves and learns
The agile tester
Questions

alexander.tarnowski@crisp.se
alexander_tar
Blog blog.crisp.se/author/alexandertarnowski
www www.techbookreader.com

Agile Testing – Is it for me and how are others doing it?

  • 1.
    Agile Testing –Is it for me and how are others doing it? 2013-11-07 Alexander Tarnowski
  • 2.
  • 3.
    Agenda Agile testing – Introduction Casestudies State of the industry Questions
  • 4.
    Agile Manifesto –Some principles • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. • Working software is the primary measure of progress. • Simplicity--the art of maximizing the amount of work not done--is essential. Working in an agile context
  • 5.
    Agile methodologies Scrum • Transparency •Inspection • Adaption XP Lean Software • Communication Development • • • • Feedback Simplicity Respect Courage • • • • • • • Eliminate waste Build quality in Create knowledge Defer commitment Deliver fast Respect people Optimize the whole 5 Working in an agile context
  • 6.
    Agile practices summarized • • • • Workingsoftware delivered frequently To provide business value as early as possible By cross-functional teams That learn and improve Working in an agile context
  • 7.
    Overview of agiletesting Definition Practices • Agile testing = testing performed in an agile team Testing is a supporting activity The whole team owns the quality Expected outcome Deliver software instead of written artifacts Automation • The team delivers high-quality software
  • 8.
    Testing is asupporting activity 1. Gather information and find defects 2. Help the team move fast and stay safe Image courtesy of cooldesign / FreeDigitalPhotos.net
  • 9.
    Handovers Communication barriers Us-them ”Done” code Softwareconstruction is like building: Step 1: Build according to blueprint Step 2: Inspect for defects Programmer Bug report Tester 9 Testing is a supporting activity Image courtesy of Feelart/ FreeDigitalPhotos.net & http://www.aha-soft.com/
  • 10.
    The developer andtester mindsets I program (create), but I suffer from creator’s bias. David the Developer I test (break) and am a critical thinker, who sees the whole. Terry the Tester Testing is a supporting activity
  • 11.
    The fundamental testprocess Testing is a supporting activity
  • 12.
    Agile testing quadrants Testingis a supporting activity
  • 13.
    The whole teamowns the quality • Every team member is responsible for the quality • Team members that are professional testers may have more experience in doing this • Testing activities are estimated just like other tasks To do In progress Done Done Done More Done The whole team owns the quality
  • 14.
    Tester work Do agileteams require testers? • • • • Provide a holistic view of the application Exploratory testing Specialized testing Create the ”nasty” test cases Developer work Good enough? • • • • • Develop code test-first or well unit-tested Write integration tests Practice CI Create and maintain the automation layer Testing sessions (with some training and facilitation) The whole team owns the quality
  • 15.
    Does a testeron an agile team have to be a techie? The whole team owns the quality
  • 16.
    Deliver software insteadof written artifacts
  • 17.
    The Bug ReportingSystem • Holds detailed information • Knowledge base • Supports distributed teams Deliver software instead of written artifacts
  • 18.
    Metrics Coverages Defects in production Defectsduring development Lines of code Cycle time Deliver software instead of written artifacts
  • 19.
    The test strategy Deliversoftware instead of written artifacts 19 Image Flickr commons/The Swedish National Heritage Board
  • 20.
    Automation 2-4 week iterations Developerwork Tedious work Refactoring • Keeps the amount of work ”constant” • Agile teams must automate to maintain their velocity Automation
  • 21.
  • 22.
    Parachuting a testerinto a development team The agile tester
  • 23.
    An agile tester– True or False True False Gathers and shares information Helps the customer to express requirements Acts a quality police officer that protects the customer from bad code Provides feedback Communicates through a defect tracking system Constantly improves and learns The agile tester
  • 24.

Editor's Notes

  • #12 Steps of the fundamental test process:Planning and ControlAnalysis and DesignImplementation and ExecutionEvaluating exit criteria and ReportingTest Closure activities
  • #19 Dijkstras quote from 1988: ”lines of code spent” http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html