This is the replication package for the ESE paper "Empirically Evaluating Flaky Test Detection Techniques Combining Test Case Rerunning and Machine Learning Models". Before proceeding, we recommend that you read the documentation for pytest-CANNIER and CANNIER-Framework.
cannier-framework/
Submodule of the CANNIER-Framework repository.Dockerfile
Dockerfile to produce thecannier-experiment
Docker image.LICENSE
MIT license.output.zip
Contains all the data, results, and figures from the paper. See the CANNIER-Framework repository for more details on its contents.pytest-cannier/
Submodule of the pytest-CANNIER repository.README.rst
This file.requirements.txt
Dependencies for a virtual environment to run the experiment.schema.sql
Schema for the database used by pytest-CANNIER to store results.subjects/
A directory with subdirectories for each subject project. These contain the dependencies of the project in a file namedrequirements.txt
.subjects.json
A JSON file with details about each project.
You must install docker
and virtualenv
before running the experiment. We have only performed the experiment on Ubuntu 20.04 and Python 3.8. We cannot guarantee correct results with other environments.
Create a virtual environment with virtualenv --python={EXECUTABLE} venv
where EXECUTABLE is the path to a Python executable (e.g. /usr/bin/python3.8
). Then, install CANNIER-Framework and the dependencies with venv/bin/pip install ./canner-framework -r requirements.txt
.
To perform the experiment from start to finish, issue these commands in order:
docker build -t cannier-experiment .
venv/bin/cannier run churn baseline shuffle
venv/bin/cannier run features victim
venv/bin/cannier collate
venv/bin/cannier shap
venv/bin/cannier preds config
venv/bin/cannier preds best
venv/bin/cannier preds features
venv/bin/cannier points
venv/bin/cannier figures