Spectrum-based fault localization (SBFL) for Haskell
Spectrum-based fault localization (SBFL) is a technique for automatically locating the probable source code location of bugs in software.
SBFL achieves this by combining two tools: a test suite used for specifying the desired behaviour, and a tool for generating code coverage reports, i.e. code executed during the test.
A simple statistical analysis allows to identify unsuspicious code (i.e. code either not executed during the failing test), or code which is also executed by all succeeding tests, as well as suspicious code (i.e. code executed by the failing test but not the succeeding tests).
The promise of SBFL is that this combined information helps programmers spend less time locating the source of a bug they introduced.
The goal of this thesis is to implement a SBFL tool for the programming language Haskell. This involves writing a testdriver which internally uses the hpc library to generate coverage reports indivudally for each test, and to use code from the hpc
binary to create the statistical analysis.
This thesis is co-supervised with David Binder.
Additional Material
- Description of Haskell Program Coverage(HPC)
- The HPC package on Hackage
- The code of the HPC binary
- Introductory slides about SBFL