Automated Root-Cause Analysis

Image title

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: 

Details from the Case Studies of Various Failures(Dalal, Sandeep, and Rajender Singh Chhillar.)*

Details from the Case Studies of Various Failures(Dalal, Sandeep, and Rajender Singh Chhillar

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:

Automatic Root Cause Analyser

Automatic Root Cause Analyzer

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

Further Reading

This UrIoTNews article is syndicated fromDzone