Root Cause Analysis

Introduction :

The term 'Root Cause Analysis' is used in context of software testing to analyse the core reason due to which a defect arises. This technique often helps to enlighten us about the various facts that were otherwise hidden. When a bug is detected, we try to backtrack to the previous phases and try to analyse whether the cause of defect lies in the requirements phase or the design phase. Root Cause Analysis can be described as a way of of finding the faults that result in failure.

There are various metrics that helps to solve the purpose of Root Cause Analysis. The metrics provide a way to assess the defects in quantifiable terms. A bug may be detected at any phase of the Software Development Life Cycle. Hence the approach used to sort that defect differs accordingly.

We can have an overview of the various causes that may lead to a defect in any phase of SDLC.

  • Requirements Gathering: In this phase, the possibility of a defect may be due to misinterpretation of the requirements stated by the customer. When the requirements are reviewed in the light of feasible options at the developers site or the possibilities of fulfilling those requirements, a situation may arise that leads to a conclusion that the specifications might have been misunderstood.
  • Design/Implementation Phase: A crucial phase indeed. It is at the disposal of the developers and testers to make efficient use of the tools available to them , and perform static analysis, code coverage, code reviews, unit tests etc. The testers must carry out regression and functional tests, with the help of various automation tools.
  • Testing Phase: This phase is concerned with execution of test cases under a given test scenario with a test plan in mind. When a defect is found, regression test is done before making any updates. Incorrect test results or incorrect values passed to the test may lead to bug.

In Root Cause Analysis, there is an interesting angle to defect detection. The Fish Bone diagram. This diagram is often referred to as cause and effect diagram.

The above diagram is the representation of how the causes to a problem/ defect are detected. This tool is very helpful in understanding root cause analysis. The node that is marked as fish head forms the point where we collect the issues that needs to be resolved. The arrows can be thought of as fish bones that represent the causes and the impact of those causes are laid down in the bones. The formation of bones finally leads to the node which gives the end result of the entire cause analysis process.

This approach is very simple and helps to carry out our Root Cause Analysis in an efficient way.

Objectives of Fish Bone :

  • It helps determining the root cause of a problem in a simplified and easily understood manner.
  • Emphasising the key factor that leads to a defect, despite of useless discussion.
  • Identification of areas that need attention.
  • Focusing on the faults that led to failure.
  • Finding out what reasons that led to the defect.

Conclusion :

In software development process, it becomes very important to heed the niceties involved, which helps to deliver a nearly accurate end- product. After all the end-users hold major importance in the eyes of an organisation. A happy customer is what builds the goodwill of a company to sustain in the long run.