The task of software diagnosis algorithms is to identify which software components are faulty, based on the observed behavior of the system. Software diagnosis algorithms have been studied in the Artificial Intelligence community, using a model-based and spectrum-based approaches. In this work we show how software fault prediction algorithms, which have been studied in the software engineering literature, can be used to improve software diagnosis. Software fault prediction algorithms predict which software components is likely to contain faults using machine learning techniques. The resulting dataaugmented diagnosis algorithm we propose is able to overcome of key problems in software diagnosis algorithms: ranking diagnoses and distinguishing between diagnoses with high probability and low probability. This allows to significantly reduce the outputted list of diagnoses. We demonstrate the efficiency of the proposed approach empirically on both synthetic bugs and bugs extracted from the Eclipse open source project. Results show that the accuracy of the found diagnoses is substantially improved when using the proposed combination of software fault prediction and software diagnosis algorithms.
|Number of pages||6|
|Journal||CEUR Workshop Proceedings|
|State||Published - 2015|
|Event||26th International Workshop on Principles of Diagnosis, DX 2015 - co-located with 9th IFAC Symposium on Fault Detection, Supervision and Safety for Technical Processes, Safeprocess 2015 - Paris, France|
Duration: 31 Aug 2015 → 3 Sep 2015