×

探索软件验证的约束编程能力。 (英语) Zbl 1180.68111号

Hermanns,Holger(编辑)等人,《系统构建和分析的工具和算法》。2006年3月25日至4月2日在奥地利维也纳举行的第12届国际会议TACAS 2006,是欧洲软件理论与实践联合会议ETAPS 2006的一部分。诉讼程序。柏林:施普林格出版社(ISBN 3-540-33056-9/pbk)。计算机科学课堂讲稿3920,182-196(2006)。
概要:验证和确认是软件工程过程中最关键的两个问题。在过去的几年中,为了验证程序与其规范的一致性,使用了从形式证明到测试方法的多种技术。最近,约束编程技术被用于生成测试数据。在本文中,我们研究了约束编程技术的能力,以验证程序与其规范的一致性。我们在这里介绍了一种新的方法,该方法基于约束系统中程序及其规范的转换。为了建立一致性,我们证明了从程序中导出的约束系统的并集与从其规范中导出的限制系统的否定是不一致的(对于所考虑的值域)。该验证过程包括三个步骤。首先,我们生成一个布尔约束系统,该系统捕获控制流图提供的信息。然后,我们使用SAT求解器求解布尔约束系统。最后,对于每个布尔解,我们在有限域上建立一个新的约束系统并对其进行求解。后一个系统捕获程序的操作部分和规范。布尔约束起着至关重要的作用,因为它们在搜索和枚举过程开始之前大大减少了搜索空间。此外,在程序不符合其规范的情况下,布尔约束为在程序的不同执行路径中查找错误行为提供了一个强大的工具。在标准基准上的首次实验结果非常有希望。
关于整个系列,请参见[兹比尔1103.68005].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部