25
Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch London EC3A 7BT UK [email protected] www.testing-solutions.com

Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

  • Upload
    others

  • View
    4

  • Download
    1

Embed Size (px)

Citation preview

Page 2: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Scope

• Agile Manifesto and Principles

• An Agile Development & Test Process

• Options

– where do we put the testing?

• Recommendations

• Questions?

Page 3: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

A (simple) Development & Test Process

Business

Requirements

acceptance test

regression

test

design & code

testspecify

require-

ments

OPERATIONAL

SOFTWARE

What’s missing?

Dealing with change!

Solution:

Be more agile and adaptive!

Page 4: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Business Requirements

Operational software

Phase 1

Everything evolves…

Business Requirements

Business Requirements

BUGS andEnhancements

Page 5: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

The Agile Manifesto

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

comprehensive documentation

processes and toolsover

contract negotiation

following a planover

over

over

“In AGILE we value…

Working software

Responding to change

Customer collaboration

Individuals & interactions

Page 6: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Agile Principles

• Incremental & iterative development– frequent delivery of usable software

– changing requirements are welcomed

– working software is the primary measure of progress

• People-oriented development– trust and support of self-organizing teams

– face-to-face communication

– involve the business

– sustainable development

• Technical excellence and built-in quality– simple designs are more agile

– the team regularly reflects and adjusts its behaviour

Page 7: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Standish Report - 2006

35%

of projects completed on time and within budget and delivered to specification.

31%Projects cancelled:

64%of features rarely or never used.

Page 8: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Reasons for project failure

1. Users failed to provide complete requirements.

2. Users were not involved in the development process.

3. The project had inadequate or no resources that were vital

for its completion.

4. Executive management just did not seem interested in

seeing the project through.

5. Specs kept on changing during the project‟s tenure.

6. Planning was a casualty.

7. The project‟s scope had become outdated due to change in

business environment.

8. The project team was technically incompetent.

[Standish Report 2004]

Page 9: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Agile projects are „succeeding‟

[Results from Scott Ambler’s February 2008 Agile Adoption Survey]

59.5

71.7

82.7

77.5

Agile Projects Success Rates

All

Co-Located

Not Co-Located

Offshoring

Page 10: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Industrial take-up of Agile

• Agile development is now mainstream:

– a report on internal Microsoft projects gives a figure of 32% [2006];

– a Dr Dobbs survey reported 69% [2008]

– Ordev developer conference hands-up survey 80% doing agile [2008]

– Approx. 80% of IBM project teams are using agile practices [2009]

• Take up may be partial

– Not all “agile” teams are doing all the practices (“Scrumbut”)

– Some organisations are blending waterfall and agile

Page 11: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Business

Requirements

acceptance test

regression

test

design & code

testspecify

require-

ments

OPERATIONAL

SOFTWARE

A (simple)

Agile Development & Test Process

Business

Requirements

acceptance test

regression

test

develop stories

test stories

write

stories

OPERATIONAL

SOFTWARE

Page 12: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

continuous

integration &

regression test

A (simple)

Agile Development & Test Process

Business

Requirements

acceptance test

regression

test

develop stories

test stories

write

stories

OPERATIONAL

SOFTWARE

story-level

regression

test

tdd

Page 13: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Agile Testing(Functional + Non-Functional)

AGILE TESTING ≠ EXPLORATORY TESTING

• Exploratory testing is simultaneous learning, test design, and test

execution.

– testing where the tester decides on the tests as those tests are

performed and uses information gained while testing to design new and

better tests.

ExploratoryTestingRegression

TestingAutomatedTesting

Scripted Testing

Page 14: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

An Agile Approach

Business Requirements

Business Requirements

Business Requirements

Business Requirements

EVOLVING BUSINESS REQUIREMENTS

Sprint nSprint 1 Sprint 2 Sprint 3

INCREMENTAL PRODUCT DELIVERY

PRODUCT BACKLOG

Page 15: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

GUI

Acceptance criteria on the

back of story card

Agile Stories

WEB SERVICES

3rd Party Services

Database

Story name

and description

Story size(XS XL)

ID

OwnerNFR:

Page 16: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Which Agile Methodology?

• Agile has been around in various forms since the

mid-1990s, but recently the industry appears to

be standardising on some common approaches.

– The fourth annual „State of Agile‟ survey [2009]

suggests that Scrum is now way ahead of the

opposition being used on 75% of agile projects

- 24% of these are using XP with Scrum

– Microsoft report [2006] that 65% of their agile

projects are using Scrum.

Page 17: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

retrospective

Option 1 – the ideal

sprint

showcase

fix

issues

raise issues

daily scrums

Sprint Backlog

write stories

plan

sprint

Product

BacklogProduct

Backlog

develop stories

test stories

select sprint

backlog

Sprint Backlog

sprint

retrospectiveretrospective

raise issues

write stories

test

issues

Page 18: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Option 1 – Pros & Cons

• Anecdotally this approach is twice as effective

as the other options

– allows direct & immediate communication between

team members

– developers and testers share responsibility for

delivery of a quality product

• A worry that testers lose their independence and

objectivity

– but the greater collaboration enhances the ability of

testers to lobby for quality

Page 19: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

OPERATIONAL SOFTWARE

Option 2 – Separate Parallel Activities

v1

Test 1 TTest 2V1

.1

v2

V2

.1

Developing v2

(includes tdd + continuous

regression

test)

Regression

Test

Acceptance

Test

Story

Re-test

V1.1

Story

Test

V1

Test

Prep

v1

Sprint 1 SpriSprint 2

Debugging

v1» v1.1

Specialist

Testing

(e.g.

security,

performance)

Page 20: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Option 2 – Pros & Cons

• Less responsive option as some customer

requirements will now take nearly 2 sprints

• Version management more complex as

developers are now developing one version and

debugging another

• Communications overhead between developers

and testers

• May be necessary due to environments

restrictions

• And we get here by „accident‟

Page 21: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Dev Sprint 4

Dev Sprint 5

Option 3

Occasional Full Test Sprint

Dev Sprint 1

Dev Sprint 2

Dev Sprint 3

Test Sprint

OPERATIONAL

SOFTWARE

Regression

TestAcceptance

TestStory

TestTest

Prep

Specialist

testing

(e.g.

security,

performance)

Debugging

Page 22: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Option 3 – Pros & Cons

• Even less responsive option as some customer

requirements will take several sprints

– but can normally deliver within 2 sprints

• What to do with testers during development and

developers during testing?

– need cross-functional team members

– more difficult to accommodate specialists

• May be necessary due to environments restrictions

• Copes when it is difficult to organise regular acceptance

tests

• Used for integration of multi-sprint projects…

Page 23: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Dev Sprint 4

Dev Sprint 5

Option 4

Integrating „Late‟ Test Sprints

Dev Sprint 1

Dev Sprint 2

Dev Sprint 3

Test Sprint

OPERATIONAL

SOFTWARE

Test

Story

V2

Develop stories

v2

Regression

Test

v2

Final

Regression

Test

Acceptance

TestTest

Prep

NFT (e.g.

security,

performance)

Integration

Test

Page 24: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Recommendations

• Moving to agile is generally a positive experience

– the team enjoy it

– less projects fail

– useful functionality is delivered sooner

– customers are happier

• Integrating the development and testing as closely as possible gives the most benefit

• Most organizations transition to the ideal „agile‟ approach via one of the less agile options

• Test automation is essential for TDD and regression testing

Page 25: Testing Agile Projects - Oxfordshire · 2012-09-27 · Testing Agile Projects ©Stuart Reid, 2011 Stuart Reid Testing Solutions Group 117-119 Houndsditch ... performed and uses information

Thanks for listening

Any Questions?