BugsInPy: A Database of Existing Bugs in Python Programs to Enable Controlled Testing and Debugging Studies. The objective of this work is to support reproducible research on real-world Python projects.
- Clone BugsInPy:
git clone https://github.com/soarsmu/BugsInPy
 - Add BugsInPy executables path:
export PATH=$PATH:<bugsinpy_path>/framework/bin
 
Clone the repository, build the Docker image, and start a container:
docker build -t bugsinpy .
docker run -dt \
    -v ./framework:/home/bugsinpy/framework \
    -v ./projects:/home/bugsinpy/projects \
    -v ./workspace:/home/workspace
    --name {your_container_name} bugsinpy
docker exec -it {your_container_name} bashReplace {your_container_name} with your preferred container name.
When working inside the container, if you checkout source code to /home/workspace/, it will be accessible on your host machine at ./workspace due to the mounted volume. For example:
bugsinpy-checkout -p youtube-dl -v 0 -i 2 -w /home/workspaceThis command checks out the specified bug to /home/workspace in the container, which corresponds to ./workspace on your host.
| Command | Description | 
|---|---|
| info | Get the information of a specific project or a specific bug | 
| checkout | Checkout buggy or fixed version project from dataset | 
| compile | Compile sources from project that have been checkout | 
| test | Run test case that relevant with bug, single-test case from input user, or all test cases from project | 
| coverage | Run code coverage analysis from test case that relevant with bug, single-test case from input user, or all test cases | 
| mutation | Run mutation analysis from input user or test case that relevant with bug | 
| fuzz | Run a test input generation from specific bug | 
- Help usage from checkout command:
bugsinpy-checkout --help
 - Checkout a buggy source code version (youtube-dl, bug 2, buggy version):
bugsinpy-checkout -p youtube-dl -v 0 -i 2 -w /temp/projects
 - Compile sources and tests, and run tests from current directory:
bugsinpy-compilebugsinpy-test