扫码阅读
手机扫码阅读

一个即将秃头的工程师,解答你对“变异测试”的所有困惑

924 2023-07-15

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:一个即将秃头的工程师,解答你对“变异测试”的所有困惑
文章来源:
茹炳晟聊软件研发
扫码关注公众号
变异测试概要

从测试覆盖率的局限性谈起

单元测试后的代码覆盖率常用来衡量测试的充分性和完整性,但高覆盖率并不等同于高代码质量。测试覆盖率不等于测试有效性,这就是变异测试(Mutation Testing)所要解决的问题。

变异测试的基本概念

变异测试是基于错误注入的测试方式,通过人为在代码中注入错误,检验现有测试用例是否能发现这些错误。变异测试概念由Richard Lipton于1971年提出,1980年出现首个工具,但工业界关注度低,尤其在单元测试不完备的情况下。

实施变异测试的步骤

变异测试过程包括生成变异体源代码、使用测试用例对原代码和变异体代码进行测试,以及比较测试结果。测试结果的不同表明测试用例能发现注入的错误,即测试用例有效;相同则相反。

主流变异测试工具使用简介

介绍了三款主流变异测试工具:Pitest针对Java,Stryker Mutator适用于JavaScript,C#和Scala,而MuDroid支持Android应用程序。这些工具在工业界有实际应用价值。

变异测试的工程化实践(纯干货)

工程化实践包括通过CI集成全流程,流水线并发执行降低时间,限定范围以提升效率,结合精准测试,建立变异分门禁计算,以及智能化测试用例增补和修改。

变异测试在接口测试中的应用与探索

接口测试中引入变异测试概念有助于评估测试用例的有效性,但实施中会遇到服务部署等问题。技术和工程实践如动态构造变异体、热部署和基于容器化的环境部署是需要的解决方案。

推荐阅读

推荐两本关于软件研发质量和效率提升的新书。

想要了解更多内容?

查看原文:一个即将秃头的工程师,解答你对“变异测试”的所有困惑
文章来源:
茹炳晟聊软件研发
扫码关注公众号