Skip to content
/ astor Public
forked from SpoonLabs/astor

Inria & University of Lille's evolutionary automatic software repair tool for Java

License

Notifications You must be signed in to change notification settings

clegoues/astor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

If you use Astor, please cite this technical report:

Matias Martinez, Martin Monperrus. "ASTOR: Evolutionary Automatic Software Repair for Java". Technical Report hal-01075976, Inria; 2014.

@techreport{hal-01075976,
 TITLE = {{ASTOR: Evolutionary Automatic Software Repair for Java}},
 AUTHOR = {Martinez, Matias and Monperrus, Martin},
 URL = {https://hal.archives-ouvertes.fr/hal-01075976},
 INSTITUTION = {{Inria}},
 YEAR = {2014}
}

Getting started

To compile using maven: mvn install

Note that this project requires the use of Java 1.7; it does not build (on OS X 10.10.3) with Java 1.8.

See configuration file "configuration.properties" for configuring, for instance, the output folder location or jvm dir. This is a required step; look for jvm4testexecution and be sure it is accurate for your environment.

Evolutionary

A) If condition repair: Astor implements 3 state of the art automatic program repair. The class to run them are: fr.inria.main.evolution.MainIFjGenProg fr.inria.main.evolution.MainIFMutation fr.inria.main.evolution.MainIFPar

The option -help shows the usage of them.

B) jGenProg: We provide an implementation of GenProg repair algorithm. The class to run it is: fr.inria.main.evolution.MainjGenProg

Additionally, the distribution contains a version of Apache commons Math with a real defect (reported in issue 280 https://issues.apache.org/jira/browse/MATH-280). To run it using GenProg, type: java fr.inria.main.evolution.MainjGenProg -bug280

This implementations applies the GenProg's operators over 1) statements in a code block, 2) conditions in if and boucle. After the execution, Astor writes in the output folder (property 'workingDirectory'in the mentioned file), a folder with all the variants that fulfill the goals i.e., repair the bugs. Each variant folder contains the files that Astor have analyzed (and eventually modified). Additionally, it contains a file called 'Patch.xml' that summarized all changes done in the variant.

Contacts

[email protected] [email protected]

About

Inria & University of Lille's evolutionary automatic software repair tool for Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.1%
  • Other 0.9%