RCA (Root Cause Analysis) is a mechanism of analyzing the Defects, to identify its cause. We brainstorm, read and dig the defect to identify whether the defect was due to “testing miss”, “development miss” or was a “requirement or designs miss”.
When RCA is done accurately, it helps to prevent defects in the later releases or phases. If we find, that a defect was due to design miss, we can review the design documents and can take appropriate measures. Similarly, if we find that a defect was due to testing miss, we can review our test cases or metrics, and update it accordingly.
RCA should not be limited only to testing the defects. We can do RCA on production defects as well. Based on the decision of RCA, we can enhance our Test Bed and include those production tickets as Regression Test cases. This will ensure that the defect or similar kinds of defects are not repeated.
How To Perform Root Cause Analysis?
There are many factors which provoke the Defects to occur:
- Unclear / Missing / Incorrect Requirements
- Incorrect Design
- Incorrect Coding
- Insufficient Testing
- Environment Issues (Hardware, Software or Configurations)
These factors should always be kept in mind while performing the RCA process.
There is no defined process of doing RCA. It basically starts and proceeds with brainstorming on the defect. The only question which we ask ourselves while doing RCA is “WHY?” and “WHAT?” We can dig into each phase of the life cycle to track, where the defect actually persists.
Let’s start with the “WHY?” questions, (the list is not limited). You can start from the outer phase and move towards the inner phase of SDLC.
- “WHY” the Defect was not caught during the Sanity Test in production?
- “WHY” the Defect was not caught during Testing?
- “WHY” the Defect was not caught during the Test case review?
- “WHY” the Defect was not caught Unit Testing?
- “WHY” the Defect was not caught during “Design Review”?
- “WHY” the Defect was not caught during the Requirement phase?
The answer to this question will give you the exact phase, where the defect actually exists. Now once you identify the phase and the reason, then comes the “WHAT” part.
“WHAT will you do to avoid this in the future?
The answer to this “WHAT” question, if implemented and taken care of, will prevent the same defect or the kind of defect to arise again. Take proper measures to improve the identified process so that the defect or the reason for the defect is not repeated.
Based on the results of RCA, you can determine which of the phase has problem areas.
For Example, if you determine most of the RCA of the defects are due to requirement miss, then you can improve the requirement gathering/understanding phase by introducing more reviews or walk-through sessions.
Similarly, if you find that most defects are due to testing miss, you need to improve the testing process. You can introduce metrics like Requirement Traceability Metrics, Test Coverage Metrics or can keep a check on the review process or any other step that you feel would improve the efficiency of the testing.
It is the responsibility of the entire team to sit and analyze the defects and contribute to the product and process improvement.