LOPLSEAug 2, 2020

Concolic Testing in CLP

arXiv:2008.00421v35 citations
Originality Incremental advance
AI Analysis

This work addresses a soundness issue in concolic testing for CLP programs, which is important for developers and researchers using CLP as an intermediate representation for program analysis, though it is incremental as it generalizes a previous technique.

The paper tackles the problem of unsound concolic testing in logic programming by introducing a novel framework for CLP programs that handles both positive and negative constraints, resulting in a sound and potentially more efficient technique.

Concolic testing is a popular software verification technique based on a combination of concrete and symbolic execution. Its main focus is finding bugs and generating test cases with the aim of maximizing code coverage. A previous approach to concolic testing in logic programming was not sound because it only dealt with positive constraints (by means of substitutions) but could not represent negative constraints. In this paper, we present a novel framework for concolic testing of CLP programs that generalizes the previous technique. In the CLP setting, one can represent both positive and negative constraints in a natural way, thus giving rise to a sound and (potentially) more efficient technique. Defining verification and testing techniques for CLP programs is increasingly relevant since this framework is becoming popular as an intermediate representation to analyze programs written in other programming paradigms.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes