Concolic Testing in CLP

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 becau...

Full description

Saved in:
Bibliographic Details
Published inTheory and practice of logic programming Vol. 20; no. 5; pp. 671 - 686
Main Authors MESNARD, FRED, PAYET, ÉTIENNE, VIDAL, GERMÁN
Format Journal Article
LanguageEnglish
Published Cambridge, UK Cambridge University Press 01.09.2020
Cambridge University Press (CUP)
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary: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.
ISSN:1471-0684
1475-3081
DOI:10.1017/S1471068420000216