In an Agile world, would you consider all of the team members testers? Are they part of defining the quality of the software? How can a team member be a good agile tester in your mind? What are the qualities you are looking for a tester in an Agile world?
If your question is "Who is a tester" my answer will be "anyone who does tests".
But if you are asking who should be a tester, it will depend on the team resources, abilities and strategies.
- When team members have different abilities, maybe the easier option is assigning someone the tester role and making him/her accountable for test assets.
- On the other hand, homogeneous teams can have a rotating tester role. The main benefit of having a different person creating tests for each sprint is that everyone on the team will become aware of testing activities and when they return to the developer role they will make their code more robust and testable.
- Another option for homogeneous teams is not having a tester role, but allocating a 15-20% of everyone's time to testing activities. Similar benefits, but it is important to decide who is going to test what. It's preferable not to test each one's own code to get more defects detected sooner, because we usually become blind to our own errors.
- Finally, big projects with many scrum teams often create a cross-wise team dedicated only to QA and integration activities.
In Agile, both the development & testing tasks are done collaboratively, but there is an exclusive tester for exhaustive testing sake.
The exclusive tester can also involve in development which is called pair programming.
The developer writes the tests which is called unit testing.
Hence except from product owner and scrum master everyone are termed as Developers.
Agile teams are cross-functional teams. They estimate their work from design to delivery often on a story based level. This includes the testing work, since testing should be part of the definition of done. One of the most popular Agile frameworks Scrum has no dedicated testing role. Everyone is named member of the Development team.
From the Scrum guide:
Individual Development Team members may have specialized skills and areas of focus, but accountability belongs to the Development Team as a whole.
Now I think anyone in the team should be able to execute the test the work. Keep in mind Agile is not mini waterfall where all the testing is postponed until the end, executed by a certain discipline. Keep in mind a lot of team functions like this. Still do not postpone testing until the end.
Having someone with a QA background in the team is a great plus, now this person can share his knowledge with the rest of the team and get everyone on a high quality level. If not the whole team is up to the task at this moment, try some pair testing until they are.
Qualities to look for are:
- Team player
- At-least basic programming
- Test automation knowledge
- Passion for quality
- User centric view (instead of technical)
- and of-course experience with testing software.
Maybe read following book: http://agiletester.ca/