arrow
返回

Property-based testing in Python: empirical insights

delete2026-08-24
delete0
delete
OA
AI
I
Isadora Oliveira
A
Arthur Lisboa Corgozinho
H
Henrique Rocha
M
Marco Túlio Valente *
DOI:10.1007/s10664-026-10953-wdelete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
基于属性的测试(PBT)自动生成测试输入以验证程序属性,将开发者的精力从编写示例转向指定不变量。尽管该技术在Python中通过Hypothesis框架获得了普及,但人们对开发者如何在实践中采用和使用它知之甚少。本文报告了三项实证研究。首先,我们分析了244个Python项目中的367个PBT,将它们分为九个属性类别,并量化了它们对Hypothesis构造的使用情况。我们发现测试基准属性占主导地位(29.97%),且PBT通常简洁(中位数14行代码),严重依赖内置策略(75.20%),但也依赖外部(22.62%)和内部(17.17%)策略。其次,我们研究了标记为PBT的213个Stack Overflow帖子,发现开发者面临的主要挑战涉及数据生成策略(36.62%),特别是对于复合和表格数据(24.36%)。最后,我们评估了Hypothesis的自动化测试生成器Ghostwriter,针对我们数据集中的203个测试;只有18.23%可以完全自动化,而大多数需要部分调整(30.05%)或不相容(51.72%)。综合来看,我们的发现为Python中的PBT提供了迄今为止最大的实证表征,突显了开发者采用该技术的困难,并揭示了当前工具支持的局限性。
Keyword:
Property-based testing
Python
Hypothesis
Ghostwriter
Stack overflow
Developer adoption or practices
Automated test generation

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

D
department of computer science
学者数:
796
论文数: 416
被引数: 0