DOI: 10.5281/zenodo.2267946
title: Replication Kit: "Are Unit and Integration Test Definitions Still Valid for Modern Java Projects? An Empirical Study on Open-Source Projects"

description: <strong>Replication Kit for the Paper "Are Unit and Integration Test Definitions Still Valid for Modern Java Projects? An Empirical Study on Open-Source Projects"</strong><br>
This additional material shall provide other researchers with the ability to replicate our results. Furthermore, we want to facilitate further insights that might be generated based on our data sets.

<strong>Structure</strong><br>
The structure of the replication kit is as follows:


	<strong>additional_visualizations</strong>: contains additional visualizations (Venn-Diagrams) for each projects for each of the data sets that we used
	<strong>data_analysis</strong>: contains python scripts that we used to analyze our raw data
	<strong>data_collection_tools</strong>: contains all source code used for the data collection, including the used versions of the COMFORT framework, the BugFixClassifier, and the used tools of the SmartSHARK environment;
	<strong>mongodb_no_authors</strong>: Archived dump of our MongoDB that we created by executing our data collection tools. The "comfort" database can be restored via the mongorestore command.


<br>
<strong>Additional Visualizations</strong><br>
We provide two additional visualizations for each project:<br>
1) &lt;project_name&gt;\_disj\_ieee\_venn (visualizations for the DISJ data set)<br>
2) &lt;project_name&gt;\_all\_ieee\_venn (visualizations for the ALL data set)

For each of these data sets there exist one visualization for each project that shows four Venn-Diagrams for each of the different defect types. These Venn-Diagrams show the number of defects that were detected by either unit, or integration tests (or both).

Furthermore, we added boxplots for each of the data sets (i.e., ALL and DISJ) showing the scores of unit and integration tests for each defect type.

<br>
<strong>Analysis scripts</strong><br>
Requirements:<br>
- python3.5<br>
- tabulate<br>
- scipy<br>
- seaborn<br>
- mongoengine<br>
- pycoshark<br>
- pandas<br>
- matplotlib

Both python files contain all code for the statistical analysis we performed.

<strong>Data Collection Tools</strong><br>
We provide all data collection tools that we have implemented and used throughout our paper:


	<strong>BugFixClassifier</strong>: Used to classify our defects.
	<strong>comfort-core</strong>: Core of the comfort framework. Used to classify our tests into unit and integration tests and calculate different metrics for  these tests.
	<strong>comfort-jacoco-listner</strong>: Used to intercept the coverage collection process as we were executing the tests of our case study projects.
	<strong>jSHARK</strong>: Library that contains models for the used ORM mapper that is used inside the SmartSHARK environment (for Java).<strong> </strong>
	<strong>pycoSHARK</strong>: Library that contains models for the used ORM mapper that is used inside the SmartSHARK environment (for Python).
	<strong>tools-changedistiller</strong>: Version of ChangeDistiller that we used within our comfort-core framework.
	<strong>vcsSHARK</strong>: Used to collect data from the VCSs of the projects.