The SliceFL project

In the SliceFL project, we conduct research on automated debugging methods that can effectively help developers in real-world situations. Our aim is to develop techniques based on state-of-the-art research achievements but which are robust and efficient enough to be attractive for the developers.

Our current focus is on two popular techniques proposed for automated debugging, program slicing and automated fault localization. With slicing, code elements contributing to the computation at the fault can be determined, while fault localization aims at narrowing down the most probable faulty elements based on test outcomes. We combine the two techniques, exploiting the positive features of both while minimizing their drawbacks. Currently, we experiment with Spectrum-Based Fault Localization (SBFL) and Backward Dynamic Program Slicing that work on program code and associated unit tests. Starting from the asserts in the tests, we compute the slices which contain statements that affect the assert’s output, and then we use this information in the spectrum matrix required by SBFL. Traditionally, SBFL matrix is based on simple code coverage, and we show why slices are much better for this purpose.

Developing tools to efficiently compute precise-enough program slices which can be used in SBFL, and integrating them in popular IDE-s is our short-term goal in the SliceFL project. If you’re interested in the details, you can read more on the Techniques page or find more information in our publications.