FLACK: Counterexample-Guided Fault Localization for Alloy Models

02/19/2021
by   Guolong Zheng, et al.
0

Fault localization is a practical research topic that helps developers identify code locations that might cause bugs in a program. Most existing fault localization techniques are designed for imperative programs (e.g., C and Java) and rely on analyzing correct and incorrect executions of the program to identify suspicious statements. In this work, we introduce a fault localization approach for models written in a declarative language, where the models are not "executed," but rather converted into a logical formula and solved using backend constraint solvers. We present FLACK, a tool that takes as input an Alloy model consisting of some violated assertion and returns a ranked list of suspicious expressions contributing to the assertion violation. The key idea is to analyze the differences between counterexamples, i.e., instances of the model that do not satisfy the assertion, and instances that do satisfy the assertion to find suspicious expressions in the input model. The experimental results show that FLACK is efficient (can handle complex, real-world Alloy models with thousand lines of code within 5 seconds), accurate (can consistently rank buggy expressions in the top 1.9% of the suspicious list), and useful (can often narrow down the error to the exact location within the suspicious expressions).

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

08/27/2021

CharmFL: A Fault Localization Tool for Python

Fault localization is one of the most time-consuming and error-prone par...
01/21/2020

Towards Fault Localization via Probabilistic Software Modeling

Software testing helps developers to identify bugs. However, awareness o...
07/23/2018

Fault Localization for Declarative Models in Alloy

Fault localization is a popular research topic and many techniques have ...
11/24/2021

FLACOCO: Fault Localization for Java based on Industry-grade Coverage

Fault localization is an essential step in the debugging process. Spectr...
12/09/2017

Inforence: Effective Fault Localization Based on Information-Theoretic Analysis and Statistical Causal Inference

In this paper, a novel approach, Inforence, is proposed to isolate the s...
09/21/2021

A Variability Fault Localization Approach for Software Product Lines

Software fault localization is one of the most expensive, tedious, and t...
07/20/2021

A Hybrid Approach to Fine-grained Automated Fault Localization

Fault localization is to identify faulty source code. It could be done o...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.