Wil*_*ers 7 python testing mutation-testing property-based-testing hypothesis-test
我在这个问题的上下文是在Python中.
假设检验库(即基于财产的检验):https: //hypothesis.readthedocs.io/en/latest/
这些是非常不同的野兽,但两者都会提高测试的价值和质量.这两个工具都有助于使"我的代码覆盖率为N%"语句更有意义.
假设可以帮助您在被测函数的已定义范围内生成各种测试输入.
通常,当您需要测试函数时,您提供了多个示例值,试图涵盖由代码覆盖率报告驱动的所有用例和边缘情况 - 这就是所谓的"基于示例的测试".另一方面,假设实现了基于属性的测试,生成了一大堆不同的输入和输入组合,有助于捕获不同的常见错误,如除零None,0,逐个错误等,并帮助查找隐藏的错误.
变异测试的全部内容是在针对代码的修改版本执行测试时动态更改您的代码.
这确实有助于查看您的测试是否实际测试了他们应该测试的内容,以了解测试的价值.如果您已经拥有丰富的测试代码库和良好的代码覆盖率,那么变异测试真的会大放异彩.
帮助我了解这些概念的是这些Python播客: