A fault localization tool for Python
Project description
FauxPy
FauxPy (pronounced: "foh pie") is an automated fault localization tool for Python programs. This repository includes FauxPy's source code and instructions to install and use the tool.
- For comprehensive documentation, visit FauxPy documentation.
- You can also participate in our Discussions section for questions, feedback, and more.
- If you encounter any issues, feel free to open an issue on our GitHub repository.
Features
FauxPy supports seven classic fault-localization techniques in four families:
- SBFL (spectrum-based) techniques Tarantula, Ochiai, and DStar.
- MBFL (mutation-based) techniques Metallaxis and Muse.
- PS (predicate switching) fault localization.
- ST (stack-trace) fault localization.
It supports fault localization at the level of statements (statement-level granularity) and at the level of functions (function-level granularity).
FauxPy is based on dynamic analysis and can use tests written in the format of Pytest, Unittest, and Hypothesis.
Installation
FauxPy is available on
PyPI,
so you can install it using pip
:
pip install fauxpy
To install the latest (unreleased) version, use the following command:
pip install git+https://github.com/atom-sw/fauxpy
We have mainly tested FauxPy with Python 3.6, 3.7, and 3.8, but it should also work on later Python versions.
Getting Started
Check out this short demo video of FauxPy in action (~16 minutes).
The directory
examples/triangle_area
includes a tutorial example of
using FauxPy.
Follow the instructions in the
README.md
.
Here is a demo video
of part of this
example (~ 5 minutes).
Citing FauxPy and References
Technical Report
The technical report FauxPy: A Fault Localization Tool for Python presents FauxPy in detail, including its implementation, architecture, and instructions on how to use it. You can cite this technical report as follows:
@misc{PythonFL-FauxPy-Tool,
title={{FauxPy}: A Fault Localization Tool for {P}ython},
author={Mohammad Rezaalipour and Carlo A. Furia},
year={2024},
eprint={2404.18596},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2404.18596}
}
Empirical Study
The paper An Empirical Study of Fault Localization in Python Programs presents an empirical study where we applied FauxPy to 135 bugs across 13 real-world Python programs from the curated collection BugsInPy. This paper is published in the Empirical Software Engineering (EMSE) journal. You can cite this empirical work as follows:
@article{Rezaalipour:2024,
title={An empirical study of fault localization in {P}ython programs},
author={Rezaalipour, Mohammad and Furia, Carlo A.},
journal={Empirical Software Engineering},
volume={29},
number={4},
pages={92},
year={2024},
publisher={Springer}
}
Mirrors
This repository is a public mirror of (part of) FauxPy's private development repository. There are two public mirrors, whose content is identical:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fauxpy-0.2.0.tar.gz
.
File metadata
- Download URL: fauxpy-0.2.0.tar.gz
- Upload date:
- Size: 60.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc0090758baa91403c6c0819a6c321d8a1b90db2b8b9c49431b84e8f3725d7f5 |
|
MD5 | 6726eaf7db5b8939e3b5b8a097060e84 |
|
BLAKE2b-256 | a4caa1b46c13535dc4ae72f3f878a61a30822da8418a6ded3f65896bbea4ebcd |
File details
Details for the file fauxpy-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: fauxpy-0.2.0-py3-none-any.whl
- Upload date:
- Size: 94.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3204c56e23e9f742429cd620344122851be37d16ad3530c74bd10bc23dbe6af5 |
|
MD5 | e33d273a509ff28b05505efbfc9f4f5b |
|
BLAKE2b-256 | 1e5410b3cafd54d06c83b4d7d93c9c206a08c9c4a1ee4e3a3644bd90999ccc1c |