logo
Ponte Academic Journal
May 2016, Volume 72, Issue 5

Statistical Debugging Effectiveness as a Fault Localization Approach: Comparative Study

Author(s): Mohammed

J. Ponte - May 2016 - Volume 72 - Issue 5
The process of paper has not been completed.



Abstract:
Fault localization is an important topic in software testing, as it enables the developers to specify fault location in their code. One of the dynamic fault localization techniques is statistical debugging. It is based on the idea of using statistical models of both success and failure of the program, in order to track down different bugs in a program. Moreover, it identifies the most critical predicate for each bug. These predicates then ranked based on different statistical debugging algorithms.\nIn this paper, different techniques of statistical debugging were identified, especially those techniques that are adaptable in dynamic programming languages. In our study, two statistical debugging algorithms are implemented, SOBER and Cause Isolation, and then an experimental works are conducted on five programs coded using Python as an example of well known dynamic programming language. Programs are categorized based on their complexity and structures. Each program has two versions; a correct version and bugs injected version. \nResults showed that in programs that contain only single bug, the two studied statistical debugging algorithms are very effective to localize a bug. In programs that have more than one bug, SOBER algorithm has limitations related to nested predicates, rarely observed predicates and complement predicates. The Cause Isolation has limitations related to sorting predicates based on importance and detecting bugs in predicate condition. The accuracy of both SOBER and Cause Isolation is affected by the program size. Quality comparison showed that SOBER algorithm requires more code examination than Cause Isolation to discover the bugs.
Download full text:
Check if you have access through your login credentials or your institution