Testing for agile teams: 10 principles for agile testers (#2)

Agile Testing Book Part 2

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.

Have courage

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

Self-organize

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

Enjoy


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.