基于属性的测试和变异测试有什么区别?

2024-04-27 14:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题的上下文在Python中。在

假设测试库(即基于属性的测试): https://hypothesis.readthedocs.io/en/latest/

突变测试库: https://github.com/sixty-north/cosmic-ray


Tags: httpsiogithubcom属性readthedocslatesten
1条回答
网友
1楼 · 发布于 2024-04-27 14:26:56

这是非常不同的野兽,但两者都能提高测试的价值和质量。这两个工具都有助于使“我的代码覆盖率为N%”语句更有意义。在


Hypothesis将帮助您在定义的范围内为被测函数生成各种测试输入。

通常,当您需要测试一个函数时,您会提供多个示例值,试图覆盖由代码覆盖率报告驱动的所有用例和边缘用例,这就是所谓的“基于示例的测试”。另一方面,假设实现了一个基于属性的测试,生成一大堆不同的输入和输入组合,帮助捕捉不同的常见错误,如被零除、None、0、offbyone错误等,并帮助发现隐藏的bug。在

Mutation testing就是在对修改后的代码执行测试时,动态地更改正在测试的代码。

这确实有助于了解测试是否实际测试了它们应该测试的内容,从而了解测试的价值。如果你已经有了丰富的测试代码库和良好的代码覆盖率,那么变异测试将真正大放异彩。在


这些Python播客帮助我了解了这些概念:

相关问题 更多 >