Agile Testing Practices
Agile Manifesto…
Agile SW Development
Feel empowered with
                    Agile
It’s exciting to break the silos and be an equal team member

Agile is perceived to be all about “speed” …but

It’s more about quality (if not it should be questioned)

Everyone on the team owns Quality

Agile testers do more than perform testing tasks

Agile testers work to ensure their team delivers the quality their
customers need

Testers advocate for quality on behalf of customer while
assisting developers to deliver maximum value
Agile Testing Mindset
Result-oriented…craftsman-like…collaborative…eager to
learn…passionate about delivering business value
Learn to work with what you have at any given point of time
     Example: UI may not be ready but a piece of API may be
Continually looking for ways the team can do better job of
producing high-quality software (not just testers)
   New tools/ways
   Self-improving

Willingness to take any new role / task
   Design discussions
   Suggestions for testability
   Suggestions for usability
Principles of Agile Tester Agile
Types of Tests
Basic Recipes
1. Iterate through quadrant rapidly working in small
increments
Write a test for some small chunk of a feature, write the
code, once the test is passing, perhaps automate more tests
for it, do exploratory testing on it, then add the next small
chunk and go through the whole process again.

2. There are no hard and fast rules about what goes in what
quadrant. Think through them as you do your
release, theme, and iteration planning, so your whole team
starts out by thinking about testing first.

3. Call out risk factors early and understand the types of
relevant tests
Examples: a major code refactoring might trigger a targeted
regression testing.
A major cross-cutting feature or re-achitecture might require
performance/load test
Acceptance Testing

Tests = details to a story

Tests => add value and clarify scope

Answer the question: If I tested for X,Y,Z would that make
the story accepted by a customer

The story does not get delivered unless the acceptance
tests pass => “Story is Done”
What to test ?…

“Don’t try to do more. Just do more of the right things.”

Start at broad overview level while providing just enough
details/data

The focus is on functionality and usability rather than
technical aspects (i.e. black box testing)

Composition of essential acceptance tests = Vital happy
paths + essential negative tests
Patterns and anti-patterns
Decoupled. Each test stands on its own, not depending
upon or being impacted by results of other tests.
A test must always truly exercise a system as close to
production as possible.
Think in terms of narrative, flow. Think in terms of
bounded contexts, and who the audience is for that
context
Don’t write ATs @ unit- testing level (no field validation
tests…)
  Unit tests are implementation-specific, ATs are NOT

Avoid long multi-purpose tests
Exploratory Testing
Exploratory Testing technique
Exploratory Testing Ideas
What Should Happen Right
         After
“       Jenkins - The whole
         team’s domain

• “CI doesn’t get rid of bugs but makes it
  dramatically easier to find and remove”
     -Martin Fowler
• Integration is about communication
• Keeps the pulse of the latest
  development
More of Jenkins
Automated Unit and Functional and even
Performance should be deployed through Jenkins

Notification is built-in

Visible to entire team

Reporting is built-in

The whole team needs to exploit CI for early defect
detection
Build Pipeline
http://build.tstllc.net/jenkins/view/Travel/
References
• http://www.slideshare.net/codecentric/exploratory-testing-
  inagileoverviewmeettheexpertselisabethhendrickson

• Agile Testing book by Lisa Crespin

Agile test practices

  • 1.
  • 2.
  • 3.
  • 4.
    Feel empowered with Agile It’s exciting to break the silos and be an equal team member Agile is perceived to be all about “speed” …but It’s more about quality (if not it should be questioned) Everyone on the team owns Quality Agile testers do more than perform testing tasks Agile testers work to ensure their team delivers the quality their customers need Testers advocate for quality on behalf of customer while assisting developers to deliver maximum value
  • 5.
    Agile Testing Mindset Result-oriented…craftsman-like…collaborative…eagerto learn…passionate about delivering business value Learn to work with what you have at any given point of time Example: UI may not be ready but a piece of API may be Continually looking for ways the team can do better job of producing high-quality software (not just testers) New tools/ways Self-improving Willingness to take any new role / task Design discussions Suggestions for testability Suggestions for usability
  • 6.
    Principles of AgileTester Agile
  • 7.
  • 8.
    Basic Recipes 1. Iteratethrough quadrant rapidly working in small increments Write a test for some small chunk of a feature, write the code, once the test is passing, perhaps automate more tests for it, do exploratory testing on it, then add the next small chunk and go through the whole process again. 2. There are no hard and fast rules about what goes in what quadrant. Think through them as you do your release, theme, and iteration planning, so your whole team starts out by thinking about testing first. 3. Call out risk factors early and understand the types of relevant tests Examples: a major code refactoring might trigger a targeted regression testing. A major cross-cutting feature or re-achitecture might require performance/load test
  • 9.
    Acceptance Testing Tests =details to a story Tests => add value and clarify scope Answer the question: If I tested for X,Y,Z would that make the story accepted by a customer The story does not get delivered unless the acceptance tests pass => “Story is Done”
  • 10.
    What to test?… “Don’t try to do more. Just do more of the right things.” Start at broad overview level while providing just enough details/data The focus is on functionality and usability rather than technical aspects (i.e. black box testing) Composition of essential acceptance tests = Vital happy paths + essential negative tests
  • 11.
    Patterns and anti-patterns Decoupled.Each test stands on its own, not depending upon or being impacted by results of other tests. A test must always truly exercise a system as close to production as possible. Think in terms of narrative, flow. Think in terms of bounded contexts, and who the audience is for that context Don’t write ATs @ unit- testing level (no field validation tests…) Unit tests are implementation-specific, ATs are NOT Avoid long multi-purpose tests
  • 12.
  • 13.
  • 14.
  • 15.
    What Should HappenRight After
  • 16.
    Jenkins - The whole team’s domain • “CI doesn’t get rid of bugs but makes it dramatically easier to find and remove” -Martin Fowler • Integration is about communication • Keeps the pulse of the latest development
  • 17.
    More of Jenkins AutomatedUnit and Functional and even Performance should be deployed through Jenkins Notification is built-in Visible to entire team Reporting is built-in The whole team needs to exploit CI for early defect detection
  • 18.
  • 19.
    References • http://www.slideshare.net/codecentric/exploratory-testing- inagileoverviewmeettheexpertselisabethhendrickson • Agile Testing book by Lisa Crespin

Editor's Notes

  • #5 Not reporting to POAnyone can be a Tester on a teamTester is a role
  • #6 The whole idea is to test continually and incrementally while code is being developedRetrospective, design storms, story time
  • #9 The point is Testing is not left until the end