rjust / defects4j

A Database of Real Faults and an Experimental Infrastructure to Enable Controlled Experiments in Software Engineering Research
MIT License
717 stars 299 forks source link

Integrating my Fined-Evosuite with Defects4J #547

Closed runboo-fly closed 2 months ago

runboo-fly commented 9 months ago

Hello Defects4J team,

I hope this message finds you well. I have made some enhancements to the EvoSuite tool, which I am now referring to as "fined-evosuite". These enhancements aim to improve unit test coverage. Now, I am interested in integrating fined-evosuite with Defects4J.

I have two possible approaches in mind and would appreciate your guidance on which one is more appropriate, or if there's another recommended way:

Using fined-evosuite with Defects4J test command: Modify the Defects4J test command to accept a parameter (-s) that points to the compressed test suite archive generated by fined-evosuite. Integrating fined-evosuite into the Defects4J project: Modify Defects4J's scripts and configuration files to make it compatible with fined-evosuite directly. I would like to discuss the feasibility of these approaches and seek your advice on the best way to proceed. Additionally, if there are specific modifications or configurations needed in the Defects4J scripts, could you please provide some guidance on how to implement them?

rjust commented 8 months ago

Hi @runboo-fly,

Depending on how your refined version of EvoSuite needs to be invoked, you could:

  1. Replace the default version of EvoSuite with your version in init.sh.
  2. Add your version of EvoSuite as a new test generator: add a tool wrapper here and make sure all dependencies are downloaded by the init.sh script.

The above two solutions allow you to use Defects4J commands to generate tests -- using your version of EvoSuite as opposed to the default version.

If you only want to execute a test suite generated by your version of EvoSuite, there is no need to change anything: commands such as defects4j test accept external test suites (-s argument).

Hope this helps.

Best, René