返回
Property-based testing in Python: empirical insights
DOI:10.1007/s10664-026-10953-w.png)
摘要
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
期刊
IF:
3.6
论文数:
2.0K
被引数:
5.3K
机构
引用论文
Empirically Evaluating the Quality of Automatically Generated and Manually Written Test Suites实证评估自动生成和人工编写的测试套件的质量
The Equivalence of Weighted Kappa and the Intraclass Correlation Coefficient as Measures of Reliability加权Kappa和组内相关系数作为可靠性度量的等价性
An Empirical Evaluation of Using Large Language Models for Automated Unit Test Generation使用大型语言模型进行自动单元测试生成的经验评估

