Giter VIP home page Giter VIP logo

icsme20-artifact's Introduction

GenSlice

GenSlice is a generalized semantic history slicing framework which puts several history slicing techniques (including CSlicer and Definer) developed over the years under a uniform lens and provides a systematic approach for comparisons and analyses.

Quick Start

1. Build Docker image

docker build -f Dockerfile -t genslice .

2. Run demo case

We demonstrate the history slicing operator sequences on one example: CSV-159.
Time estimation: ~20 mins on an Intel Core i7-8650U CPU @ 1.90GHz ร— 8 machine with 16 GB RAM.

docker run --name genslice-demo -i -t genslice --rm -v `pwd`:/Scratch
./run_demo.sh

This script executes all the seven optimal sequences (SD, SCD, CSD, DSD, CDSD, DSCD, CDSCD) and stores their semantic history slicing results in corresponding log files:

  • file-level/output/split-definer/CSV-159.log
  • file-level/output/split-cslicer-definer/CSV-159.log
  • file-level/output/cslicer-split-definer/CSV-159.log
  • file-level/output/definer-split-definer/CSV-159.log
  • file-level/output/cslicer-definer-split-definer/CSV-159.log
  • file-level/output/definer-split-cslicer-definer/CSV-159.log
  • file-level/output/cslicer-definer-split-cslicer-definer/CSV-159.log

The end of each log file looks like the following:

[OUTPUT] |H*| = 2  
[STATS] ************** Stats **************  
[STATS] history.preprocess : 0.732  
[STATS] insert.edge : 0.0  
[STATS] total : 19.508  
[STATS] total.time : 20.59  
[STATS] test.run : 3.52  
[STATS] extract.time : 0.0  
[STATS] call.graphs : 0.212  
[STATS] hunk.fail : 2  
[STATS] pre.comp.fail : 14  
[STATS] test : 5  
[STATS] hstar.length : 2  
[STATS] iteration : 6  
[STATS] ***********************************  
[Split Exec Time]: 82.60289740562439  
[CSlicer Exec Time]: 29.742250204086304  
[Definer Exec Time]: 31.010393381118774  
[Total Exec Time]: 143.35554242134094  
Total Changed Lines: 81

The last line shows the size of the final history slice, measured in number of changed (+/-) lines. For CSV-159, you will see that all the seven log files have the same number: 81.

The result means that in this case, all seven optimal sequences yield the same result, which is 1-minimal semantic history slice.

3. Reproduce full experiment results for all cases presented in the paper

Run all the sequences (RQ2 and RQ3) on all the 28 functionalities used in our experiment.
Time estimation: ~40.5 hours on an Intel Core i7-8650U CPU @ 1.90GHz ร— 8 machine with 16 GB RAM.

docker run --name genslice-all -i -t genslice --rm -v `pwd`:/Scratch
./run_all.sh

This script executes 13 sequences (C, D, SC, CD, DSC, CDSC, SD, SCD, CSD, DSD, CDSD, DSCD, CDSCD) on all 28 functionalities and stores their semantic history slicing results in corresponding log files. Each log file has the same structure as the above example.

Some extra results are available on GenSlice website (https://sites.google.com/view/genslice).

If you would like to use GenSlice in your research, please cite our ICSME'20 paper.

@inproceedings{Zhu2020GGS,
  author = {Zhu, Chenguang and Li, Yi and Rubin, Julia and Chechik, Marsha},
  booktitle = {Proceedings of the 36th IEEE International Conference on Software Maintenance and Evolution (ICSME)},
  month = sep,
  title = {{GenSlice}: Generalized Semantic History Slicing},
  year = {2020}
}

icsme20-artifact's People

Contributors

chenguang-zhu avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

nashid

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.