agile testing for agile sparks kanban clients

40
1 All Rights Reserved- AgileSparks Agile Testing A.k.a Dev-QA -The Next Generation

Upload: yuval-yeret

Post on 13-Jan-2015

2.199 views

Category:

Technology


0 download

DESCRIPTION

Presentation used to introduce our clients already using Kanban to the concepts of Agile Testing

TRANSCRIPT

Page 1: Agile testing for agile sparks kanban clients

1 All Rights Reserved- AgileSparks

Agile TestingA.k.a Dev-QA -The Next

Generation

Page 2: Agile testing for agile sparks kanban clients

2 All Rights Reserved- AgileSparks

So We’ve Gone Kanban w/ some Feature Teams…

So we’re talking about…• Whole Team Approach – WIP Limits keep us

together focused on delivering Working Tested Clean Software

• Delivering and testing smaller stories much more frequently

Page 3: Agile testing for agile sparks kanban clients

3 All Rights Reserved- AgileSparks

Agile is all about early feedback – why?

http://less2010.leanssc.org/wp-content/uploads/2010/10/Siemens_Rudolf_Paulisch.pdf © Siemens AG 2010

Page 4: Agile testing for agile sparks kanban clients

4 All Rights Reserved- AgileSparks

How WILL WE get early feedback ?

BIG Features

Page 5: Agile testing for agile sparks kanban clients

5 All Rights Reserved- AgileSparks

That take very long to get to testing…

Longer iterations?

Page 6: Agile testing for agile sparks kanban clients

6 All Rights Reserved- AgileSparks

To smaller chunks that can quickly flow to test

Page 7: Agile testing for agile sparks kanban clients

7 All Rights Reserved- AgileSparks

Early Feedback – The Goal and the conflict…

• Even without reducing testing overhead it is usually more cost-effective to reduce batch size• Aim to reduce testing overhead to reduce batch size even more and be even more cost-effective

TraditionalProcesses

Ideal BatchW/O

Automation

Ideal Batch SizeWITH

Great automation

Improve – Reduce Testing Overhead

Earlier Feedback – Cheaper to change

Lower Testing Overhead

Page 8: Agile testing for agile sparks kanban clients

8 All Rights Reserved- AgileSparks

Continuous Integration

Page 9: Agile testing for agile sparks kanban clients

9 All Rights Reserved- AgileSparks 2010 Copyright AgileSparks. All rights reserved. 2010 Copyright AgileSparks. All rights reserved.

Continuous Integration (CI) – The backbone for Agile testing

– the practice of integrating early and often

• avoid the pitfalls of "integration hell"

– “stop and fix”

– Always have a working system based on

latest code

Page 10: Agile testing for agile sparks kanban clients

10 All Rights Reserved- AgileSparks 2010 Copyright AgileSparks. All rights reserved. 2010 Copyright AgileSparks. All rights reserved.

Continuous integration in the XP framework

Page 11: Agile testing for agile sparks kanban clients

11 All Rights Reserved- AgileSparks

But how do we get enough coverage for the

Continuous Integration system?

Page 12: Agile testing for agile sparks kanban clients

12 All Rights Reserved- AgileSparks

We automate tests as part of Definiton of Done

Well, Dah…

Page 13: Agile testing for agile sparks kanban clients

13 All Rights Reserved- AgileSparks

But what might happen then?

Page 14: Agile testing for agile sparks kanban clients

14 All Rights Reserved- AgileSparks

Pop Quiz• What does this mean?

Full story at http://yuvalyeret.com/2010/08/03/finding-the-right-dev-to-test-ratio-when-working-in-kanban/

Blocked/Impeded Card

Page 15: Agile testing for agile sparks kanban clients

15 All Rights Reserved- AgileSparks

Pop Quiz

A lot of WIP in

Test

Empty Test

Done

Empty downstream

(Bubble)

Dev Done

almost Full

Test Bottleneck!

Page 16: Agile testing for agile sparks kanban clients

16 All Rights Reserved- AgileSparks

What LIMITED WIP Does

D

DD

TTT

3

How can I help current

stories?

Help us with

Blocker

Fix open defects on

our Stories

Help us automate

tests for this story

WIP Limit!Can’t start new

DEV work!

Page 17: Agile testing for agile sparks kanban clients

17 All Rights Reserved- AgileSparks

What LIMITED WIP Does

DD

D

TTT

3

How can I help you be more

efficient?

Help us do ATDD so you can develop

based on our test expectations, and also offload some automation effort

from us

Automate Setups

and Test Data

Improve Dev Done quality! – less

retesting for us

Half of our work is not core test work. Maybe you can take some of it, or help us reduce waste

there

Come pair with us, you’ll probably see

things from our perspective and have some ideas

how to help!

Page 18: Agile testing for agile sparks kanban clients

18 All Rights Reserved- AgileSparks

Agile Testing driven by Flow

18

Page 19: Agile testing for agile sparks kanban clients

19 All Rights Reserved- AgileSparks

Automate at the right level

UI5%

Acceptance (Service/API)

15%

Unit Testing80%

Manual

ROI

Cost

http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid

Page 20: Agile testing for agile sparks kanban clients

20 All Rights Reserved- AgileSparks

Critiques ProductSu

ppor

ts P

rogr

amm

ing

If we only had limited QA capacity, what would we focus on? What would we enable Devs to do?

Functional TestsSimulations, prototypes

Story Tests/Examples/ATDD

User Acceptance TestsExploratory Tests

Usability Tests

Unit Tests (TDD)Comp./Integration Tests

Code Quality tools

Performance TestsLoad Tests, Security

“bility’ testing

Business Facing

Technology Facing

Automated & manual

Tools

Manual & Automat

ed

Q1

Q2 Q3

Q4

Automated

TDD

ATDD

Continuous Integration

ExploratoryTesting

Automated Unit Tests

Automated System Tests

Non-Functional Testing

Page 21: Agile testing for agile sparks kanban clients

21 All Rights Reserved- AgileSparks

The UNIQUE role of the QA engineers

• Being Champions of the Product and the Customer/User.

• Specializing in Performance/ Security/Load/etc.

• Shining light on where to focus quality efforts by analyzing risk probability and Impact.

Page 22: Agile testing for agile sparks kanban clients

22 All Rights Reserved- AgileSparks

Quality OVER Quantity – QA expertise SUPPORTING delivery

Test Engineers

Delivery TeamSoftware Engineers

Delivery TeamSoftware Engineers Delivery Team

Software Engineers

Delivery TeamSoftware EngineersDelivery Team

Software Engineers

Placed in risky “Hot Spots”

Automation Expert

Page 23: Agile testing for agile sparks kanban clients

23 All Rights Reserved- AgileSparks

Driving from Behaviour/Examples/Acceptance Tests

http://slidesha.re/LqQRa3 Intro to ATDD - Elisabeth Hendrickson

Page 24: Agile testing for agile sparks kanban clients

24 All Rights Reserved- AgileSparks

Meet the family

Behavior Driven Development

http://lizkeogh.com/2011/03/04/step-away-from-the-tools/

Very important – “Step away from the tools”

http://dannorth.net/introducing-bdd/

Specification ByExample

Page 25: Agile testing for agile sparks kanban clients

25 All Rights Reserved- AgileSparks

Let’s look at a concrete workflow using SpecFlow

(Pragmatic BDD for .Net)

http://www.specflow.org/specflow/workflow.aspx

Page 26: Agile testing for agile sparks kanban clients

26 All Rights Reserved- AgileSparks

Step 1 – Write a Feature (using Gherkin language)

Page 27: Agile testing for agile sparks kanban clients

27 All Rights Reserved- AgileSparks

Step 2 – Watch it Fail

Page 28: Agile testing for agile sparks kanban clients

28 All Rights Reserved- AgileSparks

Step 3 – Implement Step definitions

Page 29: Agile testing for agile sparks kanban clients

29 All Rights Reserved- AgileSparks

Step 4 – Create Domain Skeleton

Page 30: Agile testing for agile sparks kanban clients

30 All Rights Reserved- AgileSparks

Step 5 – Watch it fail

Page 31: Agile testing for agile sparks kanban clients

31 All Rights Reserved- AgileSparks

Step 6 – Implement Domain Functionality

Page 32: Agile testing for agile sparks kanban clients

32 All Rights Reserved- AgileSparks

Optional Step 6a – Unit-level TDD

Add a test

Write some code

Tests passed?

Run tests

Refactor

Development finished

YesNo

No

Yes

Page 33: Agile testing for agile sparks kanban clients

33 All Rights Reserved- AgileSparks

Step 7 – Iterate steps 5+6 until scenario passes

Page 34: Agile testing for agile sparks kanban clients

34 All Rights Reserved- AgileSparks

Step 8 – Iterate steps 2-7 until Feature Passes

Page 35: Agile testing for agile sparks kanban clients

35 All Rights Reserved- AgileSparks

But how do we get started, we have so

much legacy?

Page 36: Agile testing for agile sparks kanban clients

36 All Rights Reserved- AgileSparks

Time to talk about Technical Debt…

Page 37: Agile testing for agile sparks kanban clients

37 All Rights Reserved- AgileSparks

Page 38: Agile testing for agile sparks kanban clients

38 All Rights Reserved- AgileSparks

Check out a recent great presentation…

http://www.slideshare.net/ehendrickson/lfmf-tales-of-test-automation-fa

Page 39: Agile testing for agile sparks kanban clients

39 All Rights Reserved- AgileSparks 2010 Copyright AgileSparks. All rights reserved. 2010 Copyright AgileSparks. All rights reserved.

How to Start

Apply automation to incrementally repair touch points as new features added.

Manual affected regression testing only after risk analysis. Automate Sanity and risky areas by independent team

Legacy Systems1

Legacy Systems2

Legacy Systems3

Legacy Systems4

Frightening code

Low quality code covered by automated tests

High quality code covered by automated tests

New TestCoverage New Features

Refactored Code New Features

New TestCoverage New Features

Refactored Code New Features

Refactored Code New Features

New TestCoverageSanity and

risky areasSanity and risky areas

Sanity and risky areas

New Features

Page 40: Agile testing for agile sparks kanban clients

40 All Rights Reserved- AgileSparks

References

http://bit.ly/testisdeadGTAC11

http://gojko.net/2012/05/08/redefining-software-quality/