Automated Root-Cause Analysis
Everything you could want for you ARC needs.
Join the DZone community and get the full member experience.Join For Free
When we look at the process of creating large-scale enterprise software projects, bugs are inevitable like the sun over the Sahara Desert.
The final stage of the Software Development Life Cycle (SDLC) is Post-Mortem, which includes the analysis of the process and the enhancements of the SDLC. In Russell Ovans' book, Lord of Files: Essays on the Social Aspects of Software Engineering, the author explains how the software development life cycle continues.
The software project that contains no bug/problem is every developer's dream. Zero defects may be conquered by TTD and applying combinatorial testing with use and test cases.
"Testing leads to failure, and failure leads to understanding." - Burt Rutan
After the release of a project, finding the root causes of issues should not be postponed because this phase of SDLC prevents future defects and helps team members' awareness and self-control.
Per Details From the Case Studies of Various Failures (Dalal, Sandeep, and Rajender Singh Chhillar), software bugs and root causes are explained as:
Today's process of SDLC could not be automated for post-mortem, but Software Problems' Root cause analysis can be automated in today's software with machine learning algorithms. In fact, when we do this with the rule engine, it becomes semi-automatic.
However, the software system is used to test the data set of input, input causes, and defect details. I think that Artificial Intelligence and Machine learning algorithms can help us tag software errors automatically for matured systems.
A High-Level Design view of A-RCA** can be seen in the following figure:
The Steps for A-RCA** are as follows:
1. Code Repository Check-in list and Related Defects are analyzed and the training dataset is prepared.
2. A new defect is entered.
3. Defect GUI asks A-RCA** Tool, what type of defects category is presented.
4. Determination of Defects' root cause.
5. Returning RCA*** result.
6. Save to defect to the repository.
* Dalal, Sandeep, and Rajender Singh Chhillar. "Empirical study of root cause analysis of software failure." ACM SIGSOFT Software Engineering Notes 38.4 (2013): 1-7.
** Automated Root Cause Analyzer
*** Root Cause Analyzer
Opinions expressed by DZone contributors are their own.