






















测试用例 是为了验证某个功能是否正确,提前设计好的一套可执行、有标准答案的测试步骤。
简单说:测试用例 = 测什么 + 怎么测 + 预期应该是什么结果。
语义覆盖是以「业务语义 / 逻辑规则」为核心的测试覆盖标准,它不只是关注「代码是否被执行」(传统代码覆盖),更关注「代码执行的结果是否符合业务语义规则」。
语义覆盖通常包含哪些内容?
编号、所属模块、标题、重要级别、测试数据、操作步骤、预期结果、测试结果、行覆盖率、分支覆盖率、变异测试得分
1、单元测试 - 数量最多,反馈最快
2、组件/集成测试 - 少而关键
3、测试用例模板 - 最少但保证主链路
1、测试结果验证:测试结果是否等于预期结果
2、JaCoCo代码覆盖率
JaCoCo(Java Code Coverage)是Java/Android 代码覆盖率统计工具,能精准统计测试用例对代码的覆盖程度,生成可视化报告(HTML/XML/CSV)。核心覆盖率指标如下:
3、Mutation Testing 变异测试得分
Mutation Testing 是什么?
突变测试(也叫 “变异测试”)是评估测试用例有效性的高阶测试方法,核心逻辑:自动在源码中植入微小的 “语法错误”(称为「突变体 Mutant」,比如把 >= 改成 >、把 + 改成 -),然后运行测试用例;如果测试用例能发现这个错误(让突变体被 “杀死”),说明测试用例有效;如果测试用例没发现(突变体 “存活”),说明测试用例遗漏了关键逻辑,需要优化。
与 JaCoCo 代码覆盖的核心区别:
代码覆盖是 “做了测试”,突变测试是 “测试做得有效”。
Mutation Testing 核心报告指标
| 指标名称 | 核心定义 | 计算公式 | 达标阈值(参考) | 关键意义 |
|---|---|---|---|---|
| Mutation Score (MS) | 突变分数:测试用例杀死突变体的能力 | (Killed Mutants / Total Valid Mutants) × 100% | ≥80%(核心业务) | 最核心指标,反映测试用例的有效性 |
| Mutation Coverage | 突变覆盖:测试用例触及突变体的比例 | (Touched Mutants / Total Valid Mutants) × 100% | ≥90% | 反映测试用例是否 “触达” 了突变体(未触及 = 漏测) |
| Killed Mutants | 被杀死的突变体 | 测试用例执行后,检测到突变体并导致测试失败的数量 | 越多越好 | 代表测试用例能发现对应的逻辑错误 |
| Survived Mutants | 存活的突变体 | 测试用例执行后,未检测到突变体(测试仍通过)的数量 | 0(核心逻辑) | 代表测试用例无效,遗漏了关键逻辑 |
| Incompetent Mutants | 无效突变体 | 植入突变后导致源码无法编译 / 运行的数量 | 越少越好 | 工具生成的无效突变(无需关注) |
| Timed Out Mutants | 超时突变体 | 植入突变后测试执行超时的数量 | 越少越好 | 需排查是否是突变体导致性能问题 |
学习技术不是用来写HelloWorld和Demo的,而是要用来解决线上系统的真实问题的.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。