• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Agile Testing, Uncertainty, Risk, and Why It All Works
 

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

on

  • 2,843 views

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 ...

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.

Statistics

Views

Total Views
2,843
Views on SlideShare
2,835
Embed Views
8

Actions

Likes
4
Downloads
100
Comments
0

1 Embed 8

https://twitter.com 8

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Agile Testing, Uncertainty, Risk, and Why It All Works Agile Testing, Uncertainty, Risk, and Why It All Works Presentation Transcript

    • Agile Testing, Uncertainty, Risk, and Why It All Works Elisabeth Hendrickson Quality Tree Software, Inc. www.qualitytree.com esh@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.
    • 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.
    • 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.
    • Testing: Consider Certainty v. Time “Traditional” Release Single Sprint Sequence of Sprints
    • Illusion Buildup Illusion Time
    • Four Big Sources of Technical Risk Ambiguity Dependencies Assumptions Capacity
    • Eight Key Testing-Related Practices in Agile Exploratory ATDD TDD Testing Automated Automated Collective Test System Tests Unit Tests Ownership Continuous Rehearse Integration Delivery
    • Practice: Acceptance-Test Driven Development (ATDD)
    • 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.
    • Principle: Reduce Test Documentation Overhead ATDD provides leveraged documentation and results in executable requirements.
    • 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
    • Principle: Reduce Feedback Latency Latency
    • Practice: Test Driven Development (TDD)
    • 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
    • Practice: Collective Test Ownership
    • 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
    • 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.
    • 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)
    • Principle: Fail Early, Fail Fast Failing late results in panic. Failing early gives us time to fix the problems.
    • Practice: Rehearse Delivery Until we ship or deploy, we don’t know what will go wrong getting a “Done” system out the door.
    • 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