静态检验方题目及答案解析.docx
《静态检验方题目及答案解析.docx》由会员分享,可在线阅读,更多相关《静态检验方题目及答案解析.docx(10页珍藏版)》请在冰豆网上搜索。
静态检验方题目及答案解析
第12讲静态测试方法
1.【单选题】下面对数据流分析方法描述错误的是。
A.数据流分析是在程序代码经过的路径上检查数据的用法。
B.数据流分析不一定能够发现缺陷,但可以发现异常。
C.数据流分析过程中,需要检查每个变量的使用情况。
D.数据流异常通常不明显,并且每个异常都会导致不正确的行为。
2.【单选题】判断下面代码段中有数据流异常的变量是
voidexchange(int&Min,int&Max){
inthelp;
if(Min>Max){
Max=Help;Max=Min;Help=Min;
}
}
A.Min和Max
B.Min和Help
C.Help和Max
D.Min、Max和Help
3.【单选题】在控制流图中,不能仅用带标号的圆圈表示的是
A.一条或多条语句
B.一个处理框序列
C.一个条件判定框
D.一个循环结构
4.【单选题】下面是由Case多分支结构转换的控制流图。
A.
B.
C.
D.
5.
【单选题】以下控制流图的环形复杂性V(G)等于
A.5
B.6
C.7
D.8
6.【判断题】通过控制流图可以发现程序结构的异常。
7.【判断题】环形复杂度度量主要用于计算程序基本路径集的路径数量。
8.【判断题】环形复杂度的值越大,理解程序模块的难度越高。
9.【填空题】程序控制流图中所涉及的图形符号只有两种,分别是和。
10.[填空题】控制流图可用矩阵表示,矩阵维数等于控制流图的,矩阵的每个元素
对应于
11.【简答题】简述环形复杂度的作用。
12.【应用题】根据下图给出的程序流程图,完成以下要求
(1)画出相应的控制流图(要求对程序中的复合条件进行分解)。
(2)写出控制流图的矩阵表示。
(3)计算环形复杂度V(G)。
(4)找出程序的独立路径集合。
13.【应用题】
1、为以下程序段设计一组测试用例,要求满足语句覆盖、判定覆盖、条件覆盖。
Voidprocedure_A(intx,inty,intz)
{
intk=O,j=O;
if((x>6)&&(z<20))
{
k=x*y-1;j=sqrt(k);
}//语句块1
if((x==8)||(y>50))
{
j=x*y+10;
}//语句2
j=j%3;//语句3
}
2、基本路径覆盖测试分析和设计。
请为程序模块F1
(1)画出程序控制流图
(2)计算控制流图的环路复杂度
(3)导出独立路径
(4)设计测试用例满足基本路径覆盖
程序模块F1代码如下:
1publicintF1(intnum,intcycle,booleanflag)
2{
3intret=0;
4while(cycle>0)then
5{
6if(flag==true)
7{
8ret=num-10;
9break;
10}
11else
12
{
{
ret=ret*10;
}
else
{
ret=ret+1;
}
}cycle--;
}
returnret;
14
15
16
17
18
19
20
21
22
23
24
25
}
第12讲静态测试方法
1.【单选题】D
2.【单选题】C
3.【单选题】D
4.【单选题】B
5.【单选题】A
6.【判断题】V
7.【判断题】X
8.【判断题】V
9.【填空题】节点控制流线
10.【填空题】节点数节点连接的边
11.【简答题】
环形复杂度为程序复杂度提供定量度量,用来测量程序代码的结构复杂程度,用于程序的路
径测试。
环形复杂度可提供程序基本路径集的独立路径数量,依据每条独立路径设计一个测
试用例,其值是确保所有语句至少被执行一次的测试用例数量的上界(最大值)。
12.【应用题】
(1)画出相应的控制流图(要求对程序中的复合条件进行分解)
2
3
5
6
控制流图说明:
圈中
1表示:
A<5
图中
2表示:
B=5
圈中
3表示:
X=X/A
圈中
4表示:
A=2
圈中
5表不:
X>2
圈中
6表示:
X=X+1
圈中
7表示:
程序结束
(2)计算环形复杂度。
V(G)=E-N+2=10-7+2=5
(3)写出控制流图的矩阵表示。
节点
1
2
3
4
5
6
7
1
a
b
2
c
d
3
k
4
e
f
5
g
h
6
i
7
(4)找出程序的独立路径集合。
(标红色的部分是在前面路径中没有出现过的新的边)
独立路径
1:
1-2-4-7(adf)
独立路径
2:
1-3-4-7(bkf)
独立路径
3:
1-2-3-4-7(ackf)
独立路径
4:
1-3-4-5-7(bkeh)
独立路径5:
1-2-4-5-6-7(adegi)
综合题
1•答:
语句覆盖(有多种可能答案):
略
判定覆盖(有多种可能答案):
略
条件覆盖(有多种可能答案):
略
只要考虑分支条件覆盖(有多种可能答案):
((x>6)&&(z<20))=T和F和((x==8)||(y>50))=T和F这两个判定,以及(x>6)=T和F、(z<20)=T和F、(x==18)=T和F、(y>50)=T和F这4个条件的T和F两种情况都覆盖,比如设计两组测试用例,分别覆盖判定
TT和FF(或TF和FT),以及条件tttt和ffff(或ttff和fftt等)就可以了。
如:
x=18,y=60,z=19满足2个判定的TT,以及4个条件的tttt,再设计一组x=?
,y=?
,z=?
满足2个判定的FF,以及4个条件的ffff就可以了。
2•答:
(1)根据程序画出程序控制流图
(2)计算控制流图的环路复杂度
V(G)=略
(3)导出基本路径
A.3-4-24
B.346-8-24
C.略
D.略
(4)
(有多种可能用例/答案)(4分)
设计基本路径覆盖测试用例
路径编号
满足基本路径覆盖的测试用例
num取值
cycle取值
flag取值
A
任一整数,如1
任一小于等于0的整数,
如0
false或true皆可
B
任一整数,如1
任一大于0的整数,如1
必须为true
略
略