Effective Software Testing: An Approach To Better Products

The cost of fixing a software defect is cheaper if the defect is detected in the phase in which it was introduced. Yet in many projects of strategic importance, this
testing is only an after thought. Traditionally, testing is associated only with the end product. And, in many IT organizations, the developers double up as testers meaning the complexity and economics of testing are not understood adequately.

All these factors result in spending unreasonable amounts of time and money on application maintenance and rework, which leads to unhappy customers. Taking a tactical or a one-dimensional approach to these challenges seldom succeeds. Therefore, what follows are some of the industry’s leading strategies to ensure that testing leads to better products and happy customers:

Establishing an Independent Testing Practice: Research has shown that testers have a different mindset than developers. The methodology, tools and techniques for testing are quite different from development. It also takes two-to-three years for a tester to be effective.

Testers, by the nature of the job, know more about the products than any one else in the organization. Learning about the competitive landscape is an absolute must to test a product completely. This business and product knowledge could lead to very valuable inputs for the product management team. The testing practice should only be focused on the quality of the product and not be affected by the time-to-market constraints.

Adoption of Test Automation: Exhaustive testing is almost impossible to perform. At the same time, testing coverage should be adequate to ensure that the product has the required quality. Additionally, 60-to– 70 percent of most testing doesn’t need manual intervention. Automating this part of testing will result in better coverage and will consume less time.

Ally with an Offshore Service Provider: Testing, especially during the execution will have spiky need for manpower. Many IT organizations may not even have an independent testing practice. It is highly domain-knowledge intensive and the knowledge of different tools is absolutely necessary.

Many offshore IT services organizations have, over the years, built very focused testing groups. By giving attention to the special needs of the testers and to the need for the business domain knowledge, these groups are able to provide much better end-to-end testing services. They are able to provide testers with different domain knowledge, having very strong testing background. The key is to select an offshore IT service provider, which has an Independent Testing Practice and is investing continuously on building capability.

Good Process: Since exhaustive testing is almost impossible to achieve, a good process foundation is critical. Processes to determine whether a product is ready for release use either the testing maturity model (TMM) or the test process improvement model (TPI). They are two of the best models for defining the test processes.

Open Source Tools: Effective usage of testing tools will result in better predictability, consistency and reduced time. The strategy should cover all the aspects of testing including test management, defect tracking, test execution and reporting. The open source community has developed some of the best tools in this space. They should be given a consideration, in addition to the commercial tools available.

Think of Testing Before Development: The traditional association of testing only with the end product is leading to more defects being detected at a later stage. This leads to additional money and time being spent on fixing problems. The best strategy is to involve senior testers right in the beginning of the product development lifecycle; at the product planning stage. Every milestone right from the beginning must be tested. This includes the product requirements specification, functionality specification and the design specification.

Ananda Rao Ladi is general manager and head of the Testing
Practice at MindTree Consulting.