ProFL: a fault localization framework for Prolog

ProFL: a fault localization framework for Prolog
复制标题

ProFL:Prolog 的故障定位框架

DOI:
10.1145/3395363.3404367
复制
发表时间:
2020
期刊:
The 29th ACM SIGSOFT International Symposium on Software Testing and Analysis
影响因子:
--
通讯作者:
Sullivan, Allison K.
Sullivan, Allison K.
中科院分区:
--
文献类型:
--
作者:
Thompson, George;Sullivan, Allison K.

文献摘要

参考文献

被引文献

相似文献

Prolog是一种声明式的一阶逻辑,已在各种领域中用于实现高度基于规则的系统。然而,正确地编写Prolog程序是具有挑战性的。幸运的是,SWI-Prolog环境支持单元测试框架plunit,它使开发人员能够系统地检查正确性。然而,知道一个程序是错误的只是第一步。然后,开发人员需要修复程序,这意味着开发人员需要确定程序的哪一部分是错误的。ProFL是一个故障定位工具,它使基于命令的故障定位技术适应Prolog的声明式环境。ProFL将一个有错误的Prolog程序和一个plunit测试套件作为输入。然后,ProFL执行故障定位并向用户返回可疑程序子句的列表。我们的工具集包括两种不同的技术:ProFLs,一种基于光谱的技术,和ProFLm,一种基于突变的技术。本文描述了我们的ProFL的Python实现,这是一个命令行工具,在GitHub上作为开源项目发布(https://github.com/geoorge1d127/ProFL)。我们的实验结果表明,ProFL是准确定位故障在我们的基准程序。
Prolog is a declarative, first-order logic that has been used in a variety of domains to implement heavily rules-based systems. However, it is challenging to write a Prolog program correctly. Fortunately, the SWI-Prolog environment supports a unit testing framework, plunit, which enables developers to systematically check for correctness. However, knowing a program is faulty is just the first step. The developer then needs to fix the program which means the developer needs to determine what part of the program is faulty. ProFL is a fault localization tool that adapts imperative-based fault localization techniques to Prolog’s declarative environment. ProFL takes as input a faulty Prolog program and a plunit test suite. Then, ProFL performs fault localization and returns a list of suspicious program clauses to the user. Our toolset encompasses two different techniques: ProFLs, a spectrum-based technique, and ProFLm, a mutation-based technique. This paper describes our Python implementation of ProFL, which is a command-line tool, released as an open-source project on GitHub (https://github.com/geoorge1d127/ProFL). Our experimental results show ProFL is accurate at localizing faults in our benchmark programs.
Haskell 2010 语言报告
DOI: --
发表时间: 2010
期刊:
影响因子: --
作者:
S. Marlow
通讯作者: S. Marlow
使用突变测试测量 Prolog 程序的覆盖率
DOI: --
发表时间: 2018
期刊: Workshop on Functional and Constraint Logic Programming
影响因子: --
作者:
Alexandros Efremidis;Joshua Schmidt;Sebastian Krings;Philipp Körner
通讯作者: Philipp Körner