SongXueZhi / RegMiner

A Mining Approach towards Automating Regression Dataset Construction from Code Evolution History
https://regminer.github.io
Apache License 2.0
34 stars 5 forks source link

Enhance compile fix way before or after test migrate, and search test case,or other test way #69

Open SongXueZhi opened 10 months ago

SongXueZhi commented 10 months ago

(1) We can divide the time when compilation errors occur into before and after test migration, and specify corresponding strategies for this. Before testing the migration: 1b. Search for JDK version,(now we have a version) 2b. Repair the pom or gradle file that cannot access the snapshot, 3b. Invalid dependencies, find a suitable version to replace. 5b. compiler 1.6 modify1.7 4b. Others The objects to be repaired for compilation failure before migration include BFC. If successful, the partial strategy should be propagated to BFC-1.

After testing the migration: 1a. Detect refactoring and revert the refactoring 2a. Check whether the pom contains interface upgrades. Start with a simple junit and use rules to downgrade the api under test. 3a. If the JDK versions in BFC and BFC-1 are inconsistent, some codes may need to be converted, such as changing "lamda iteration" in jdk8 to "for loop" in 1.7, refer to the rules in the paper. 4a. Others

SongXueZhi commented 10 months ago

(2)For BFC who couldn't find the test, but had huge suspicions. We need to adjust the testing method:

  1. If the modified test method is private, we should look for a public one.
  2. Directly test all tests of the entire project and retrieve BFC PASS & BFC-1 FAIL tests in the test report.
  3. Search for the test in the commit after the BFC.
  4. The code snippets existing in the bug report are converted into tests.
  5. For multi-module testing, detect the test execution command of the module
SongXueZhi commented 10 months ago

I would likes to try (1)1b and (1)1a. (2)3 and(2)2 @DoughIt