你好,这是自己做的,可以参考下:
(1).
(2)不知道为啥倒过来了,你图片另存下好了
(3)我在2的回答里写3中要求的测试用例
关于软件测试的逻辑覆盖
首先这道白盒测试理论题,应选择,B
A,错误,判定覆盖只是对各个判定节点的结果进行测试设计,不一定就能保证所有语句都覆盖的了。例如:测试判断节点当a=5或!=5时,b=1或c=2,确认b,c结果后,我们就完成了判定节点的测试。但是你的d=?你搞不清楚。你还需要路径覆盖与语句覆盖
funciton_test1(int a){
int b=0;
int c=0;
int d=0;
if(a==5)
b=1;
else
c=2;
d=b+c;
return d;
}
C,错误,条件覆盖的检错能力是否强过路径覆盖不好说。但是可以清楚知道条件覆盖是逻辑点测试,路径覆盖是逻辑线测试,语句覆盖只是代码面覆盖测试了(注:语句覆盖可不是逻辑面测试,就有人会问了,那逻辑面怎么测试?其实穷尽所有逻辑线就是保证程序的逻辑面了,又有人会问,为什么所有逻辑点测试不能保证逻辑线,甚至是逻辑面呢??这里我们要清楚程序可不是只由判定结构的语句组成的,它们还有顺序结构语句,循环结构语句。上面的例子就说明了问题)。
D,错误,满足了路径覆盖不一定就满足条件组合覆盖,首先条件覆盖就时针对判定覆盖而言的。条件覆盖是针对条件去覆盖,判定覆盖是针对判断结果去覆盖。
例如:这里调用function_test2我们输入a为1,3,6查看结果,此为条件覆盖. 使得结果a=1 或者a=2(两种结果都要走一遍)此为判定覆盖。而一次输入a=1,a=6 此为路径覆盖(将两种结果情况路径覆盖掉)。。这样来看发现a=3的情况漏测试了(为什么要测试3参考等价类与边界值方法)。多句嘴,路径覆盖其实就是已结果为导向的,多少个不同结果就是多少个不同路径,但各种条件的覆盖就容易漏掉,所以路径覆盖要保证条件的覆盖,这也就有了判定条件覆盖的概念
function_test2(int a){
if(a>=3)
a=2;
else
a=1;
return a;
}
下面是某文章内容,供参考
白盒测试是通过对程序内部结构的分析、检测来寻找问题。
白盒测试可以把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称结构测试。
1 白盒测试基本技术: 词法分析与语法分析,静态错误分析,程序插桩技术。
2 白盒测试方法
2.1 代码检查法:代码检查方式(桌面检查,代码审查,走查),代码检查项目,编码规范,代码检
查规则,缺陷检查表。
2.2 静态结构分析法。
2.3 静态质量试题法。
2.4 逻辑覆盖法
语句覆盖:选择足够多的测试数据,使测试程序中每条语句至少执行一次。
判定覆盖(分支覆盖):设计足够多的测试用例,使用得程序中的每个判定至少都获得一次“真值”或“假值”;或者说使用得程序中的每一个取“真”分支和取“假”分支至少经历一次。
条件覆盖:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。
条件判定组合覆盖:设计足够的测试用例,使用得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。
多条件覆盖:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。
2.5 基本路径测试法
程序的控制流图(学会通过看程序块画出控制流图)。
程序环路复杂性(即McCabe复杂性度量)环路复杂性V(G)=判断结点数+1.
基本路径测试法步骤:
以详细设计或源代码作为基础,导出程序的控制流图;
计算得到的控制流图G的环路复杂性V(G);
确定线性无关的路径的基本集;
生成测试用例,确保基本路径集中每条路径的执行.
2.6 其他白盒测试方法:域测试,符号测试,Z路径覆盖,程序编译
逻辑覆盖测试方法 逻辑覆盖方法有哪些
1.语句覆盖。这个是起码要做到的覆盖了,程序里的每条可执行的语句都要至少执行一次。这个设计起来比较简单,用例数据很直观的就能看出来。但是语句里的判定,分支等就没什么意义了。可以说这样的测试是最低的要求了。
2.判定覆盖。每个判断的真假分支至少执行一次,就是真要至少取一次,假要至少取一次。这个设计起来也不难,覆盖率要比语句覆盖高近乎一倍,但是也在判定语句中也会遗漏许多路径,因为每个条件的取值是不在考虑范围内的。
3.条件覆盖。和判定覆盖思路一样,只是把重点从判定移动到条件上来了,每个判定中的每个条件可能至少满足一次,也就是每个条件至少要取一次真的,再取一次假的。同样它也会遗漏许多路径,条件取真假并不能满足判定也取到真假两次。
4.判定条件覆盖。既然上面的判定和条件多是片面的,那么这个两个覆盖相结合是呼之欲出判定条件覆盖。它要求判断中的每个条件所有可能至少出现一次,并且每个判定本身的判定结果也要出现一次。不要以为这样就行了,要看看条件,条件和判定不一样,判定取真假就覆盖了判定,可是条件取真假两次完全不能满足条件的各种组合。所以才有了5~。
5.条件组合覆盖。每个判定中条件的各种可能组合至少满足一次。条件各种可能都出现了,必然把判定给覆盖了,它覆盖了上面的4个哦,可是用例数量大大增加了!看项目情况定吧。
6.路径覆盖。概念比较好理解,把所有可能路径至少都走一遍,但是用例数量可想而知le
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
帮做个作业软件测试用例 逻辑覆盖测试
共3个输入参数,因此参数组合为2^3, 共8种组合, 见下表
input | expected
case1: a=true,b=true,c=ture | x=true
case2: a=true,b=false,c=true | x=true
case3: a=false,b=true,c=true | x=true
case4: a=false,b=false,c=true | x=false
case5: a=true,b=true,c=false | x=false
case6: a=true,b=false,c=false | x=false
case7: a=false,b=true,c=false | x=false
case8: a=false,b=false,c=false | x=false
软件测试,使用逻辑覆盖测试技术设计测试用例
if为真
(a || b)为真 c 为真:成立条件 a真b假c真 或 a假b真c真
if为假,进入选择分支else
2.1(a || b)为假 c为真:成立条件 a假b假c真
2.2(a || b)为真 c为假:成立条件 a真b真c真 或 a真b假c假 或 a假b真c假
大概就是这样吧
更多代码应该是这个意思 不过要的是一个程序流程图和设计个测试数据
流程图自己画嘛,测试数据的话,就把上面的(a真b假c真)这些变成a=true,b=false,c=true 等等就可以了嘛
学的不太好不会画图,如果您能帮忙画个给你加50分
用的方框什么的跟你们老师要求的不一定一样啊。
转载请注明出处51数据库 » 软件测试逻辑覆盖测试 软件测试逻辑覆盖测试题