Independent Testing
Independent testing has become the industry buzzword and the latest trend is to have two demarcated teams looking into development and the developed quality. Such demarcation brings in the much needed unbiased measurement of quality and confidence in moving forward with production plans. This results in better retention of customers, reduces loss due opportunity costs and a general confidence on releases in the user base.
An empowered independent testing team works on the principle that they are the quality gatekeepers and allow releases that measure up to a set standard. In addition the team also aids the development team by providing necessary test metrics - in fact the entire testing life cycle can be straight jacketed into a metric driven test management clearly churning out meaningful metrics that aid all stakeholders in various decision making processes. Defect prevention activities conducted by the independent testing team help reduce rework which is termed to be the main culprit in schedule and effort slippages.
Such demarcation of development and test teams can be done in multiple ways but the best working formula has been that the Development Manager and Test Manager run two separate projects in parallel and reporting does not cross over between these teams. Cohesion between these two teams are ensured by way of shared project documentations, requirements dissemination to both the teams by BAs, cross review of project deliverables like Use Cases and Test Cases, daily stand-up meetings, Bug Triages etc. The idea is to keep the Test Team as independent as possible while allowing team members to interact with the development team freely.
The term "empowered teams" has a special meaning in such circumstances - the Test Team is empowered to:
1. To create a relevant strategy that may gel with the development strategy
2. Add additional functional and non-functional tests to the plans
3. Question the implementation by the development team
4. White-box test the code to find defects
5. Decide on whether a release is fit to be tested or not
6. Decide on the test metrics to be captured and formats in which they are presented
7. Involve in a "GO" "NO GO" decision of the final release to User Acceptance Testing
Taking this idea further, an evaluation of how distant or near, these two teams have to be geographically placed is important. The advent of specialized testing services providers whose core business is providing functional and non-functional testing has made traditionalists to sit-up and notice the benefits that such providers bring. These benefits are not just economical but also in terms of specializations that might not be available at the site of development.
So virtually the Product Stakeholders can be located in the USA - these include Product Sponsors, Domain and Industry Experts, Business Analysts (BAs) while the Architects and Developers are from a distant location say from Vietnam and the Test Team is from India. With the latest collaboration and communication tools and the ability to work with short overlaps between these locations the Product Stakeholders almost have a 20-24 hour development and testing cycle on their hands! Now imagine the improved time to market!!
It is not that such an arrangement comes flawless. Experience has taught us many lessons. The processes have improved, new tools for collaboration have arrived, new methods of cooperation have improved dynamics of such geographically distant teams.
If we now look at some of the advantages, pitfalls and corrective measures of such an arrangement it all clearly points to us why the software development is shifting towards this model.
Almost an error-free software:
The well-oiled processes followed by independent test service providers which include testing tools, techniques and resources to deliver quality-tested software.
Focus on product development:
The product sponsors and development team can focus completely on core product development and its effective sales strategy.
Saves Time:
Customer gets sufficient time to focus on "core" business activities and the offshore testing team help to eliminate bugs/defects from the software. It is possible to have a 24 hour development cycle.
Cost effectiveness:
Lower cost of resources, apportioned costs testing tools, technical know-how, non-functional testing . Hence, outsourcing testing services is a cost-effective business decision.
Time to market:
A skilled testing company following defined and time tested processes conducts software testing very fast and yields quick deliverables, which leads to in time release of the product into the market.
What finally works for the customer’s advantages are
a. The level of commitment of the customers on-site management to the success of the off-shore team
b. Processes and tools that aid off-shore
c. Knowledge about the on-site people, processes, tools and working pressures – a short onsite visit will do wonders
d. The intensity of communication and transparency between the on-site and the off-shore teams
You may experience success with your off-shore test team if you have the foresight to identify the potential issues, mitigate them and are motivated to make the relationship work over a long term. The offshore team would be more than happy to make the necessary changes to work up to your expectations.
As always, there are no easy answers or sure-fire formulas. Has your company moved testing offshore? What worked? What didn't?
If you could do it over, what would you do differently ... or would you? How can we help?