基于属性的测试在Python中的实证评估

《Proceedings of the ACM on Programming Languages》:An Empirical Evaluation of Property-Based Testing in Python

【字体: 大 中 小 】 时间:2025年11月10日 来源:Proceedings of the ACM on Programming Languages

编辑推荐:

  性质驱动测试(PBT)在Python中的缺陷检测效率研究。通过分析426个使用Hypothesis的Python程序,发现PBT测试平均检测突变点数是传统单元测试的50倍。异常处理、集合包含性测试和类型检查三类测试效果最显著(效率提升19倍以上),76%的突变在首次20次随机输入中即被捕获。

  

摘要

基于属性的测试(Property-Based Testing, PBT)是一种起源于函数式编程社区的测试方法。近年来,针对非函数式语言(包括Python)也开发出了相应的PBT库。然而,目前关于基于属性的测试在发现错误方面的有效性,以及某些类型的PBT是否比其他类型更有效,仍缺乏足够的证据。为了收集这些证据,我们对426个使用Hypothesis(Python中最流行的PBT库)的Python程序进行了研究。我们为12类基于属性的测试制定了正式的定义,并实现了一种用于对这些测试进行分类的程序内静态分析方法。接着,我们通过变异测试评估了40个项目的测试套件的有效性,发现平均而言,每个基于属性的测试发现的变异数量是普通单元测试的约50倍。我们还确定了在发现变异方面最有效的测试类别,发现那些检测异常、检查元素是否属于集合以及验证类型匹配性的测试,其效果比其他类型的基于属性的测试高出19倍以上。最后,我们进行了参数扫描研究,以评估基于属性的测试在随机输入数量变化时的有效性,结果发现76%的变异是在前20个输入中被检测到的。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号