As the software development progresses, the structure becomes more complex. It is quite obvious that any fault is hard to discover, when the system grows bigger. Hence, defect analysis and prevention becomes very important. The role of testers with the right level of experience is very crucial at this point, they need to be involved in defect prevention activities to ensure smooth functioning of other tasks. Defect analysis and prevention is an activity that impacts the entire development life cycle. Occurrence of defects also affects the budget of a project. A considerable amount of time and workforce is required to deal with the defects.
There are various metrics for analysis of defects. Let us understand each method in detail.
The above bar chart shows the various problems/defects encountered in the system. Like the 'vital few' shows that downloading problem is high among the rest. File not found and open as read-only file has subsequently higher defect occurrence. Accordingly, priority is assigned to address those defects.
A fish-bone diagram is used as an effective tool to carry out the process of root cause analysis.
This is termed as the cause and effect diagram. The various arrows are the fish bones that represent the causes that lead to a defect and the resultant effect forms the face of the fish, which is to be dealt with.
It can be defined as a measure to ascertain that defects detected so far, must not reappear.
Often there is someone appointed as the lead to carry out the defect prevention activity. The coordinator is responsible for facilitating communication among the team members, planning and devising defect prevention guidelines etc.
Defect prevention can be understood in the light of the following activities :
Faults, Defects, Errors, Failure.. these terms are interlinked. The presence of one, causes the occurrence of the other. If the requirements are not carefully analysed , then it becomes a fault which may result in a defect or a failure. The failure is simply the incapability of the system to generate the expected results. Errors are the result of human mistakes, at the developer's end. In such scenarios it becomes very important to conduct a defect analysis and defect prevention process, from the perspective of Total Quality Management. After all a quality product is what we aim at , and thus Quality Assurance forms such an important aspect of the whole Software Development Life Cycle.