调整随机生成器:基于属性的测试作为概率编程的一种方法

《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号