论文标题
CLP中的一致性测试
Concolic Testing in CLP
论文作者
论文摘要
Concolic Testing是一种基于混凝土和象征性执行的组合的流行软件验证技术。它的主要重点是找到错误并生成测试用例,目的是最大程度地提高代码覆盖范围。先前在逻辑编程中进行一致性测试的方法并不合理,因为它仅处理积极的限制(通过替换),但不能代表负面约束。在本文中,我们提出了一个新颖的框架,用于对CLP程序的一致性测试,从而概括了先前的技术。在CLP环境中,可以自然地表示正面和负面约束,从而产生声音和(可能)更有效的技术。定义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 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.