Whenever I talk about testing in agile teams, and I emphasize that the testers and developers work closely together, I am asked the same question: What about the independence of the testers?
Independence is a key aspect and ensures the quality of the product, especially in waterfall and V-model projects. The testers are unbiased auditors of both the requirements and the results of the development. They provide validation from the users’ perspective, and due to their separation from the developers, it is expected that their work is not influenced.
In an agile development team, all the parties involved in the development process work closely together. The team is interdisciplinary and consists of testers, developers and designers. Basically everyone that is required to implement the solution. And the team works hand-in-hand with the client and the product owner. Obviously, the independence required with traditional methods is not provided in an agile development team. But it is no longer necessary anyway.
I became aware of that again when I was in a planning meeting of a scrum team a few days ago, where the acceptance criteria for a story were being defined: It was about the deletion of an artifact, more specifically about the confirmation prompt before the deletion. Being an old hand in testing, I suggested to the team to include an acceptance criterion or a test idea for the case of the user clicking on Cancel, and the artifact not being deleted in this case. The response came promptly: “Why? That’s a matter of course, and shame on any developer who forgets it.” This answer did not come from a tester, but from a developer. The team agreed completely. And as promised, the test cases created included this case, and naturally, they all went green because the developers implemented it correctly.
The testers’ independence in the old world is making way for a “new” idea: Each and all of the parties involved in the project are responsible for the quality! In addition, the work of the product owner ensures that the client’s perspective is taken into account. The testers bring their trained testing skills to the team, and the developers share their programming know-how. Agile principles ensure that the testing instance—downstream of the development—is no longer necessary, and I specifically trust my scrum team to implement the other stories correctly as well.