Skip to content

FaKleiser/stardust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STARDUST

STARDUST is a framework for spectrum-based fault localization (SBFL). The framework was used to conduct experiments with SBFL during my bachelor thesis.

Installation

STARDUST uses maven as its build tool. The pom.xml file contains all dependencies you need in order to run the framework.

Theoretical Background

Spectrum-based fault localization (SBFL) can be used to locate faults in a very generic system model. In general, all systems that consist of multiple components and provide the ability to track the involvement of single components in passing or failing executions of the system, are capable of leveraging SBFL to diagnose a faulty component in case of an error. The input for SBFL is a set of executions with each execution being either classified as passing execution, i.e. no error occurred, or as a failing execution, i.e. an error occurred.

For each execution SBFL needs to know which components are involved or not involved in the specific execution. A single execution with its involvement data is generally referred to as a passing/failing trace and a set of traces is used as input for SBFL.

Framework Architecture

Brief description of the relevant Java namespaces:

  • traces: Contains classes to represent the program traces in an object-oriented manner.
  • provider: Loads actual traces from some storage. Currently, only Cobertura trace files are supported.
  • localizer: Implementation of different strategies to localize the faulty component.
  • evaluation: A set of classes that were used to run experiments on the iBugs bug data set.

Usage

A simplified usage of the framework looks as follows:

ISpectraProvider<String> provider = new CoberturaProvider();
IFaultLocalizer<String> tarantula = new Tarantula();
Ranking<String> ranking = tarantula.localize(provider.loadSpectra());
ranking.save("resulting-ranking.txt");

Contributing

STARDUST is an open source project released under the MIT license. If you'd like to contribute, please submit a pull request :-)

Releases

No releases published

Packages

No packages published

Languages