代码覆盖率
代码覆盖率工具将使用一个或多个标准来确定在执行测试套件期间您的代码是如何执行的。覆盖率报告中的常见指标包括:
- 函数覆盖率:已定义的函数中有多少被调用。functin 和function-call
- 语句覆盖率:程序中有多少语句已执行。
- 分支覆盖率:控制结构的分支(例如 if 语句)中有多少已执行。
- 条件覆盖率:已经测试了多少布尔子表达式的真值和假值。
- 行覆盖率:已经测试了多少行源代码。
判断覆盖( Modified condition/decision coverage )简称 MC/DC
飞航软件开发指南DO-178B及DO-178C中指定会影响飞机起飞及降落安全性的软件
(A等级软件),需满足修改条件/判断覆盖的代码覆盖测试。在功能安全标准IEC61508
part3的附录B中,有关SIL4的说明,以及汽车安全标准 ISO26262第6章的ASILD,
都高度建议使用MC/DC。
依照修改条件/判断覆盖的准则,测试过程中以下条件至少成立一次
每一个判断的所有可能结果都出现过
每一个判断中所有条件的所有可能结果都出现过
每一个进入点及结束点都执行过
判断中每一个条件都可以独立的影响判断的结果
函数举例:
int function (int x, int y)
{
intz=0;
if ((x>0) && (у>0))
Z = X;
return z;
}
实现覆盖的测试用例与条件关系:
条件个数为n,测试用例个数为 n+1;