An interesting question that sometimes emerges for teams using XP practices is whether Testers (should you be lucky enough to have them) are Customers or Developers. There is a slight catch in the question itself. Customer and Developer are roles, not jobs, or people. A person can adopt either role. However a person should not adopt both roles at the same time. That said there is a clear distinction between the activities performed by the two roles which might best be defined as Customer determines ‘what’ and Developer determines ‘how’.
In XP Customers define the requirements (in the form of user stories and supporting detail), prioritize stories, and participate in functional testing. The Customer defines scenarios which verify that the story is ‘done, done’. In contrast Developers provide estimates and build the solution that passes the acceptance tests. Crossing the streams – Customers indicating how they want something built or Developers defining what to build always ends in a loss of the insights each specialism provides and should be avoided. Trying to decide how and what at the same time also leads to poor solutions. Often as the requirement is built around a proposed, often non-optimal solution, obscuring the true need. Other times we try to automate existing process based of manual or legacy practices over defining what the need is. Try to seperate defining what from how.
With this understanding testers naturally fit within the Customer role – because they work on defining tests for what the system does and have responsibility for confirming them. This means that for testers, understanding the domain of the system-under-test becomes a key responsibility to help them fulfill their role.