Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile...

13
Agile Tour 2011 01/11/2011 © Copyright Inspire Quality Services 2011 Page 1 1 Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara Inspire Quality Services e: [email protected] w: www.inspireqs.ie t: +353 (0)1 2854510 © 2011 Inspire Quality Services 2 Inspire Quality Services We provide Agile, Quality and Process Improvement Services such as Consulting/Coaching: Strategic advice and hands-on Coaching/mentoring in areas such as agile, testing, process improvement, etc. Training public/inhouse: Agile: Certified/Advanced ScrumMaster, Succeeding with Agile/Scrum, Agile project management, Agile Testing, Product Owner training, Lean/Kanban, etc. Testing (ISTQB Foundation and Advanced Test Manager/Analyst, Risk-based testing, Test design techniques, Testing for developers, TMap ® , Peer Reviews, UAT, etc.) Requirements/Business analysis Software project management Assessments Agile practices Industry standards and models such as CMMI ® , TPI ® , TMMi ® , etc.

Transcript of Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile...

Page 1: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 1

1

Effective Testing in Agile Projects

Agile Tour 2011

Fran O’Hara

Inspire Quality Services

e: [email protected]: www.inspireqs.iet: +353 (0)1 2854510

© 2011 Inspire Quality Services

2

Inspire Quality Services

We provide Agile, Quality and Process Improvement Services such as

� Consulting/Coaching:– Strategic advice and hands-on Coaching/mentoring in areas such as agile, testing, process

improvement, etc.

� Training public/inhouse:– Agile: Certified/Advanced ScrumMaster, Succeeding with Agile/Scrum, Agile project

management, Agile Testing, Product Owner training, Lean/Kanban, etc.

– Testing (ISTQB Foundation and Advanced Test Manager/Analyst, Risk-based testing, Test design techniques, Testing for developers, TMap®, Peer Reviews, UAT, etc.)

– Requirements/Business analysis

– Software project management

� Assessments– Agile practices

– Industry standards and models such as CMMI®, TPI®, TMMi®, etc.

Page 2: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 2

3

Agenda

� Introduction to Agile/Scrum

� Test challenges with Agile/Scrum

� Agile Test Strategy & Automation

� Role of the tester

� Q&A

4

Raise hands and keep raised if …..

� You have heard of Agile and Scrum

� You have at least a reasonable sense of what they mean

� Your organisation has tried Agile

� You have been directly involved working in Agile team(s)

� You work specifically in Agile Testing

Page 3: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 3

5

Agile Manifesto

“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

– Individuals and interactions over processes and tools

– Working software over comprehensive documentation

– Customer collaboration over contract negotiation

– Responding to change over following a plan

“That is, while there is value in the items on the right, we value the items on the left more.”

6

Resources Schedule

Scope/

Requirements

Plan Driven

FIXED

ESTIMATED

Resources Schedule

Scope/

Requirements

Value Driven

QualityQuality

Flipping the Iron Triangle

Page 4: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 4

7

8

Scrum

See www.controlchaos.com

Roles:

-Scrum master

-Scrum team

-Product owner

Retrospective

Page 5: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 5

9

User stories - CCC

As a <role>

I need <action>

so that <result>

Card

As a customer I search for

users so that I can view their

details

Value: Med

Risk: LowEstimate: 3 pts

Conversation

Confirmation•I can find users

•I can use any search

criteria I need

•Once found I can view

details

•….

� Independent

� Negotiable

� Valuable

� Estimable

� Small

� Testable

INVEST

BDD:

In order to <benefit>

As a <role>

I want <functionality>

10

Agenda

� Introduction to Agile/Scrum

� Test challenges with Agile/Scrum

� Agile Test Strategy & Automation

� Role of the tester

� Q&A

Page 6: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 6

11

Typical test/quality related challenges

Non-functional issues

Developer buy-in for shared quality

ownership

‘Agile’ without sufficient customer

involvement

Insufficient focus on working software –

stories not ‘done’

Lack of technical expertise in test

team

Quality of unit tests

Testing bottleneck

Ineffective incremental test

strategy

Hybrid implementations

Integration Testing

Effectiveness of automated

tests

Role of the tester and

test manager

Distributed development

Effectiveness of automation strategy

12

Agenda

� Introduction to Agile/Scrum

� Test challenges with Agile/Scrum

� Agile Test Strategy & Automation

� Role of the tester

� Q&A

Page 7: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 7

13

Agile Test Strategy

� Risks– Similar product risks

– Regression risk with high level of change

� How many test levels?– XP appears to advocate two as part of a predefined test strategy

� Unit and Acceptance (both automated as part of Test Driven Development)

� Is system test no longer required?

– Automation reduces regression risk

– Developers doing testing reduces risk of poor quality code

– But how can a test strategy/approach be method rather than product based?

14

‘Acceptance’ Testing – is it enough?

� May not be…context/risk/strategy issue…

– May not be fully automated – partial regression strategy needed

– Expand to fuller ‘system’ tests

� Functional testing

� Non-functional testing – performance, usability, etc.

– May still need end-to-end business scenario focused User Acceptance test, user story interaction tests, etc.

– System integration testing issues

– Etc.

� Strategy and scheduling issue

– Adaptive, risk-driven

Page 8: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 8

15

Agile Testing Quadrants

16

Testing within a Sprint

Automated

Acceptance/Story

based

Tests

Automated

Unit

Tests

Manual

Exploratory

Tests

Represent Executable

requirements

Represent Executable

Design specifications

Provides

Supplementary

feedback

Page 9: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 9

17

Sprints and Testing Strategy

Sprint 1

Dev + Test*

Sprint 2

Dev + Test*

Sprint 3

Dev + Test*

Additional testing Additional Testing

*Sprint test = Automated Unit & Acceptance, Manual Exploratory

Within a Sprint may need to perform additional testing as part of a defined but adaptive testing strategy e.g.:

– Additional exploratory testing

– Performance testing

– Usability testing

– Security testing

– System integration testing

– Combination/feature interaction testing

– Business cycle & end-to-end scenario testing – exercising multiple stories, end of month processing, etc.

� Note: Ideally any testing needed should be included within the Sprint rather than being deferred….otherwise are we defining one ‘Done’ for Sprints and another for Release…?

Working software!!

Additional testing

18

Can we avoid Stabilisation Sprint(s)?

Not part of Scrum but sometimes used for:� Less normal new features, more focus on integration, extra testing…� More integration testing, non-functional requirements testing…� During “regular” sprints target friendly first use

– Beta customers and similar can use immediately after sprint� During “stabilization sprints”

– Team prepares a product for release– Useful during

� active beta periods� when transitioning a team to Scrum� if quality isn’t quite where it should be on an initial release

� Not ideal though….

Sprint 1 Sprint 2 Sprint 3Stabilization

Sprint

Sprint 5 Sprint 6 Sprint 7Stabilization

Sprint

Scrum

Page 10: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 10

19

Test Driven Development

� Probably the most effective single practice to improve quality

� Never write a single line of code unless you have a failing automated test

� Eliminate duplication

Kent Beck

� Write the test

� Write the code

� Refactor

20

Test Driven Development

� Can be applied at all levels of test e.g. – Unit : Drives design executable design specifications

� ‘Does the code do what the developer intended’

– Acceptance: Defines completion executable requirements� ‘Does the system do what the Customer requires’

� Preventative/early testing – not new… but many benefits

� Testing takes on a specification role– A feature is not specified…

� Until it’s acceptance test is written.

– A feature is not done…� Until all it’s acceptance tests pass.

– Acceptance and Unit tests become key requirements/feature and design artefacts

Page 11: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 11

21

Acceptance Testing

� Automated Acceptance Testing

– Design and Code for automation, cross functional test design workshops, separate test design from implementation…

– Tools/Frameworks e.g.

� FIT/Fitnesse

� Cucumber - for Behaviour driven development

� WatiR – web application testing in Ruby

� Selenium – record/playback and scripting for web testing

– Will still need exploratory testing for UI layer…

Web Server

Web BrowserAutomation Library

Web Server

Web BrowserAutomation Library

22

The Automation Pyramid

Unit

API/Service

GUI

Manual

tests

Page 12: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 12

23

Agenda

� Introduction to Agile/Scrum

� Test challenges with Agile/Scrum

� Agile Test Strategy & Automation

� Role of the tester

� Q&A

24

‘The nature of the tester's role changes in iterative projects. We are no longer the high-profile victims, we are no longer the lonely advocates of quality, we are merely (!) competent service providers, collaborating with a group that wants to achieve high quality. ‘

Cem Kaner

Dedicated testers bring two benefits:

� Focus on customer usage over technical implementation

� Focus on uncovering flaws over confirming completeness

(Bret Pettichord)

Role of tester

Page 13: Effective Testing in Agile Projects V1.0 download Testing in Agile... · Effective Testing in Agile Projects Agile Tour 2011 Fran O’Hara ... Sprint 5 Sprint 6 Sprint 7 Stabilization

Agile Tour 2011 01/11/2011

© Copyright Inspire Quality Services 2011 Page 13

25

� Involved continuously from start…e.g.– Facilitate communication between the technical &

business stakeholders

– Support early validation of requirements

– Help the Customer/business stakeholders define acceptance criteria

– Support creation of automated acceptance tests� Or define for developers to script

– Expand scope of ‘acceptance’ tests � see agile testing strategy

– Advise the team about overall risks and trends

– Perform manual/exploratory tests

Role of tester

26

Questions/discussion-

your testing challenges and

experiences...

Contact Details:

[email protected]