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.
Wed 22 JulDisplayed time zone: Tijuana, Baja California change
16:30 - 17:33 | TOOL DEMOTool Demonstration at Zoom Chair(s): Owolabi Legunsen Cornell University Public Live Stream/Recording. Registered participants should join via the Zoom link distributed in Slack. | ||
16:30 7mTalk | CPSDebug: A Tool for Failure Explanation Tool Demonstration Ezio Bartocci Technische Universität Wien, Niveditha Manjunath Vienna University of Technology, Leonardo Mariani University of Milano Bicocca, Cristinel Mateis AIT Austrian Institute of Technology GmbH, Dejan Nickovic Austrian Institute of Technology, Fabrizio Pastore University of Luxembourg | ||
16:37 7mTalk | Crowdsourced Requirements Generation for Automatic Testing via Knowledge Graph Tool Demonstration | ||
16:44 7mTalk | EShield: Protect Smart Contracts against Reverse Engineering Tool Demonstration Wentian Yan Peking University, Jianbo Gao Peking University, Zhenhao Wu Peking University and Boya Blockchain Inc, Yue Li Peking University, Zhi Guan Peking University, Qingshan Li Peking University, Zhong Chen | ||
16:51 7mTalk | Echidna: Effective, Usable, and Fast Fuzzing for Smart Contracts Tool Demonstration Gustavo Grieco Trail of Bits, Will Song Trail of Bits, Artur Cygan Trail of Bits, Josselin Feist Trail of Bits, Alex Groce Northern Arizona University | ||
16:58 7mTalk | FineLock: Automatically Refactoring Coarse-grained Locks into Fine-grained Locks Tool Demonstration Yang Zhang Hebei University of Science and Technology, Shuai Shao Hebei University of Science and Technology, Juan Zhai Rutgers University, Shiqing Ma Rutgers University, USA | ||
17:05 7mTalk | ObjSim: Lightweight Automatic Patch Prioritization via Object Similarity Tool Demonstration Ali Ghanbari Iowa State University Pre-print | ||
17:12 7mTalk | ProFL: A Fault Localization Framework for Prolog Tool Demonstration George Thompson North Carolina A&T State University, Allison Sullivan The University of Texas at Arlington | ||
17:19 7mTalk | TauJud: Test Augmentation of Machine Learning in Judicial Documents Tool Demonstration Zichen Guo Nanjing University, Jiawei Liu Nanjing University, Tieke He Nanjing University, Zhuoyang Li Nanjing University, Peitian Zhangzhu Nanjing University | ||
17:26 7mTalk | Test Recommendation System Based on Slicing Coverage Filtering Tool Demonstration Ruixiang Qian State Key Laboratory for Novel Software Technology, Nanjing University, Yuan Zhao State Key Laboratory for Novel Software Technology, Nanjing University, Duo Men State Key Laboratory for Novel Software Technology, Nanjing University, Yang Feng Nanjing University, Qingkai Shi The Hong Kong University of Science and Technology, Yong Huang State Key Laboratory for Novel Software Technology, Nanjing University, Zhenyu Chen Nanjing University DOI |