Tuesday, 14 July 2015

Root Cause Analysis in Software Testing


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