Optimising and Assessing the Effectiveness of Specrum Based Fault Localisation
14 May 2018
Stadscampus, Promotiezaal van de Grauwzusters - Lange Sint-Annastraat 7 - 2000 Antwerpen (route: UAntwerpen, Stadscampus
Organization / co-organization:
Department of Mathematics and Computer Science
PhD defence Gulsher Laghari - Faculty of Science, Department of Mathematics and Computer Science
Software, today, is the driving force in our modern society. However, the dynamic nature of the world has severe implications on the software as it must constantly adapt to ever changing requirements. This evolution then might introduce new faults or trigger dormant faults already lurking in the system. When the software is deployed with such faults, this may have unfortunate consequences.
Software testing acts as a safety net to detect these faults early on. Therefore, modern software teams spend lots of effort writing tests. Once the tests expose the faults, software developers need to fix them. The first —and the most difficult— step is to locate the exact location of the fault in the millions lines of code. Spectrum based fault localisation are techniques designed to aid developers in locating the fault. The main advantage of spectrum based fault localisation is that it only requires the faulty program and the set of test cases that expose the fault. With that input, the techniques statistically analyse the coverage information of the test cases and deduce a ranked list of possible locations.
Unfortunately, in the current state of the art, spectrum based fault localisation have limited diagnostic accuracy: for some faults they succeed in pinpointing the exact location but for many others they miss. This thesis aims to increase the effectiveness of spectrum based fault localisation. To this end, the thesis explores the use of closed itemset mining and sequence mining in spectrum based fault localisation and demonstrates that both closed itemset mining and sequence mining increase the effectiveness of spectrum based fault localisation. Moreover, we evaluate the spectrum based fault localisation from a new perspective; how does it perform on easy- and difficult-to-locate faults. We argue and demonstrate that defects exposed by component tests imply a larger search space and hence are difficult-to-locate compared to defects exposed by unit tests, which imply a rather smaller search space. We conclude that spectrum based fault localisation techniques perform far better on faults exposed by unit tests compared to faults exposed by component tests, hence there is still room to optimise it for difficult-to-locate faults exposed by component tests.