Skip to content

Unsupervised bug localization technique using genetic programming achieving real-time debugging with millisecond runtime. Localizes 56% of bugs in top-5 ranked suspicious statements from 704 real-world projects, surpassing state-of-the-art methods.

Notifications You must be signed in to change notification settings

Ashish-Ramrakhiani/BugLocalization_BugSleuth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dependencies

  1. Install Java version 17 and set JAVA_HOME to the path of Java-17 installation.

How to run BugSleuth ?

There are two ways to run BugSleuth: using the executable jar file on command line or importing the project in any IDE (Eclipse, IntelliJ etc.) and executing it. To run BugSleuth using an IDE follow the steps below.

  1. Make sure you have Java 17 installed and JAVA_HOME points to the Java-17 installation
  2. Open BugSleuth (directory named "source") in any IDE (eg. IntelliJ, Eclipse ) and specify the path to this directory as the root_directory in the bugsleuth.settings file. (Eg. root_directoy=/home/abc/source )
  3. After importing the project, make sure you have configured the project to run in the Java 17 environment
  4. Run Main.java with the following command line arguments
  5. BugSleuth accepts the following command line arguments:
    • <Defects4J project>-<bugid> (e.g., math-41 (to run BugSleuth on a particular Defects4J defect) or all (to run BugSleuth on 704 Defects4J defects))
    • NumOfFLTechniques (the number of FL techniques' whose results are to be combined. This value should be at least 2) Based on the value specified, the following arguments must specify the path to the files that store the FL results. For example, when combining the results of SBFL and Blues FL techniques, the next two arguments will be:
    • <path-to-SBFL_results_file>
    • <path-to-Blues_results_file>

How to experiment using different configuration parameters ?

  1. Follow steps 1,2 and 3 desrcibed above in the section '"How to run BugSleuth?"
  2. Use the main function defined in Main.java to launch BugSleuth by providing the command line arguments described in 5 above.
  3. To experiment with different configuration update the parameters in file Configuration.java.
  4. Note:To run BugSleuth on another set of defects (eg 59 defects) specity the path to one of the .txt files containing list of defects (Eg. 59defects.txt in the dataset folder) in the defectsFilePath variable inside setParamaters function in Configuration.java

How to run BugSleuth using a jar file ?

  1. The jar file called "BugSleuth.jar" is provided in the root directory
  2. specify the path to the directory containing the jar file as the root_directory in the bugsleuth.settings file. (Eg. root_directoy=/home/abc/source )
  3. Run the jar file using the following command:
java -jar BugSleuth.jar <Defects4J project>-<bugid> 2 <path-to-SBFL_results_file> <path-to-Blues_results_file>

Example 1 (for all 704 defects of Defects4J)

java -jar BugSleuth.jar all 2 /home/xyz/SBFL_results /home/xyz/blues_results

Example 2: (for a particular defect)

java -jar BugSleuth.jar math-41 2 /home/xyz/SBFL_results/math/41/stmt-susps_top100.txt /home/xyz/blues_results/math/41/stmt-susps_top100.txt
  1. Results will be saved in data/BugSleuth/ directory

About

Unsupervised bug localization technique using genetic programming achieving real-time debugging with millisecond runtime. Localizes 56% of bugs in top-5 ranked suspicious statements from 704 real-world projects, surpassing state-of-the-art methods.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •