8、播种矛盾:快速生成全覆盖测试套件

播种矛盾:快速生成全覆盖测试套件

1. 正确性

测试套件生成策略的目标是生成高覆盖率的测试套件。播种矛盾(Seeding Contradiction,SC)策略更为雄心勃勃,若它能实现穷举覆盖(即对可达分支的完全覆盖),则认为该策略是正确的。更准确地说,如果证明器具备“可达性可靠”“正确性可靠”和“反例完备”的特性,SC 就是“覆盖完备”的。

1.1 定义和假设

确立 SC 的正确性需要精确的约定和术语。一般假设存在“FP - FT”机制,它能根据基于 SMT 的证明器生成的反例,直接生成可执行的测试(以目标编程语言,如 Eiffel 表示)。因此,后续讨论不再区分反例和测试的概念。

  • 基本块 :程序的基本块(简称块),若至少有一组输入值能使其执行,则该块是可达的;否则,无论输入如何都无法执行,则为不可达。可达性对于任何实际的编程语言来说是不可判定的属性,但由于我们依赖的证明器只需具备可达性可靠性,即若一个块可达,证明器能将其正确识别为可达,所以这并不影响我们的工作。
  • 检查指令 :程序中可能包含 check C end 形式的指令,该指令对执行没有影响。当且仅当条件 C 在每次执行该指令时都成立,该指令才是正确的。这一属性同样不可判定,我们只要求证明器具备正确性可靠性,即若证明器判定一个指令正确,那么它就是正确的。
  • 程序正确性 :为简便起见,假设所有正确性属性都以检查指令的形式表达。一个块若其所有检查指令都正确,则该块正确;一个程序若其所有块都正确,则该程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值