Python中怎么实现突变测试
导读:本文共1641字符,通常情况下阅读需要5分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 首先,写一个简单的单元测试:importangledeftest_twelve():assertangle.between(12,00)==0足够了吗?代码没有if语句,所以如果你查看覆盖率:$coveragerun`whichpytest`=============================testsessionstarts===============... ...
目录
(为您整理了一些要点),点击可以直达。首先,写一个简单的单元测试:
足够了吗?代码没有if
语句,所以如果你查看覆盖率:
完美!测试通过,覆盖率为 100%,你真的是一个测试专家。但是,当你使用突变测试时,覆盖率会变成多少?
天啊,在 21 个突变体中,有 16 个存活。只有 5 个通过了突变测试,但是,这意味着什么呢?
对于每个突变测试,mutmut
会修改部分源代码,以模拟潜在的错误,修改的一个例子是将>
比较更改为>=
,查看会发生什么。如果没有针对这个边界条件的单元测试,那么这个突变将会“存活”:这是一个没有任何测试用例能够检测到的潜在错误。
是时候编写更好的单元测试了。很容易检查使用results
所做的更改:
这是mutmut
执行突变的一个典型例子,它会分析源代码并将运算符更改为不同的运算符:减法变加法。在本例中由乘法变为除法。一般来说,单元测试应该在操作符更换时捕获错误。否则,它们将无法有效地测试行为。按照这种逻辑,mutmut
会遍历源代码仔细检查你的测试。
你可以使用mutmut apply
来应用失败的突变体。事实证明你几乎没有检查过hour
参数是否被正确使用。修复它:
以前,你只测试了 12 点钟,现在增加一个 3 点钟的测试就足够了吗?
Python中怎么实现突变测试的详细内容,希望对您有所帮助,信息来源于网络。