((x>5)&&(y>0))
- 判定覆盖准则(DC):判定的 true 和 false至少各执行一次.
// {(6, 1), (1,1)}--DC
int foo(int x, int y) {
int z = y*2; \\ z=y;
if ((x>5) && (y>0)) {
z = x; }
return x*z;
}
- 条件覆盖(CC): 每个条件的true和false至少各被执行一次
(x>5) :true and false
(y>0) :true and false
// {(6, 0), (0,1)}--CC
int foo(int x, int y) {
int z = y;
if ((x>5) && (y>0)) {
z = x; }
return x*z;
}
-----Subsume 关系
C1 蕴含 C2 (或 C2 被C1蕴含), 记为
A ≥ B:对于任意P: C1(P) ?C2(P).
DC ≥ SC
CC not ≥ SC
DC not ≥ CC, CC not ≥ DC
- 条件判定覆盖(C/DC):同时满足DC和 CC.
C/DC(P)=CC(P) ∩ DC(P)
C/DC ≥ CC
C/DC ≥ DC
//
int foo(int x, int y) {
int z = y;
if ((x>5) && (y>0)) {
z = x; }
return x*z;
}
- 修订条件判定覆盖(MC/DC): 每个条件独立影响判定true和false各一次
MC/DC
((x>5) && (y>0))
T T T
T F F
F T F
F F F
MC/DC
Modified Condition/Decision Coverage
(MC/DC) 是C/DC得到一个增强版本.
MC/DC 是DO-178B 标准的一个重要准则
(Federal Aviation Administration)
MC/DC作为控制软件最为严格(Level A )
的逻辑测试覆盖准则
原文地址:https://www.cnblogs.com/lianlianqingning/p/9867727.html
时间: 2024-10-08 12:45:09