Root cause Analysis (RCA) is an important activity in a project and hence I chose to write about this first in my blog.
There is a common misunderstanding that RCA is developer’s responsibility and tester need not worry about it. RCA has to be done both from tester and developer end, each in a different perspective. Since the defect is found by the Tester, he/she should be aware of all the steps to reproduce. If we go little further to analyze we will be able to figure out the issue to some extent.
Personally I don’t recommend testers to spend time digging
into the code to find issue, but most of the issues root cause can be found out
on analysis.
Root Cause Analysis: It is a process of analyzing the
bug/defect and figure out its root cause.
RCA is usually performed officially when there is any
production Issue is caught. It may be also performed whenever QA reports a bug.
This helps us to fix the original
issue instead of providing quick fixes. Based on the RCA, we can take decision
to prevent the occurrence of defect in future.
RCA has to incorporate all the below points.
·
Analyzing the exact issue
·
What caused the issue
·
How it can be prevented in future
Analyzing the
issue:
Whether
an issue is reported by tester or Production, the issue has to be analyzed
thoroughly. We should try to gather as much information possible about the
issue. For example, if an exception issue is found, we need to look,
è
What type of exception it is?
è
Whether it crashes the application or not?
è
Is it machine specific or occurs in all
machines?
è
Exact steps to reproduce.
è
Is it consistently reproducible or an
inconsistent issue?
o
Almost all issues can be reproduced consistently
if we find the root cause/exact steps
è
Any information can be obtained from log files
o
Log files will have the details about the
exception and at which point of code it is thrown. Even if there is any issue
with environment setup, it can be found out from log files like missing tables,
Stored Procedure issues, constraint violation etc.
What caused the
issue?
There are many factors which might
have caused the issue like,
·
Ambiguous/ missing requirements
·
Design Issue
·
Incorrect Implementation
·
Environment Setup Issues
·
Insufficient Testing
·
Data Issue
·
Integration issues
·
Communication issues
·
Oversight
Mostly the causes will be a combination of two or more above factors.
How it can be
prevented in future:
Once we find the root cause
of the issue, we should try to take a preventive action to avoid it occurrence
in future. For this Defect Prevention meeting will be conducted to discuss all
the issues, its causes and come up with a preventive measure to avoid these
causes. I will cover this in my next post in detail.
No comments:
Post a Comment