This plugin allows you to automatically fix your program based on the test suite. The fix is done by either changing an if-condition or by adding a pre-condition (adding an if before a statement). The fix search is driven by the failing test case trigerring the bug, and the other successful test cases.How to use it?
As soon as you have a failing test case, right-click on the test class, and select "Nopol", and then "Fix Me" (the default configuration should work). The other configuration options are explained in the Readme.
To getting started, you can generate a toy module that contains a failing test case (Right Click >> Nopol >> Preferences >> generate toy project).How it works?
Nopol performs static and dynamic analysis of the failling and passing test cases. When Nopol succeeds to find a patch, all tests are passing / green.Authors
The librepair project is a project of the SPIRALS research group at Inria Lille (a French research institute).
Found a bug? Want to contribute? Any question? Do not hesitate to open issues or pull-requests on the github repositories.
TODOHow to perform automatic repair on a toy project?
In order to try the plugin, you can create a new project, and then right click in the project view window (on the left), and select "Generate toy-project". This will create a new module (and let existing sources unchanged), named toy-project which is contains:
First, compile sources, by running the test: Open NopolExampleTest in Intellij and right click run NopolExampleTest Then you can right click on the test, or the source (which make longer to fix) and click on Nopol. In the new window, you can click on the button "Fix me", in order to run nopol in the default mod. You can find more information about the customization. How to perform automatic repair on a bug of your project?
Such as for the toy-project, right click on a class, click on Nopol and select Fix me. But remember that Nopol need a failing test case, and if you launch nopol from it, Nopol will compute faster.Broadcast email You can join the broadcast email : email@example.com in order to be updated or ask questions.