Replication Package for the paper "AI-based Fault-proneness Metrics for Source Code Changes"
收藏资源简介:
This is the replication package for the paper "<em>AI-based Fault-proneness Metrics for Source Code Changes</em>", submitted at the <em>IWSM-Mensura '23 </em>conference. The archive is a <em>Docker </em>image file with a fully setup and working environment to re-execute the experiments involved in the manuscript. We pre-loaded all libraries and codeBERT models to ease the replication process and avoid compatibility issues, as the environment cannot be easily managed using <em>Dockerfile</em>s. To run the image, a <em>Docker</em> installation is needed. Once downloaded, from the command line type: <pre><code>docker load -i </path/to/downloaded/ai-proneness-replication.tar></code></pre> After the loading process, you can run the container by typing: <pre><code>docker run -it mensura/ai-proneness-replication:1.0</code></pre> All the source code and the dataset to re-execute the experiment is located into the <em>/Replication</em> folder. The folder contains the results of our experimentation in CSV and MS Excel format, along with the following subdirectories: <em>dataset</em>: a replication of the used dataset. The file <em>dataset.csv</em> gives information on all the entries, while the <em>code </em>folder contains a subdirectory for each sample, named by its id. In the folder, the file <em>old.txt </em>and<em> </em><em>new.txt </em>refers to the older and newer version of the method, respectively; <em>gitdiff.txt </em>stores the raw <em>git-diff</em> command output, while <em>diff.html</em> stores a more human-readable version of the differences. <em>ai-fault-proneness-tk-replication</em>: the Java code used to apply Tree Kernel techniques on the dataset (we used JDK-11, embedded within the container). To build and execute the package, refer to the file <em>README.md</em> in the folder. For convenience, we also provided an executable JAR file <em>ai-fault-proneness-tk-replication-1.0-jar-with-dependencies.jar </em>that can be run directly and saves the output in a CSV file in the <em>results</em> folder of the replication package. <em>code-embeddings-and-analysis</em>: python scripts to execute the <em>codeBERT</em>-based approaches and to extract the <em>diff</em> statistics. To execute all the steps, a convenience shell script <em>execute.sh</em> has been pre-loaded and can be executed to automatize all the process.



