程序员常刷题保持冷静并杀死突变体变种人、丧尸……是的,文章主题和图片之间存在不一致以引起注意。但我向上帝发誓,这实际上是我公寓内墙上挂着的海报。的主题是变异测试——一种在测试软件质量领域非常特殊的方法。它能够令人惊叹,让您认为自己失去了理智,最后,可以为您的程序员的灵魂带来安宁。我知道,这个定义听起来相当大胆和自命不凡,但我希望在阅读的其余部分后,您会像我一样被说服。技术基于一个非常简单的想法。比如说,你有一堆代码和一些测试来验证它的正确性。这些测试是如何诞生的并不重要:使用类似或之后编写的技术。变异测试允许验证您的测试套件是否已满。通过“满”,我的意思是——没有任何代码(代码执行路径,要正确地修正)未覆盖有至少一个测试用例。程序正确性毕竟我们为什么要测量测试覆盖率?确保程序按预期运行,防止回归失败等。那么程序怎么样?我们如何确信程序在所有有效输入上都能正常工作?嗯,很难涵盖所有程序状态(对于某些程序根本不可能)。考虑函数next_char :

def next_char ( char )

char . ord . next . chr

end

一个非常简单的例子。