Automatic debugging approaches: a literature review

Kevin Njeru

https://orcid.org/0000-0002-8160-9322

Dr. Geoffrey Mariga

Muranga University of Technology

Keywords: Automatic debuging, fault localization, debugging, program slicing, execution synthesis


Abstract

Fixing failed computer programs involves completing two fundamental debugging tasks: first,
the programmer has to reproduce the failure; second, s/he has to find the failure cause. Software
debugging is the process of locating and correcting erroneous statements in a faulty program as a
result of testing. It is extremely time consuming and very expensive. The term debugging
collectively refers to fault localization, understanding and correction. Automated tools to locate
and correct the erroneous statements in a program can significantly reduce the cost of software
development and improve the overall quality of the software. This paper discusses fault
localization, program slicing and delta debugging techniques. It identifies statistical fault
localization tools such as Tarantula, GZoltar and others such as dbx and Microsoft Visual C++
debugger that provides a snapshot of the program state at various break points along an
execution path. In conclusion we note that most software development companies spend a huge
amount of resources in testing and debugging. A lot more research need to be conducted to fully
automate the debugging process thereby reducing software production cost, time and improve
quality.


Author Biography

Dr. Geoffrey Mariga, Muranga University of Technology

Department of Information Technology
Murang’a University of Technology, Murang’a Kenya