Using machine learning to support debugging with Tarantula

Lionel C. Briand, Yvan Labiche, Xuetao Liu

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Using a specific machine learning technique, this paper proposes a way to identify suspicious statements during debugging. The technique is based on principles similar to Tarantula but addresses its main flaw: its difficulty to deal with the presence of multiple faults as it assumes that failing test cases execute the same fault(s). The improvement we present in this paper results from the use of C4.5 decision trees to identify various failure conditions based on information regarding the test cases' inputs and outputs. Failing test cases executing under similar conditions are then assumed to fail due to the same fault(s). Statements are then considered suspicious if they are covered by a large proportion of failing test cases that execute under similar conditions. We report on a case study that demonstrates improvement over the original Tarantula technique in terms of statement ranking. Another contribution of this paper is to show that failure conditions as modeled by a C4.5 decision tree accurately predict failures and can therefore be used as well to help debugging.

Original languageEnglish
Title of host publicationProceedings - 18th IEEE International Symposium on Software Reliability Engineering, ISSRE 2007
Pages137-146
Number of pages10
DOIs
Publication statusPublished - 2007
Externally publishedYes
Event18th IEEE International Symposium on Software Reliability Engineering, ISSRE 2007 - Trollhattan, Sweden
Duration: 5 Nov 20079 Nov 2007

Publication series

NameProceedings - International Symposium on Software Reliability Engineering, ISSRE
ISSN (Print)1071-9458

Conference

Conference18th IEEE International Symposium on Software Reliability Engineering, ISSRE 2007
Country/TerritorySweden
CityTrollhattan
Period5/11/079/11/07

Fingerprint

Dive into the research topics of 'Using machine learning to support debugging with Tarantula'. Together they form a unique fingerprint.

Cite this