A Mining Approach towards Automating Regression Dataset Construction from Code Evolution History.
Now regminer has an interactive visualization platform, you can use our platform to observe the data mining process and the mined regressions. The use of the platform is demonstrated as follows:
We also provide UI-free tools to help users replay test results for each regression bug,get that support in the regs4J project.
**Env requirement: **
Distinguishing between miner and mined projects, Miner relies on JDK11 and we recommend developing in Ubuntu.
Regression test:
Regression testing needs to be done before submitting the code. Steps are as follow:
-
Create a workspace for Miner,
mkdir miner_space
-
Create a directory of projects to be mined(we used univocity-parsers as the test data in the regression test),
cd miner_space
mkdir univocity-parsers
- Provide metadata for miner on projects,
cd miner_space
git clone https://github.com/uniVocity/univocity-parsers.git meta
- Configure the workspace of miner and project names for the projects to be mined, and turn off the use of SQL functionality,
# Configuration file path : xxx/Regminer/miner/env.properties
project_name =univocity-parsers
root_dir =/home/xxx/miner_space/
# Turn off sql function
sql_enable =0
Note that! Miner does not reprocess already processed commits, so regression testing requires removing progress files generated in the mined project directory and turning off SQL functionality.
rm -f xxxx/miner_space/univocity-parsers/progress.details
-
Download our latest realase, or install miner by self.
-
In order to avoid data duplication, we will update the latest batch database files continuously, load our database into local mysql, and set
SQL_enable =1
. -
Next add the configuration for local mysql
# Configuration file path : xxx/Regminer/miner/env.properties
project_name =univocity-parsers
root_dir =/home/xxx/miner_space/
################mysql config######################
sql_enable =1
sql_url =jdbc:mysql://x.x.x.x:3306/regression?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF8
username =root
passwd =xxxx
-
Execute "Regminer/miner/resources/sql/regression.sql" file in mysql to import data.
-
Configure the JDk11 path for the execution file "run.sh" E.g.
/usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar ./miner.jar
-
Xuezhi Song, Yun Lin*, Siang Hwee Ng, Yijian Wu, Xin Peng, Jin Song Dong and Hong Mei. RegMiner: Towards Constructing a Large Regression Dataset from Code Evolution History [⚡ CCF Prototype Competition Award (1st Prize)]
-
Xuezhi Song, Yun Lin*, Yijian Wu, Yifan Zhang, Xin Peng, Jin Song Dong, and Hong Mei. RegMiner: Mining Replicable Regression Dataset from Code Repositories