21
Agile Testing, Uncertainty, Risk, and Why It All Works Elisabeth Hendrickson Quality Tree Software, Inc. www.qualitytree.com [email protected] Last updated April 27, 2010 Copyright © 2010 Quality Tree Software, Inc. This work is licensed under the Creative Commons Attribution 3.0 United States License. View a copy of this license .

Agile Testing Overview

Embed Size (px)

DESCRIPTION

An explanation of how Agile Testing practices work together to mitigate risk.

Citation preview

Page 1: Agile Testing Overview

Agile Testing, Uncertainty, Risk, and Why It All Works Elisabeth Hendrickson

Quality Tree Software, Inc. www.qualitytree.com

[email protected]

Last updated April 27, 2010 Copyright © 2010 Quality Tree Software, Inc.

This work is licensed under the Creative Commons Attribution 3.0 United States License. View a copy of this license.

Page 2: Agile Testing Overview

What Does Agile Really Mean?

Agile software teams…

…Deliver value in the form of releasable software at frequent regular intervals (at least monthly)…

…At a sustainable pace…

…While adapting to the changing needs of the business.

Page 3: Agile Testing Overview

It’s Not Done Until It’s Tested

We’re really behind. Let’s just call it “done” and

move on.

But what if it doesn’t

work?

It’s not releasable until it’s Done. (Really Done.) Done includes both implemented and tested.

And tested means checked and explored.

Page 4: Agile Testing Overview

Testing: Consider Certainty v. Time

Sequence of Sprints

Single Sprint

“Traditional” Release

Page 5: Agile Testing Overview

Illusion Buildup Ill

usion

Time

Page 6: Agile Testing Overview

Four Big Sources of Technical Risk

Ambiguity Dependencies

Assumptions Capacity

Page 7: Agile Testing Overview

Eight Key Testing-Related Practices in Agile

ATDD TDD Exploratory Testing

Collective Test Ownership

Automated Unit Tests

Automated System Tests

Continuous Integration

Rehearse Delivery

Page 8: Agile Testing Overview

Practice: Acceptance-Test Driven Development (ATDD)

Page 9: Agile Testing Overview

Principle: Tests Represent Expectations

Test Driven practices make expectations explicit and drive out ambiguity early.

I found a great bug! It won’t run on a Commodore 64!

Ummm…and what gave you the idea that

should be a supported platform?

Page 10: Agile Testing Overview

Principle: Reduce Test Documentation Overhead

ATDD provides leveraged documentation and results in executable requirements.

Page 11: Agile Testing Overview

Practice: Automated System-Level Regression Tests

• Are business-facing, written by various members of the team in collaboration

• Express expectations about externally verifiable behavior

• Represent executable requirements

Page 12: Agile Testing Overview

Principle: Reduce Feedback Latency

Latency

Page 13: Agile Testing Overview

Practice: Test Driven Development (TDD)

Page 14: Agile Testing Overview

Practice: Automated Unit Tests

• Are code-facing, written by programmers to support the coding effort

• Express expectations of the internal behavior of the code

• Isolate element(s) under test

• Execute quickly and often

Page 15: Agile Testing Overview

Practice: Collective Test Ownership

Page 16: Agile Testing Overview

Practice: Continuous Integration (CI)

CI tools do automated builds, execute tests, and report the results

Developers practicing CI merge their changes locally & execute tests before checking in

Page 17: Agile Testing Overview

Principle: Red Build Means Stop the Line

If a previously passing expectation fails, there’s a bug. Bugs slow everything down. To keep

sustainable pace, fix bugs fast.

We can just throw that bug on the pile

with the others.

Yuck.

But that will increase technical

debt & slow velocity.

Page 18: Agile Testing Overview

Practice: Exploratory Testing

Simultaneously…

…learning about the software

…designing tests

…executing tests

using feedback from the last

test to inform the next

(See Jon and James Bach’s work on Session-Based ET)

Page 19: Agile Testing Overview

Principle: Fail Early, Fail Fast

Failing late results in panic. Failing early gives us time to fix

the problems.

Page 20: Agile Testing Overview

Practice: Rehearse Delivery

Until we ship or deploy, we don’t

know what will go wrong getting a

“Done” system out the door.

Page 21: Agile Testing Overview

Agile Testing Practices Mitigate Risk

Ambiguity Dependencies

Assumptions Capacity

ATDD

TDD

Exploratory Testing Rehearse

Delivery

Collective Test Ownership

Automated Unit Tests

Automated System Tests

Continuous Integration

Automated System Tests

Automated Unit Tests

Automated System Tests

Automated Unit Tests

Rehearse Delivery

Rehearse Delivery

Continuous Integration