This post is part of the “Testing for Agile Teams” series.
What’s special about being an agile tester?
- Collaborates well with both technical and business people.
- Uses tests to document requirements and drive development.
- Learns what customers do in order to fully understand the customers’ requirements.
- Tends to see the big picture (according to the customers perspective).
- Good testers have an instinct and understanding for where and how software might fail.
- They should also be creative, eager to learn, willing to take on any task or role.
Provide continuous feedback
- Help the customer articulate requirements for each story as examples or tests.
- The development team works to fulfill these tests, guided by feedback.
- Make the tests progress visual (percentage written, run, passing).
Deliver value to the customer
- Make sure the “happy path” works (the right way to use the SW).
- Consider what adds the most value to the customer — safety-critical context? If not, leave edges cases for later.
Enable face-to-face communication
- Power of Three: programmer, tester, product owner.
- Never get in the way of direct customer-developer communication. Know when to step away from being the middle man.
- Help the customer envision requirements: whiteboard discussions, examples, usage scenarios.
- To fail (failing fast and learning) and to ask for help.
- To let other fails (so they can learn and improve too).
- Create an automated regression suite as a safety net for programmers.
Keep it simple
- Do the simplest thing that could possibly work (XP).
- The customer team decides what level of quality they want to pay for.
- Evaluate how far to go with edge cases.
Simple != Easy. For testers, it means testing “just enough” with light-weight tools.
Practice continuous improvement
- The team always tries to do better work. Retrospectives let the team use yesterday’s experience to do a better job tomorrow.
- It’s easy to try something new for a few iterations.
- Always on the lookout for tools & skills. Go to meetings, join mailing lists, read articles, blogs and books.
- Automate mundane or repetitive tasks.
- Anything not learned quickly might be deemed useless (ROI).
Respond to change
- With agile instead of waterfall, customers can get their change when they want it because they control the priority.
- Automating is a team effort.
- The team creates its own approach and commits to it.
Focus on people
- Projects succeed when good people are allowed to do their best work.
- Opportunities to grow and develop their skills.
- Experienced testers ask important questions that didn’t occur to the team.
This post is a personal summary of a chapter from the book Agile Testing: A Practical Guide For Testers And Agile Teams. I’m sure you’ll find that book useful too.