Skip to content

A Mining Approach towards Automating Regression Dataset Construction from Code Evolution History

License

Notifications You must be signed in to change notification settings

code-philia/regminer-plus-plus

 
 

Repository files navigation

RegMiner

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:

RegMiner Data Platform

Regressions4J

We also provide UI-free tools to help users replay test results for each regression bug,get that support in the regs4J project.

Contribute to miner

**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:

  1. Create a workspace for Miner, mkdir miner_space

  2. 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
  1. Provide metadata for miner on projects,
  cd miner_space
  git clone https://github.com/uniVocity/univocity-parsers.git meta
  1. 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

Contribute regressions

  1. Download our latest realase, or install miner by self.

  2. 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.

  3. 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
  1. Execute "Regminer/miner/resources/sql/regression.sql" file in mysql to import data.

  2. Configure the JDk11 path for the execution file "run.sh" E.g.

    /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar ./miner.jar

Paper

  1. 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)]

  2. Xuezhi Song, Yun Lin*, Yijian Wu, Yifan Zhang, Xin Peng, Jin Song Dong, and Hong Mei. RegMiner: Mining Replicable Regression Dataset from Code Repositories

About

A Mining Approach towards Automating Regression Dataset Construction from Code Evolution History

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 46.2%
  • TypeScript 43.0%
  • JavaScript 3.8%
  • Jupyter Notebook 3.3%
  • Less 1.9%
  • EJS 0.8%
  • Other 1.0%