33
Testing != Quality Rethinking quality and how to achieve it in an agile world Bob Hartman Richard Lawrence

Testing Does Not Equal Quality

  • View
    1.447

  • Download
    4

Embed Size (px)

DESCRIPTION

Presentation for SQuAD on May 12, 2009. Abstract: In an agile environment, testing alone is not sufficient to ensure quality. Many other factors come into play to ensure true quality. This session will explore the meaning of "quality" and give some examples of how it can be enhanced. Richard and Bob will also explain the principles behind an agile process which achieves a quality product as well as a potential workflow to implement the process. This will include how QA integrates with the team to avoid creating a "mini-waterfall" situation.

Citation preview

Page 1: Testing Does Not Equal Quality

Testing != QualityRethinking quality and how to achieve it in an agile world

Bob HartmanRichard Lawrence

Page 2: Testing Does Not Equal Quality

“How does QA fit into all of this?”

Page 3: Testing Does Not Equal Quality

are conflicting goals

Speed/value

quality

and

Page 4: Testing Does Not Equal Quality

Or are they?

Page 5: Testing Does Not Equal Quality

How can quality enable speed and value?

What is quality?

How do we ensure our software has it?

Page 6: Testing Does Not Equal Quality

What is quality?

Page 7: Testing Does Not Equal Quality

The goal of a software org:Produce valuable software now and in the future.

Page 8: Testing Does Not Equal Quality

A feature can be modeled with a cumulative cash flow chart

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09

Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

-$300,000

-$200,000

-$100,000

$0

$100,000

$200,000

$300,000

$400,000

$500,000

$600,000

Page 9: Testing Does Not Equal Quality

Or, we can remove the investment and just look at value flow

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09 Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

Page 10: Testing Does Not Equal Quality

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09 Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

Value flow for a feature that never works right

Page 11: Testing Does Not Equal Quality

Value flow for a feature that fails for some users some of the time

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09 Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

Page 12: Testing Does Not Equal Quality

Value flow for a feature with downtimes

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09 Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

Page 13: Testing Does Not Equal Quality

Value flow for a feature that doesn’t scale

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09 Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

Page 14: Testing Does Not Equal Quality

Quality is the foundation of value

Page 15: Testing Does Not Equal Quality

A team’s productivity can be measured with a velocity chart

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09 Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

Page 16: Testing Does Not Equal Quality

Velocity of a team with a well-designed, high quality system

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09 Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

Page 17: Testing Does Not Equal Quality

Velocity of a team with a poorly-designed, low quality system

Jan-09

Feb-09

Mar-09

Apr-09

May-09

Jun-09

Jul-09 Aug-09

Sep-09

Oct-09

Nov-09

Dec-09

Page 18: Testing Does Not Equal Quality

Quality is the foundation of speed

Page 19: Testing Does Not Equal Quality

Photo credit: woodsy on sxc.hu

Quality is what ensures: Value now and in the future

Page 20: Testing Does Not Equal Quality

How do we ensure our software has it?

Page 21: Testing Does Not Equal Quality

Testing at the end doesn’t workIteration Start Iteration End

The Plan

The Reality

Plan Dev Test

Page 22: Testing Does Not Equal Quality

What’s really going on?

The Plan

The Reality

Dev Test

Dev Test

Dev expands to

fill the available

time

Dev to test is really a loop

Page 23: Testing Does Not Equal Quality

Build quality in vs. inspecting for it at end

Inspect for quality Dev TestPlan

Build quality in

Page 24: Testing Does Not Equal Quality

Manual testing doesn’t scale

Sprint 1 Sprint 2 Sprint 3 Sprint 4

New feature testing

Sprint 5

Testing that doesn’t happen,

but should

(or

happens

in

overtime)

Regression testing

Testing capacity

Page 25: Testing Does Not Equal Quality

Automate and get regression tests for free

Sprint 1 Sprint 2 Sprint 3 Sprint 4

New feature testing

Sprint 5

Automated tests that are now

regression tests

Testing capacity

Page 26: Testing Does Not Equal Quality

What is really being tested?

1 2 3 4 5 Total1 5

2 4

3 3

4 2

5 1

IterationsFe

atur

es

Page 27: Testing Does Not Equal Quality

Which features need to work best?

Never Used45%

Rarely19%

Sometimes16%

Often13%

Always7%

Source: The Standish Group

Usage of features in a typical software product

Page 28: Testing Does Not Equal Quality

But without regression it is different

1 2 3 4 5 Total1 1

2 1

3 1

4 1

5 1

IterationsFe

atur

es

Page 29: Testing Does Not Equal Quality

Minimal regression is a little better

1 2 3 4 5 Total1 3

2 3

3 3

4 2

5 1

IterationsFe

atur

es

Page 30: Testing Does Not Equal Quality

But what will happen where we don’t have regression tests running?

1 2 3 4 5 Total1 3

2 3

3 3

4 2

5 1

= Missed tests, which Murphy’s Law says will lead to defects being missed!

IterationsFe

atur

es

Page 31: Testing Does Not Equal Quality

Build and deploy processes can kill speed

Define acceptance criteria and automate

tests

Develop Package Deploy to test

env

Test

DONEThe Plan

The Reality Loops, waits, errors…more time

Page 32: Testing Does Not Equal Quality

To ensure quality in an agile world:

• Move testing to the front of the process• Collaborate• Automate tests (using agile-friendly tools)• Automate/accelerate build and deploy• Work on user stories one at a time, all the way

to DONE