An Artificial Intelligence paradigm for troubleshooting software bugs

Amir Elmishali, Roni Stern, Meir Kalech

Research output: Contribution to journalArticlepeer-review

29 Scopus citations


Software bugs are prevalent and fixing them is time consuming, and therefore troubleshooting is an important part of software engineering. This paper presents a novel paradigm for incorporating Artificial Intelligence (AI) in the modern software troubleshooting process that can drastically reduce troubleshooting costs. In this paradigm, which we call Learn, Diagnose, and Plan (LDP), we integrate three AI technologies: (1) machine learning: learning from source-code structure, revisions history and past failures, which software components are more likely to contain bugs, (2) automated diagnosis: identifying the software components that need to be modified in order to fix an observed bug, and (3) automated planning: planning additional tests when such are needed to improve diagnostic accuracy. Importantly, these AI technologies are integrated in LDP in a synergistic manner: the diagnosis algorithm is modified to consider the learned fault predictions and the planner is modified to consider the possible diagnoses outputted by the diagnosis algorithm. The overall solution is demonstrated on real faults observed in four open source software projects.

Original languageEnglish
Pages (from-to)147-156
Number of pages10
JournalEngineering Applications of Artificial Intelligence
StatePublished - 1 Mar 2018


  • Artificial Intelligence
  • Automated diagnosis
  • Automated troubleshooting
  • Software engineering
  • Software fault prediction

ASJC Scopus subject areas

  • Control and Systems Engineering
  • Artificial Intelligence
  • Electrical and Electronic Engineering


Dive into the research topics of 'An Artificial Intelligence paradigm for troubleshooting software bugs'. Together they form a unique fingerprint.

Cite this