软件设计师中级-白盒测试相关题目

【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。

经验分享 程序员 微信小程序 职场和发展