Defect Analysis and Prevention Method

Introduction :

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.

defect analysis

Defect Analysis :

There are various metrics for analysis of defects. Let us understand each method in detail.

  • Defect Pareto Chart :This chart reflects the frequency of occurrence of various categories of problems. The defects that has a higher frequency of occurrence is observed and priority is assigned.
  • 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.

  • Root Cause Analysis :This is the method of finding the reason that contributes to the defect. It is an essential part in the elimination of causes that leads to the defects. The key points that underlies the root cause analysis of a defect are-
    • Reducing defects to improve quality
    • Using expertise to catch the defects shall help in an efficient way

defect analysis

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.

Defect Prevention :

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 :

defect analysis

  • Software Requirement Analysis :Requirement specifications form the integral part of a software development life cycle. If the requirements aren't well understood then it may cause an issue in proceeding further. If any flaw remains hidden at this phase, then it becomes really difficult to address the issue. Hence proper assessment and analysis of the requirements is very important.
  • Reviews -whether it's the testing team that conducts the review process or the end-user, it is an effective way to scan a defect. Often it helps to seek assistance from the end-user because they have a fresh look at the system under review. It is a known fact that sometimes defects remain unnoticed when handled by the same team members, because of the monotony of work. So the review process can be self review or peer review.
  • Defect Logging and Documentation -Now when the defects have been detected and analysed, it's time for recording those defects to enable - complete description of the defect to develop a better understanding of it, taking preventive measures so that the defect isn't carried forward to the next phases.
  • Root Cause Analysis and Determining Preventive measures -Identifying the root cause of the problem involves enhanced quality of the software application being developed, applying expertise of people to know what could be the best possible way to avoid such defects and finally targeting systematic errors.
  • Embedding Procedures in the root cause analysis -The defects analysed so far and the reasons that lead to such defects, must be tracked and used as a reference for further projects.

Conclusion :

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.