Managers of software development organizations often face the challenge of fixing post-release software quality issues. Since the release itself is impeded due to the Software QA processes not being as process-driven as the development, there is a need for Outsourcing QA to address this issue.
Development and QA Goals:
Building software is comprised of two complementary activities: development & QA Testing. QA is responsible for unearthing, tracking and reporting defects throughout a products lifecycle. The outputs from Software QA include defect reports having actual, problems, potential problems & inconsistent specifications / code.
Merging Development and QA:
Having established the goals of the QA and development teams, one is faced with the question of who to handover QA to. The development team will certainly have more knowledge about the product - having lived with it from day one.
What about Outsourcing QA as a part of the development team?
In such a scenario QA is likely to be heavily compromised. The reasons being:
1. There is an obvious conflict-of-interest when the development team is given ownership of QA Testing. Since QA is reflective of development standards and is relied upon for software acceptance it is natural that the development team be inclined to present biased QA reports.
2. The development teams primary focus will be project delivery. In the real world projects are pressed for time, budgets and resources. Very often-independent software QA time gets eaten into by development time while chasing the objective of project delivery vis-à-vis releasing a high quality product.
3. An Independent Software QA Company realizes that developers and testers are inherently different people with different attitudes and mindsets. Where a developer would seek solutions a tester would seek problems. Where a developer will see the bigger picture and move on, a tester will plod through minute detail.
4. This initiates the need for Outsourcing QA. A bug therefore is likely to get communicated to the development team & get fixed without any formal record of its initial appearance at all.
The option of an autonomous QA team:
Segregating the QA Testing team that is part of a larger development team is, in reality, a difficult exercise. In practice different degrees of independence are possible: Managerial, Financial & Technical.
Managerial independence allows the QA team to decide for itself how and where to focus its efforts. The efforts encompass everything from larger organizational objectives, hiring policies & processes to specific project deliverables.
Financial independence refers to control over independent software QA budgets. When the QA budget is strictly separated from the development budget, it reduces the risk of having the budget diverted or reduced in the face of development pressures.
Technical independence refers to the fresh perspective that QA team not involved in the development effort can bring to any project. The development team will not influence their understanding of the software.
When should one involve the independent QA vendor?
It is a good idea to involve the QA vendor once the functional requirements specification document (FRS) is ready. When testing commences early, less effort is required for error-detection and re-testing and finally the delivered software has fewer defects
National Institute of Standards and Technology (NIST), an agency of U.S. Department of Commerce, in a recent study found that independent software QA can save the U.S. economy an estimated 59.5 billion per year.
ReadyTestGo is a professional Software Testing Company (www.readytestgo.com/readytestgo.htm) and Outsourcing QA (www.readytestgo.com/services.htm). For more details, please contact firstname.lastname@example.org.