The software testing phase in software development projects has a strong connection to the game of politics, where the ability to manage the interests and motives of stakeholders is critical. The motive behind testing can vary across stakeholders. Tests can be done to prove that:
- there are bugs
- the bugs discovered have been resolved and
- that there are no visible bugs (at least, none that stops the software from being rolled out)
When developers test, they do so with the motive of proving that there are no bugs or that the discovered bugs have been addressed. When testers test, they do so to prove that there are bugs. A quote from Nick Jenkins best describes this:
A professional tester approaches a product with the attitude that the product is already broken, while developers approach software testing with an optimism based on the assumption that the changes they've made are the correct solution to the problem.
Their motives, however, converge as they approach the User Acceptance Testing Phase. They both want to prove to the user that the system works as it should, and that there are no bugs, however ideal this situation is.
Software testing is like a game of politics. Alliances change as interests evolve. Clashes can be expected when developers and testers are on opposite sides. Testers and developers need to cultivate social skills that can alleviate the tension and conflict associated with testing projects. Social skills like interaction, negotiation, communication and compromise help to ensure that both parties understand that the end goal is to arrive at a working software solution that is acceptable to the stakeholders.