This paper presents FauxPy, a fault localization tool for Python programs. FauxPy supports seven well-known fault localization techniques in four families: spectrum-based, mutation-based, predicate switching, and stack trace fault localization. It is implemented as plugin of the popular Pytest testing framework, but also works with tests written for Unittest and Hypothesis (two other popular testing frameworks). The paper showcases how to use FauxPy on two illustrative examples, and then discusses its main features and capabilities from a user's perspective. To demonstrate that FauxPy is applicable to analyze Python projects of realistic size, the paper also summarizes the results of an extensive experimental evaluation that applied FauxPy to 135 real-world bugs from the BugsInPy curated collection. To our knowledge, FauxPy is the first open-source fault localization tool for Python that supports multiple fault localization families.
翻译:本文介绍FauxPy,一个面向Python程序的故障定位工具。该工具支持四类共七种主流故障定位技术,包括:基于频谱的、基于变异的、谓词切换以及堆栈跟踪故障定位。FauxPy作为流行测试框架Pytest的插件实现,同时兼容Unittest和Hypothesis(另外两种主流测试框架)编写的测试用例。本文通过两个示例演示了FauxPy的使用方法,并从用户视角讨论了其主要特性和功能。为验证FauxPy适用于分析实际规模的Python项目,本文还总结了在BugsInPy精选数据集的135个真实缺陷上进行的广泛实验评估结果。据我们所知,FauxPy是首个支持多类故障定位技术的开源Python故障定位工具。