软件测试之白盒测试题及答案解读
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
#include //白盒测试测验题目 //程序功能:输入年、月,输出该月份的最大天数 void main() 1{ 2 int year, int month; 3 int maxday = 0; 4 cin>>year>>month; 5 if ( month >= 1 && month <= 12 ) 6 { 7 if ( month == 2 ) 8 { 9 if ( year % 4 == 0 ) 10 { 11 if ( year % 100 == 0 ) 12 { 13 if ( year % 400 == 0 ) 14 maxday = 29; 15 else 16 maxday = 28; 17 } 18 else 19 maxday = 29; 20 } 21 else 22 maxday = 28; 23 } 24 else 25 { 26 if ( month == 4 || month == 6 || month == 9 || month == 11 ) 27 maxday = 30; 28 else 29 maxday = 31; 30 } 31 } 32 cout<<"The MaxDay is:"<33} 要求:
1. 画出该程序的程序流程图
0:开始
1
1 2
2
3
3
4
4
5 7 F1
5
T1 6
6
8
7
10 F 2 T2 9
8 24
12 11 25
9
27 F3 T 313 31 21 26 10 33 F6 T6 32
22 28 14 11 28 27 29 23 F4 T4 15
23
35 24 12 18 34 16
29 19 13 30 25 36 18 F5 T5
20
30 15 17
14 37 20
26 21 16
31
17 38
22 19 32 39
33
40 34:结束
2. 画出该程序的DD路径图
转换后的(D-D图): A:{1-5}; B:{6-7};C:{8-9}; D:{24-26};E:{10-11}; F:{21-23}; G:{12-13}; H:{18-20}; I:{14};J:{15-17};K:{27}; L:{28-31}; M:{32-33}; 0:开始 F1
A
T1 B
F2 T2
C D
T3
F6 T6 F3 F L K F4
H
E
T4 G
T5 I
F5
J
M
34:结束
3. 试用路径覆盖法中的语句覆盖、判定覆盖、条件覆盖、判定条件覆盖以及路径覆盖五种方法对上
述问题设计测试用例 1.语句覆盖: 测试用例编号
year
TC-001
2000
输入数据
month 2
The MaxDay is:29
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,32,33,34
0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,32,33,34
预期输出结果
覆盖语句
TC-002 1700 2 The MaxDay is:28
TC-003 1604 2 The MaxDay is:29
0,1,2,3,4,5,6,7,8,9,10,11,18,19,20,32,33,34
TC-004 1605 2 The MaxDay is:28
0,1,2,3,4,5,6,7,8,9,21,22,23,32,33,34
TC-005 1914 6 The MaxDay is:30
0,1,2,3,4,5,6,7,24,25,26,27,32,33,34
TC-006 1914 7 The MaxDay is:31
0,1,2,3,4,5,6,7,24,25,26,28,29,30,31,32,33,34
2.判定覆盖:
解释:我在各判断分支的真假分支都编有相应的真假符号,在判定覆盖中用判定分支的真假序号表示; 测试用例编号
year
TC-001 TC-002
2000 1700
输入数据
month 2 2
The MaxDay is:29 The MaxDay is:28
T1,T2,T3,T4,T5 T1,T2,T3,T4,F5
T1,T2,T3,F4
T1,T2,F3 T1,F2,T6 T1,F2,F6 F1
预期输出结果
覆盖判定
TC-003 TC-004 TC-005 TC-006 TC-007
1604 1605 1914 1914 1914
2 2 6 7 14
The MaxDay is:29 The MaxDay is:28 The MaxDay is:30 The MaxDay is:31 The MaxDay is:0
3.条件覆盖:
(1)在判定语句5中有以下条件:
1.month >= 1 ; 2.month <= 12 ; (2)在判定语句7中有以下条件: 3.month == 2;
(3)在判定语句9中有以下条件:
4.year % 4 == 0;
(4)在判定语句11中有以下条件: 5.year % 100 == 0;
(5)在判定语句13中有以下条件: 6. year % 400 == 0;
(6)在判定语句26中有以下条件:
7. month == 4 ;8.month == 6 ;9.month == 9 ;10.month == 11;
测试用例编号
year
TC-001 TC-002 TC-003 TC-004 TC-005
2000 1700 2000 1605 1900
输入数据
month 0 15 2 4 2
The MaxDay is:0 The MaxDay is:0 The MaxDay is:29 The MaxDay is:30 The MaxDay is:28
F1 T1,F2
T1,T2,T3,T4,T5,T6 T1,T2,F3,T7
T1,T2,T3,T4,T5,F6
预期输出结果
覆盖的条件
TC-006 TC-007 TC-008 TC-009 TC-0010 TC-0011
1604 2013 1700 1604 1605 1914
2 2 5 11 9 6
The MaxDay is:29 The MaxDay is:28 The MaxDay is:31 The MaxDay is:30 The MaxDay is:30 The MaxDay is:30
T1,T2,T3,T4,F5 T1,T2,T3,F4 T1,T2,F3,F7,F8,F9,F10 T1,T2,F3,F7,F8,F9,T10 T1,T2,F3,F7,F8,T9 T1,T2,F3,F7,T8
4.判定条件覆盖:
(1)在判定语句5中有以下条件:
1.month >= 1 ; 2.month <= 12 ; (2)在判定语句7中有以下条件: 3.month == 2;
(3)在判定语句9中有以下条件:
4.year % 4 == 0;
(6)在判定语句11中有以下条件: 5.year % 100 == 0;
(7)在判定语句13中有以下条件: 6. year % 400 == 0;
(6)在判定语句26中有以下条件:
7. month == 4 ;8.month == 6 ;9.month == 9 ;10.month == 11; (覆盖的判定语句在程序流程图中有标识) 测试用例编号 TC-001 TC-002 TC-003 TC-004 TC-005 TC-006 TC-007 TC-008 TC-009 TC-0010 TC-0011
year 2000 1700 2000 1605 1900 1604 2013 1700 1604 1605 1914
输入数据
month 0 15 2 4 2 2 2 5 11 9 6
The MaxDay is:0 The MaxDay is:0 TheMaxDay is:29 TheMaxDay is:30
F1 T1,F2
T1,T2,T3,T4,T5,T6
F1 F1
T1,T2,T3,T4,T5
T1,T2,T3,T4,F5
T1,T2,T3,F4
预期输出结果
覆盖的条件
覆盖的判定
T1,T2,F3,T7 T1,F2,T6
TheMaxDayis: 28 T1,T2,T3,
T4,T5,F6 The MaxDay is:29 The MaxDay is:28 The MaxDay is:31 The MaxDay is:30 The MaxDay is:30 The MaxDay is:30
T1,T2,T3,T4,F5 T1,T2,F3,F7,F8,F9,F10 T1,T2,F3,F7,F8,F9,T10 T1,T2,F3,F7,F8,T9
T1,T2,F3,F7,T8
T1,T2,T3,F4 T1,T2,F3
T1,F2,F6 T1,F2,T6 T1,F2,T6 T1,F2,T6
5.路径覆盖:
解释:我在控制流程图的各条边上都编了序号,在路径覆盖中覆盖的路径用分支边上的序号表示;
测试用例编号 TC-001 TC-002
year 2000 1700
输入数据
month 2 2
预期输出结果
The MaxDay is:29 The MaxDay is:28
覆盖的路径
1-2-3-4-5-6-8-9-11-13-14-15-16-17-19-39-40 1-2-3-4-5-6-8-9-11-13-14-15-16-18-20-21-22-39-40
1-2-3-4-5-6-8-9-11-13-14-23-24-25-26-39-40 1-2-3-4-5-6-8-9-11-27-28-29-30-39-40
1-2-3-4-5-6-8-10-12-31-32-34-39-40
1-2-3-4-5-6-8-10-12-31-33-35-36-37-38-39-40 1-2-3-4-5-7-39-40
TC-003 TC-004 TC-005 TC-006 TC-007
1604 1605 1914 1914 1914
2 2 6 7 14
The MaxDay is:29 The MaxDay is:28 The MaxDay is:30 The MaxDay is:31 The MaxDay is:0
4. 用三种方法求出上述问题的圈复杂度(基路径数量V(G)) 方法一:判定()结点个数计算法:V(G)=p+1;在此D-D图中,判定结点个数为P=6;V(G)=6+1=7;方法二:.圈数计算法:V(G)= 圈数+1;该D-D图中,圈数为6;V(G)=6+1=7;
方法三:根据连通图公式计算:V(G)=E-N+2p;E是D-D图中边的个数, N是D-D图中结点的个数,p是连通图的个数,p一般等于1;在该图中E=40,N=35,p=1; V(G)=E-N+2p=40-35+2=7; 5. 写出上述问题的基路径测试方法所采用的基路径,写明过程
过程: 首先我根据D-D路径来寻找基路径,找到一条最长的路径为路径1,再根据路径1中的 第一个分 支结点A寻找其他没走过的路,这条路为路径2, 此时遍历完了分支结点A,再在路径1中找第2个分支结点为B,根据分支结点B找到路径3,同理我们在路径1中还有分支结点C,E,G,它们可以找到路径4,路径5和路径6,此时我们会发现已经查找完了5个分支结点,只剩下分支结点D未被遍历,我们根据分支结点D可以找到路径7,此时所有的基路径就已经全部找到的。
基路径分别为:
路径1:0-A-B-C-E-G-I-M-34; 路径2:0-A-M-34;
路径3:0-A-B-D-K-M-34; 路径4:0-A-B-C-F-M-34; 路径5:0-A-B-C-E-H-M-34; 路径6:0-A-B-C-E-G-J-M-34; 路径7:0-A-B-D-L-M-34;
6. 找出变量maxday的定义节点、使用节点以及定义使用路径并判断其是否为定义清除路径
1.1定义结点为:{3,14,16,19,22,27,29}; 1.2 使用结点为:{32}; 1.3 定义使用路径:(1)3-4-5-6-7-8-9-10-11-12-13-14-32;(2)3-4-5-6-7-8-9-10-11-12-13-15-16-17-32; (3)3-4-5-6-7-8-9-10-11-18-19-20-32;(4)3-4-5-6-7-8-9-21-22-23-32;(5)3-4-5-6-7-24-25-26-27-32; (6)3-4-5-6-7-24-25-26-28-29-30-31-32;(7)3-4-5-32;(8)14-32;(9)16-17-32;(10)13-20-32; (11)22-23-32;(12)27-32;(13)29-30-31-32; 1.4定义清除路径:(1)3-4-5-32;(2)14-32;(3)16-17-32;(4)13-20-32;(5)22-23-32; (6)27-32;(7)29-30-31-32;
1.5问题分析:
1.定义结点7个,为语句3,14,16,19,22,27,29,且均被使用,所以不存在变量被定义但未被使用的情况;
2.使用结点有1个,且被定义,使用结点均能和定义结点连接形成一条路,所以不存在变量使用
前未被定义的情况;
3.定义使用路径为13条,定义清除路径为7条,定义使用路径不等于定义清除路径,所以存在变
量使用前被定义两次的情况;
综合以上三个方面的讨论分析,可以得出对于maxday的定义是有问题的,存在使用前被定义两
次的情况。
读书的好处
1、行万里路,读万卷书。
2、书山有路勤为径,学海无涯苦作舟。 3、读书破万卷,下笔如有神。
4、我所学到的任何有价值的知识都是由自学中得来的。——达尔文 5、少壮不努力,老大徒悲伤。
6、黑发不知勤学早,白首方悔读书迟。——颜真卿 7、宝剑锋从磨砺出,梅花香自苦寒来。 8、读书要三到:心到、眼到、口到 9、玉不琢、不成器,人不学、不知义。 10、一日无书,百事荒废。——陈寿 11、书是人类进步的阶梯。
12、一日不读口生,一日不写手生。
13、我扑在书上,就像饥饿的人扑在面包上。——高尔基 14、书到用时方恨少、事非经过不知难。——陆游 15、读一本好书,就如同和一个高尚的人在交谈——歌德 16、读一切好书,就是和许多高尚的人谈话。——笛卡儿 17、学习永远不晚。——高尔基
18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向 19、学而不思则惘,思而不学则殆。——孔子
20、读书给人以快乐、给人以光彩、给人以才干。——培根
本文来源:https://www.wddqw.com/doc/f64d782551ea551810a6f524ccbff121dd36c52f.html