软件测试之白盒测试题及答案解读

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#includeiostream.h//白盒测试测验题目//程序功能:输入年、月,输出该月份的最大天数voidmain()1{2intyear,intmonth;3intmaxday=0;4cinyearmonth;5if(month=1&&month=12)6{7if(month==2)8{9if(year%4==0)10{11if(year%100==0)12{13if(year%400==0)14maxday=29;15else16maxday=28;17}18else19maxday=29;20}21else22maxday=28;23}24else25{26if(month==4||month==6||month==9||month==11)27maxday=30;28else29maxday=31;30}31}32coutTheMaxDayis:maxdayendl;33}要求:1.画出该程序的程序流程图123457F1T16810F2T29121127F3T3133133F6T63228142923F4T4153524341630253618F5T5173720262138221939400:开始12345679810111213141516171819202122232425262728293031323334:结束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};F1T1F2T2T3F6T6F3F4T4F5T50:开始ABDDCECEEFEGGGGHGJKLM34:结束I3.试用路径覆盖法中的语句覆盖、判定覆盖、条件覆盖、判定条件覆盖以及路径覆盖五种方法对上述问题设计测试用例1.语句覆盖:测试用例编号输入数据预期输出结果覆盖语句yearmonthTC-00120002TheMaxDayis:290,1,2,3,4,5,6,7,8,9,10,11,12,13,14,32,33,34TC-00217002TheMaxDayis:280,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,32,33,34TC-00316042TheMaxDayis:290,1,2,3,4,5,6,7,8,9,10,11,18,19,20,32,33,34TC-00416052TheMaxDayis:280,1,2,3,4,5,6,7,8,9,21,22,23,32,33,34TC-00519146TheMaxDayis:300,1,2,3,4,5,6,7,24,25,26,27,32,33,34TC-00619147TheMaxDayis:310,1,2,3,4,5,6,7,24,25,26,28,29,30,31,32,33,342.判定覆盖:解释:我在各判断分支的真假分支都编有相应的真假符号,在判定覆盖中用判定分支的真假序号表示;测试用例编号输入数据预期输出结果覆盖判定yearmonthTC-00120002TheMaxDayis:29T1,T2,T3,T4,T5TC-00217002TheMaxDayis:28T1,T2,T3,T4,F5TC-00316042TheMaxDayis:29T1,T2,T3,F4TC-00416052TheMaxDayis:28T1,T2,F3TC-00519146TheMaxDayis:30T1,F2,T6TC-00619147TheMaxDayis:31T1,F2,F6TC-007191414TheMaxDayis: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-00120000TheMaxDayis:0F1TC-002170015TheMaxDayis:0T1,F2TC-00320002TheMaxDayis:29T1,T2,T3,T4,T5,T6TC-00416054TheMaxDayis:30T1,T2,F3,T7TC-00519002TheMaxDayis:28T1,T2,T3,T4,T5,F6TC-00616042TheMaxDayis:29T1,T2,T3,T4,F5TC-00720132TheMaxDayis:28T1,T2,T3,F4TC-00817005TheMaxDayis:31T1,T2,F3,F7,F8,F9,F10TC-009160411TheMaxDayis:30T1,T2,F3,F7,F8,F9,T10TC-001016059TheMaxDayis:30T1,T2,F3,F7,F8,T9TC-001119146TheMaxDayis: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-00120000TheMaxDayis:0F1F1TC-002170015TheMaxDayis:0T1,F2F1TC-00320002TheMaxDayis:29T1,T2,T3,T4,T5,T6T1,T2,T3,T4,T5TC-00416054TheMaxDayis:30T1,T2,F3,T7T1,F2,T6TC-00519002TheMaxDayis:28T1,T2,T3,T4,T5,F6T1,T2,T3,T4,F5TC-00616042TheMaxDayis:29T1,T2,T3,T4,F5T1,T2,T3,F4TC-00720132TheMaxDayis:28T1,T2,T3,F4T1,T2,F3TC-00817005TheMaxDayis:31T1,T2,F3,F7,F8,F9,F10T1,F2,F6TC-009160411TheMaxDayis:30T1,T2,F3,F7,F8,F9,T10T1,F2,T6TC-001016059TheMaxDayis:30T1,T2,F3,F7,F8,T9T1,F2,T6TC-001119146TheMaxDayis:30T1,T2,F3,F7,T8T1,F2,T65.路径覆盖:解释:我在控制流程图的各条边上都编了序号,在路径覆盖中覆盖的路径用分支边上的序号表示;测试用例编号输入数据预期输出结果覆盖的路径yearmonthTC-00120002TheMaxDayis:291-2-3-4-5-6-8-9-11-13-14-15-16-17-19-39-40TC-00217002TheMaxDayis:281-2-3-4-5-6-8-9-11-13-14-15-16-18-20-21-22-39-40TC-00316042TheMaxDayis:291-2-3-4-5-6-8-9-11-13-14-23-24-25-26-39-40TC-00416052TheMaxDayis:281-2-3-4-5-6-8-9-11-27-28-29-30-39-40TC-00519146TheMaxDayis:301-2-3-4-5-6-8-10-12-31-32-34-39-40TC-00619147TheMaxDayis:311-2-3-4-5-6-8-10-12-31-33-35-36-37-38-39-40TC-007191414TheMaxDayis:01-2-3-4-5-7-39-404.用三种方法求出上述问题的圈复杂度(基路径数量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、我所学到的任何有价值的知识都是由自学中得来的。——

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功