dc.description.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. | en_US |