Fault localization is one of the most time-consuming and error-prone parts of software debugging. There are several tools for helping developers in the fault localization process, however, they mostly target programs written in Java and C/C++ programming languages. While these tools are splendid on their own, we must not look over the fact that Python is a popular programming language, and still there are a lack of easy-to-use and handy fault localization tools for Python developers. In this paper, we present a tool called "CharmFL" for software fault localization as a plug-in for PyCharm IDE. The tool employs Spectrum-based fault localization (SBFL) to help Python developers automatically analyze their programs and generate useful data at run-time to be used, then to produce a ranked list of potentially faulty program elements (i.e., statements, functions, and classes). Thus, our proposed tool supports different code coverage types with the possibility to investigate these types in a hierarchical approach. The applicability of our tool has been presented by using a set of experimental use cases. The results show that our tool could help developers to efficiently find the locations of different types of faults in their programs.
翻译:错误本地化是软件调试中最费时、最易出错的部分之一。 在错误本地化过程中, 有多种工具可以帮助开发者帮助开发者, 但是, 他们主要针对以 Java 和 C/ C+++ 编程语言编写的程序。 虽然这些工具本身非常出色, 但我们不能看 Python 是流行的编程语言, 而且对于 Python 开发者来说, 仍然缺乏容易使用和手动故障的本地化工具 。 因此, 在本文中, 我们提出了一个名为“ CharmFL” 的工具, 用于软件本地化, 作为PyCharm IDE 的插件。 该工具使用基于 Spectrum 本地化( SBFL) 的本地化( SBFL) 来帮助 Python 开发者自动分析程序, 并在运行时生成有用的数据, 然后生成一个可能出错误的程序元素( 即声明、 函数和类) 的排名列表列表 。 因此, 我们提议的工具支持不同的代码覆盖类型, 并有可能用等级方法来调查这些类型。 我们的工具的可应用性工具 。 通过使用一系列的错误案例来显示工具的应用 。 。