调整随机生成器:基于属性的测试作为概率编程的一种方法
《Proceedings of the ACM on Programming Languages》:Tuning Random Generators: Property-Based Testing as Probabilistic Programming
【字体:
大
中
小
】
时间:2025年11月07日
来源:Proceedings of the ACM on Programming Languages
编辑推荐:
基于属性的测试(PBT)通过随机生成输入验证软件,但调整生成器权重困难。本文提出自动调优技术,使用目标函数优化权重,并实现于Loaded Dice系统,实验表明自动调优能提升3.1-7.4倍漏洞发现速度。
摘要
基于属性的测试(Property-Based Testing, PBT)通过使用随机生成的输入来评估软件,从而验证软件是否符合可执行的规范。PBT 用户生成测试输入的标准方法是使用生成器,这些生成器描述了如何通过随机选择来采样测试输入。为了实现测试输入的合理分布,用户必须调整生成器的参数,即确定各个随机选择的权重。不幸的是,很难理解如何选择这些权重以实现所需的分布,因此这一过程非常繁琐,并且限制了实际可以实现的分布范围。
在本文中,我们开发了用于生成器自动离线调整的技术。给定一个具有未确定符号权重的生成器和一个目标函数,我们的方法会自动学习这些权重的值,以优化目标函数。我们描述了一些有用的目标函数,这些函数可以帮助用户(1)实现所需的分布,(2)提高测试用例的多样性和有效性。我们将这种方法实现在一个新型的离散概率编程系统 Loaded Dice 中,该系统支持微分和参数学习,并将其用作生成器的语言。通过实验验证,我们的方法能够根据指定的目标函数有效地优化生成器的分布。我们还在 PBT 基准测试中进行了全面评估,结果表明,在自动调整以优化多样性和有效性后,生成器的缺陷发现速度提高了 3.1 到 7.4 倍。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号