43、基于属性测试的基础验证框架深入解析

基于属性测试的基础验证框架深入解析

1. 基础验证框架概述

使用验证测试框架的主要优势在于能够针对 QuickChick 组合器的高级规范,对测试代码进行抽象(可能性)正确性证明。为了高置信度地回答规范正确性相关问题,我们对 QuickChick 进行了深入验证,直至一组小的定义和假设。该框架的基础包括生成器和检查器的可能性语义,以及可拆分伪随机数生成器(splittable PRNG)的理想化接口。可能性抽象避免了各层面复杂的概率推理,提高了方法的可扩展性和易用性。此外,我们还验证了 QuickChick 的所有组合器,支持对大小和函数生成器进行便捷推理,并使用一个小型库以无点风格对不可计算集进行推理。

1.1 生成器的结果集语义

在本框架中,生成器的语义是其能以非零概率产生的结果集。相较于涉及概率分布的更精确抽象,我们选择这种可能性语义,因为指定和验证概率程序比非确定性程序困难得多。可能性语义更简单易用,能将验证扩展到实际生成器,同时还能发现其中的许多错误。它还能直接将检查器与它们测试的声明性命题相关联,并且集合包含关系对应于先前验证测试工作中的生成器满射性,通过无点推理改进证明,还能验证健全性和完整性。

QuickChick 生成器在内部表示为具有大小和随机种子两个参数的读取器单子。以下是相关代码定义:

Inductive G (A:Type) : Type := MkGen : (nat
-> RandomSeed
-> A) -> G A.
Definition
run {A : Type} (g : G A) := match g with
MkGen
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值