TESTING IN AGILE TEAMS
A Practical Guide for Testers and Agile Teams
Sunday, January 13, 13
Inspiration
•Tester point of view
•Agile vs Waterfall
•Tools & Techniques
Sunday, January 13, 13
Agile quick recap!
Agile testers
Work to ensure that their team
delivers the quality their
customers need
Sunday, January 13, 13
Agile vs Waterfall testing
Waterfall Agile
• Strictly enforced gated phases ending
with a rushed testing phase and a delayed • Agile is iterative and incremental.
release. • Programmers never get ahead of the
testers, because a story is not “done” until
• Testing happens at the end, right before
it has been tested.
release.
Sunday, January 13, 13
Agile testing?
It includes just about everything beyond unit and component
level testing:
✦ functional, ✦ stress,
✦ system, ✦ usability,
✦ load, ✦ exploratory,
✦ performance, ✦ end-to-end,
✦ security, ✦ and user acceptance.
Sunday, January 13, 13
Tests that Support the Team
Biggest difference between testing on a traditional project and
testing on an agile project
They guide functionality development
When automated, then provide a safety net to prevent refactoring
and the introduction of new code from causing unexpected results.
Sunday, January 13, 13
Tests that Support the Team
Quadrant 1
Major Purpose: Test-Driven Development
All of the testing in the other quadrants can’t make up for
inadequacies in this one
TDD it’s more about design than testing
Gives a safety net to refactor
Lacking these core agile practices tend turning into “mini-waterfalls.”
Must have speed in their feedback
Incremental approach for legacy systems
Sunday, January 13, 13
Tests that Support the Team
Quadrant 2
Also drive development, but at a higher level.
Requirements
Provide the big picture and enough details to guide coding.
Prototyping
Define and verify external quality, and help us know when we’re done.
Part of an automated regression suite and run frequently
Sunday, January 13, 13
Tests that Critique the Product
The word “critique” isn’t intended in a negative sense. A critique
can include both praise and suggestions for improvement.
Feedback should be fed back into the left side of our matrix and
used to create new tests to drive future development
Sunday, January 13, 13
Tests that Critique the Product
Quadrant 3
Even when business-facing tests pass, they might not be delivering
what the customer really wants.
It’s difficult to automate business-facing tests that critique the
product, because such testing relies on human intellect, experience,
and instinct.
You won’t have time to do any Quadrant 3 tests if you haven’t
automated the tests in Quadrants 1 and 2.
Sunday, January 13, 13
Quadrant 3 Tests
Demonstrations Early and often
Scenario Realistic Testing Flows and Data provided by the
customer
Exploratory Testing As you test, you learn more about the system
under test and can use that information to help design new tests.
Usability Testing Personas
Check Competition
Sunday, January 13, 13
Tests that Critique the Product
Quadrant 4
We worry about deficiencies in the product from a technical point of view.
Nonfunctional requirements include configuration issues, security, performance,
memory management, the “ilities” (e.g., reliability, interoperability, and scalability),
recovery, and even data conversion.
Not all projects are concerned about all of these issues, but it is a good idea to have a
checklist to make sure the team thinks about them and asks the customer how
important each one is.
It needs a specialized skill-set.
May result in new stories and tasks
Sunday, January 13, 13
Quadrant 4 Testing
Security Specialized training & tools
Maintainability Code reviews, pair programming, standards,etc
Interoperability Consider communicated systems and test
Compatibility Use different OS’s, browsers, machines
Reliability how long can the system run before it fails the first time?
Performance, load testing
Installability Ready to deploy any-time. Deploy early, often and
automated.
Do not left until the very end! It might be too late...
Sunday, January 13, 13
Shared Responsibility
No matter what resources have to be brought in from outside
the development team, the team is still responsible for
getting all four quadrants of testing done.
Sunday, January 13, 13
Managing Technical Debt
Is taking shortcuts, hacks in quick fixes, or skips writing or
automating tests because it’s under the gun
Like financial debt, “interest” compounds in the form of higher
maintenance costs and lower team velocity.
Applying agile principles to do a good job of each type of testing
at each level will, in turn, minimize technical debt.
Sunday, January 13, 13
Iteration Planning
Consider all viewpoints
No story is “Done” until it’s fully tested.
Don’t be afraid to raise a red flag when a story seems to be
growing in all directions
The start of an iteration is the last chance to ensure that the
stories are testable and that adequate test data is provided.
Sunday, January 13, 13
Dealing with bugs
Within iteration bug? if possible to fix: Fix + Test
Log all production bugs or the ones that can’t be fixed right away
Set rules, like “Bugs counter should never get higher than 10”
If you find a lot of bugs in one area, think about combining them
into an enhancement or story.
If a “bug” is really missed functionality, choose to write a card for
the bug and schedule it as a story.
Sunday, January 13, 13
Summary
Use the Agile Testing Quadrants as a guide to help you plan testing that will cover all
the angles.
Guiding development with tests helps make sure you don’t miss something big
Use exploratory testing to learn more about how the application should work,
Make your test environments as similar as possible to production, using data that
reflects the real world
Evaluate how your current stories fit into the grand scheme of the business.
Sunday, January 13, 13