Defect Prevention & its Significance in Ensuring Software Quality
“If a defect dwells for a longer time in the product, it is more
Expensive to fix it”
The above statement signifies the need of providing prime importance to development and testing, right from the infancy of an application. Thereby, the bug inclusion rate in the product can be kept under control. This effect in increasing the overall bug removal efficiency turns out to be time saving and ensures exceptional quality of the product.
The production of a quality software product by identifying defects, their root causes and taking corrective and preventive measures to avoid their recurrence can be termed as the goal of defect prevention process. A defect introduced during software development not only affects quality of the product, but also requires more work to be done to remove them. The delay in detecting the defects can cause serious problems related to quality, cost and schedule, so instead of applying reactive actions, the proactive actions like defect prevention should be applied for the process improvement and product quality. Due to the innovation of new technologies, software product development has technically become more complex. Due to lack of technological skills, resources, budget and time constraints, organizations face a dilemma to develop their software projects. Techniques in defect prevention process like inspection and orthogonal defect classification can be employed in this direction to fetch in superior quality product.
The defect prevention efforts will reduce time and resource necessary to deliver high quality software products when introduced in the software development lifecycle. Testing should be started when the work on the requirements for a product is initiated, instead of limiting the testing process to the source code. For example, the misinterpreted customer requirements can also inculcate unwanted time loss and wastage of man power.
It is observed that many projects fail due to poor design, the design change would have a maximum impact when new requirement is introduced at a later stage of the project. Any new requirement which has impact on the design should undergo formal configuration management process to take up the new requirement in the next phase of the project.
To avoid the uncovered defects from the release of the software, the unit testing and the review of the unit test cases must be done. At times to complete the code fast and due to time constraints coding process may not adhere to coding standards. Proper and timely review of the code can avoid the issue.
When the defects identified by testing are not dealt correctly, it may cause new defect injections. Also the requirements change so frequently that the project gets far behind schedule and the output of the system becomes unreliable. Therefore all the risk factors related to the project like Client, Environment, Scope and all subcategories should be analyzed.
Implementation of defect prevention strategy not only reflects a high level of process maturity but is also a most valuable investment. The detection of errors in development life cycle helps to prevent the passage of errors from requirement specification to design and from design to code. There are several methods, techniques and practices for defect prevention. Software inspection has proved to be the most successful defect detection and prevention technique. The goal of reaching a consistently 99% defect-free software depends much on effective defect prevention techniques adopted.