软件设计师中级-白盒测试相关题目
【2020年下半年】35.36.用白盒测试技术对下面流程图进行测试,设计的测试用例如下表所示。至少采用测试用例( )才可以实现语句覆盖;至少采用测试用例( ) 才可以实现路径覆盖。
A.① B.② C.③ D.④ A.① B.①② c.③④ D.①②③④ 答案:.A、D
首先了解流程图符号:
根据测试用例:
用例①可以满足覆盖所有语句,满足语句覆盖。
用例①可以满足路径ace,用例②可以满足路径abd,用例③可以满足路径abe,用例④可以满足路径acd。所以满足路径覆盖需要测试用例①②③④。
【2019下半年】下图用白盒测试方法进行测试,图中有(37)条路径采用McCabe度量计算该程序图的环路复杂性为(38)。
(37)A.3 B.4 C.5 D.6
(38)A.3 B.4 C.5 D.6
答案:B、B
根据图示可以找到不同路径共4条
第一条:1-2-3-11
第二条:1-2-3-4-5-6-10-11
第三条:1-2-3-4-5-7-9-10-11
第四条:1-2-3-4-5-7-8-9-10-11
环路复杂性
方法一:
计算公式V(G)=M-N+2
M(边数【紫色】)-N(点数【红色】)=13-11+2=4
方法二:
看有多少个封闭区间,总数加1
图中有3个,加1是4个
【2019上半年】以下关于测试的叙述中,正确的是(34)。
(34)A.实际上,可以采用穷举测试来发现软件中的所有错误
B.错误很多的程序段在修改后错误一般会非常少
C.测试可以用来证明软件没有错误
D.白盒测试技术中,路径覆盖法往往能比语句覆盖法发现更多的错误
答案:D
解析: 一个高效的测试是指用少量的测试用例,发现被测软件尽可能多的错误。软件测试不能说明软件中不存在错误,不能用穷举法来进行测试。 经验表明,测试中存在集群规律,即未发现的错误数量与已发现的错误数量成正比,已发现的错误数量越多,则该模块未被发现的错误也就越多。 软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。 “白盒测试技术中,路径覆盖法往往能比语句覆盖法发现更多的错误”选项的描述是正确的,白盒测试中语句覆盖是覆盖度最弱的,所以路径覆盖往往能比语句覆盖发现更多的错误。
【2016下半年】(32)对下图所示流程图采用白盒测试方法进行测试,若要满足路径覆盖,则至少需要(32)个测试用例。采用McCabe度量法计算该程序的环路复杂性为(33)。
(32)A.3 B.4 C.6 D.8
(33)A.1 B.2 C.3 D.4
答案:CD
解析:路径覆盖应使程序中每一条 可能的路径至少执行一次。该流程图中一共有六条路径:①②③④⑤⑥⑦⑧,①②③④⑤⑥⑧,①②③⑤⑥⑦⑧,①②③⑤⑥⑧,①②⑥⑦⑧,①②⑥⑧,因此,实现路径覆盖至步需要6个测试用例。McCabe度量法是一种基于程序控制流的复杂性度量方法,环路复杂性为V (G) =m-n+2,图中m=10,n=8,V (G) =10-8+2=4。
【2015下半年】
若用白盒测试方法测试以下代码,并满足条件覆盖,则至少需(35)个测试用例。采用McCabe度量法算出该程序的环路复杂性为(36)。
int find_max(int i, int j, int k) { int max; if (i > j) then if(i > k) then max = i; else max = k; else if (j > k) max = j; else max = k; }
(35)A.3 B.4 C.5 D.6
(36)A.1 B.2 C.3 D.4
画出该代码的流程图,如下: 要满足条件覆盖,要求三个判断框的Y和N至少要经过一次,即1Y2Y;1Y2N;1N3Y;1N3N,至少需要4个测试用例。 McCabe度量法是一种基于程序控制流的复杂性度量方法,环路复杂性为V(G)=m-n+2,图中m=9,n=7,V(G)=9-7+2=4。