软件测试之白盒测试题及答案解读(共9页).doc
精选优质文档-倾情为你奉上#include <iostream.h> /白盒测试测验题目 /程序功能:输入年、月,输出该月份的最大天数void main()12int year, int month;3int maxday = 0;4cin>>year>>month;5if ( month >= 1 && month <= 12 )6 7if ( month = 2 )89if ( year % 4 = 0 )1011if ( year % 100 = 0 )1213if ( year % 400 = 0 )14maxday = 29;15else16maxday = 28;1718else19maxday = 29;2021else22maxday = 28;2324else2526if ( month = 4 | month = 6 | month = 9 | month = 11 )27maxday = 30;28else29maxday = 31;303132cout<<"The MaxDay is:"<<maxday<<endl;33要求:1 画出该程序的程序流程图 0:开始 1 1 22 334 4 55 7 F1T16 6 7 8248 10 F 2 T2 9251211921 27 F3 T 3132610312211 33 F6 T6 32282723 28 141218 29 23 F4 T4 15352429191334163025302015 36 18 F5 T5 14 171637203126211738 22 193239334034:结束 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:开始EGGGGFC ECEEBAF1T1 F2 T2 D DT3 F6 T6 F3LK F4T4GH F5T5 JIM34:结束3 试用路径覆盖法中的语句覆盖、判定覆盖、条件覆盖、判定条件覆盖以及路径覆盖五种方法对上述问题设计测试用例 1.语句覆盖:测试用例编号输入数据预期输出结果覆盖语句yearmonthTC-00120002The MaxDay is:290,1,2,3,4,5,6,7,8,9,10,11,12,13,14,32,33,34TC-00217002The MaxDay is:280,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,32,33,34TC-00316042The MaxDay is:290,1,2,3,4,5,6,7,8,9,10,11,18,19,20,32,33,34TC-00416052The MaxDay is:280,1,2,3,4,5,6,7,8,9,21,22,23,32,33,34TC-00519146The MaxDay is:300,1,2,3,4,5,6,7,24,25,26,27,32,33,34TC-00619147The MaxDay is:310,1,2,3,4,5,6,7,24,25,26,28,29,30,31,32,33,342. 判定覆盖:解释:我在各判断分支的真假分支都编有相应的真假符号,在判定覆盖中用判定分支的真假序号表示;测试用例编号输入数据预期输出结果覆盖判定yearmonthTC-00120002The MaxDay is:29T1,T2,T3,T4,T5TC-00217002The MaxDay is:28T1,T2,T3,T4,F5TC-00316042The MaxDay is:29T1,T2,T3,F4TC-00416052The MaxDay is:28T1,T2,F3TC-00519146The MaxDay is:30T1,F2,T6TC-00619147The MaxDay is:31T1,F2,F6TC-007191414The MaxDay is:0F13. 条件覆盖:(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;测试用例编号输入数据预期输出结果覆盖的条件yearmonthTC-00120000The MaxDay is:0F1TC-002170015The MaxDay is:0T1,F2TC-00320002The MaxDay is:29T1,T2,T3,T4,T5,T6TC-00416054The MaxDay is:30T1,T2,F3,T7TC-00519002The MaxDay is:28T1,T2,T3,T4,T5,F6TC-00616042The MaxDay is:29T1,T2,T3,T4,F5TC-00720132The MaxDay is:28T1,T2,T3,F4TC-00817005The MaxDay is:31T1,T2,F3,F7,F8,F9,F10TC-009160411The MaxDay is:30T1,T2,F3,F7,F8,F9,T10TC-001016059The MaxDay is:30T1,T2,F3,F7,F8,T9TC-001119146The MaxDay is:30T1,T2,F3,F7,T84. 判定条件覆盖:(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; (覆盖的判定语句在程序流程图中有标识)测试用例编号输入数据预期输出结果覆盖的条件 覆盖的判定yearmonthTC-00120000The MaxDay is:0F1F1TC-002170015The MaxDay is:0T1,F2F1TC-00320002TheMaxDay is:29T1,T2,T3,T4,T5,T6T1,T2,T3,T4,T5TC-00416054TheMaxDay is:30T1,T2,F3,T7T1,F2,T6TC-00519002TheMaxDayis: 28T1,T2,T3,T4,T5,F6T1,T2,T3,T4,F5TC-00616042The MaxDay is:29T1,T2,T3,T4,F5T1,T2,T3,F4TC-00720132The MaxDay is:28T1,T2,T3,F4T1,T2,F3TC-00817005The MaxDay is:31T1,T2,F3,F7,F8,F9,F10T1,F2,F6TC-009160411The MaxDay is:30T1,T2,F3,F7,F8,F9,T10T1,F2,T6TC-001016059The MaxDay is:30T1,T2,F3,F7,F8,T9T1,F2,T6TC-001119146The MaxDay is:30T1,T2,F3,F7,T8T1,F2,T65. 路径覆盖:解释:我在控制流程图的各条边上都编了序号,在路径覆盖中覆盖的路径用分支边上的序号表示;测试用例编号输入数据预期输出结果覆盖的路径yearmonthTC-00120002The MaxDay is:291-2-3-4-5-6-8-9-11-13-14-15-16-17-19-39-40TC-00217002The MaxDay is:281-2-3-4-5-6-8-9-11-13-14-15-16-18-20-21-22-39-40TC-00316042The MaxDay is:291-2-3-4-5-6-8-9-11-13-14-23-24-25-26-39-40TC-00416052The MaxDay is:281-2-3-4-5-6-8-9-11-27-28-29-30-39-40TC-00519146The MaxDay is:301-2-3-4-5-6-8-10-12-31-32-34-39-40TC-00619147The MaxDay is:311-2-3-4-5-6-8-10-12-31-33-35-36-37-38-39-40TC-007191414The MaxDay is:01-2-3-4-5-7-39-40 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、读书给人以快乐、给人以光彩、给人以才干。培根