The “built-in quality” concept

Software developers often consider testing as the last step in the development process to identify and remove defects. According to a software industry report, testing is the most expensive phase of software development and often account for half of a project’s schedule and budget, depending on the criticality of the system. Because there are so many defects to be identified and fixed, many projects often run behind schedules and cost more than planned. Even with the best testing techniques, some defects still escape and get into the final products and it is very expensive to fix them.

The common practice is for developers to focus their efforts on designing and coding. Testers do not get involved until developers have finished coding. That is too late and that is why software has many defects because there is not enough time to test thoroughly. There is a false belief that testers only test the code and they do not start until the code is done. That is “testing for quality” but NOT “build in quality.”

The “Build-in quality” concept requires testers to involve early when the project begins. Testers should involve in all development phases to ensure that quality is “built in” as the team develops software. Testers must participate during the requirements phase to understand customer’s requirements and make sure that they are complete and testable. With the knowledge of the requirements, testers can plan testing strategy and develop test plans accordingly. Testers must involve in the architecture phase to determine the quality attributes of the system (Performance, scalability, usability, and maintainability etc.) and make sure that the software products meet the requirements and business goals. Testers must also involve in the design phase to understand the structure of the software design such as the components of the software, the properties of those components as well as the relationships among them. From this knowledge, testers can design test cases, test scripts as well as make sure the design meet the quality criteria. The “Build in quality” concept considers testers as an essential part of the development team and works in parallel with developers to make sure quality is “built-in” every step of the development. Only by doing that, testers can help to reduce numbers of defect in the final product and ensure a quality product.

In this “Built in quality” concept, testers are considered experienced and professional team members who work in parallel with developers to make sure that quality is a critical part of the development. In companies that build high quality critical systems, testers are ranked much higher than developers and usually selected from the best developers in the company. The industry report found that by having experienced testers work side by side with developers, these companies can reduce the numbers of defects by 80% and ensure high quality products.

The concept of having testers participate late in the development process and only test the code for defects is a bad choice that often leads to poor quality products that higher cost. The “Build in” quality concept of having tester participate early in the development process and work side by side with developers to identify and remove defects early is a good choice and better business sense. However the question remains as how many companies would invest in the “build in quality” concept and consider testers as the key factor in software development?

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University