Testing is integral to any Agile development process. This slide deck offers an overview of Agile testing-related practices and explains how they work together to mitigate the most common sources of risk on any project.
2. 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.
3. It’s Not Done Until It’s Tested
We’re really But what if
behind. Let’s just it doesn’t
call it “done” and work?
move on.
It’s not releasable until it’s Done. (Really Done.)
Done includes both implemented and tested.
And tested means checked and explored.
9. Principle: Tests Represent Expectations
I found a great bug! Ummm…and what gave
It won’t run on a you the idea that
Commodore 64! should be a supported
platform?
Test Driven practices make expectations
explicit and drive out ambiguity early.
10. Principle: Reduce Test Documentation Overhead
ATDD provides leveraged documentation and
results in executable requirements.
11. 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
14. 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
16. 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
17. Principle: Red Build Means Stop the Line
We can just throw But that will
that bug on the pile increase technical
with the others. debt & slow
velocity.
Yuck.
If a previously passing expectation fails, there’s a
bug. Bugs slow everything down. To keep
sustainable pace, fix bugs fast.
18. 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)
19. Principle: Fail Early, Fail Fast
Failing late results in
panic. Failing early
gives us time to fix
the problems.
20. Practice: Rehearse Delivery
Until we ship or
deploy, we don’t
know what will go
wrong getting a
“Done” system out
the door.
21. Agile Testing Practices Mitigate Risk
Continuous
ATDD Integration
Rehearse
Ambiguity Dependencies
Delivery
TDD Automated Automated
System TestsUnit Tests
Exploratory Continuous Collective Test
Rehearse Integration
Testing Rehearse
Ownership
Assumptions
Delivery Delivery
Capacity
Automated Automated Automated Automated
System Tests Unit Tests System TestsUnit Tests