agile testing overview
DESCRIPTION
An explanation of how Agile Testing practices work together to mitigate risk.TRANSCRIPT
![Page 1: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/1.jpg)
Agile Testing, Uncertainty, Risk, and Why It All Works Elisabeth Hendrickson
Quality Tree Software, Inc. www.qualitytree.com
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/4.jpg)
Testing: Consider Certainty v. Time
Sequence of Sprints
Single Sprint
“Traditional” Release
![Page 5: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/5.jpg)
Illusion Buildup Ill
usion
Time
![Page 6: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/6.jpg)
Four Big Sources of Technical Risk
Ambiguity Dependencies
Assumptions Capacity
![Page 7: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/8.jpg)
Practice: Acceptance-Test Driven Development (ATDD)
![Page 9: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/10.jpg)
Principle: Reduce Test Documentation Overhead
ATDD provides leveraged documentation and results in executable requirements.
![Page 11: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/12.jpg)
Principle: Reduce Feedback Latency
Latency
![Page 13: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/13.jpg)
Practice: Test Driven Development (TDD)
![Page 14: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/15.jpg)
Practice: Collective Test Ownership
![Page 16: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/19.jpg)
Principle: Fail Early, Fail Fast
Failing late results in panic. Failing early gives us time to fix
the problems.
![Page 20: Agile Testing Overview](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022061217/54b520184a7959b6098b462f/html5/thumbnails/21.jpg)
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