ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:216.81KB ,
资源ID:9251917      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9251917.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(白盒测试用例练习.docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

白盒测试用例练习.docx

1、白盒测试用例练习 1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k); //语句块1 } if ( (x==4)||(y>5) ) { j=x*y+10;

2、 } //语句块2 j=j%3; //语句块3 k=0 j=0 k=x*y-1 j=sqrt(k) x>3 and z<10 } a Y c N b x=4 or y>5 e Y j=x*y+10 N d j=j%3 由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程

3、记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、 语句覆盖 测试用例输入 输出 判定M的取值 判定N的取值 覆盖路径 x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) 2、判定覆盖 p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 测试用例输入 输出 判定M的取值 判定N的取值 覆盖路径 x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) x=2,z=11,y=5 k=0,j=0 F F P4(a-b-d)

4、 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 测试用例输入 输出 判定M的取值 判定N的取值 覆盖路径 x=5,z=5,y=4 k=19,j=sqrt(19)%3 T F P2(a-c-d) x=4,z=11,y=6 k=0,j=1 F T P3(a-b-e) 3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y

5、<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 测试用例输入 输出 取值条件 具体取值条件 覆盖路径 x=4,z=5,y=8 k=31, j=0 T1,T2,T3,T4 x>3,z<10,x=4,y>5 P1(a-c-e) x=3,z=11,y=5 k=0, j=0 F1,F2,F3,F4 x<=3,z>=10,x!=4,y<=5 P4(a-b-d) 4、判定/条件覆盖 测试用例输入 输出 取值条件 具体取值条件 覆盖路径 x=4,z=5,y=8 k=31, j=0 T1,T2,T3,T4 x>3,z<10,x=

6、4,y>5 P1(a-c-e) x=3,z=11,y=5 k=0, j=0 F1,F2,F3,F4 x<=3,z>=10,x!=4,y<=5 P4(a-b-d) 5、组合覆盖 条件组合 1)x>3,z<10 2)x>3,z>=10 3) x<=3,z<10 4)x<=3,z>=10 5)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)x!=4,y<=5 测试用例输入 输出 覆盖条件取值 覆盖条件组合 覆盖路径 x=4,z=5,y=6 k=23, j=1 T1,T2,T3,T4 1,5 P1(a-c-e) x=

7、4,z=10,y=5 k=0, j=0 T1,F2,T3,F4 2,6 P2(a-c-d) x=3,z=5,y=6 k=14 j=1 F1,T2,F3,T4 3,7 P3(a-b-e) z=3,z=10,y=5 k=0, j=2 F1,F2,F3,F4 4,8 P4(a-b-d) 6、路径覆盖 测试用例输入 输出 覆盖条件取值 覆盖条件组合 覆盖路径 x=4,z=5,y=8 k=31,j=0 T1,T2,T3,T4 1,5 P1(a-c-e) x=5,z=5,y=4 k=19,j=sqrt(19)%3 T1,T2,F3,F4 1,

8、8 P2(a-c-d) x=4,z=11,y=6 k=0,j=1 T1,F2,T3,T4 2,5 P3(a-b-e) x=2,z=11,y=5 k=0,j=0 F1,F2,F3,F4 4,8 P4(a-b-d) 题目二:三角形问题 在三角形计算中,要求输入三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。 一、核心程序代码 /** 判断三角形的类 */

9、public class TriangleTestMethod { /** 判断三角形的种类。参数a, b, c分别为三角形的三边, * 返回的参数值为0,表示非三角形; * 为1,表示普通三角形; * 为2,表示等腰三角形; * 为3,表示等边三角形。 */ public static int comfirm(int a, int b, int c) { if((a + b > c) && (b + c > a) && (a + c > b)) { // 判断为三角形 if((a == b) && (b ==c)) // 判断为等边三角形 return

10、 3; if((a == b) || (b == c) || (a == c)) // 判断为等腰三角形 return 2; else // 判断为普通三角形 return 1; } else { // 为非三角形 return 0; } } } 二、程序流程图 三、测试用例 1.语句覆盖测试用例 输入 期望输出 覆盖对象 测试结果 Case1 a=1, b=2, c=3 0 ① , ⑤ 0 Case2 a=3, b=4, c=5 1 ① , ②, ④, ⑥ ② 1 Case3

11、 a=3, b=3, c=4 2 ① , ②, ④, ⑦ ② 2 Case4 a=3, b=4, c=5 3 ① , ②, ③ ② 3 2.判定覆盖测试用例 输入 期望输出 覆盖对象 测试结果 Case11 a=1, b=2, c=3 0 ② , ⑤ 0 Case12 a=3, b=4, c=5 1 ③ , ②, ④, ⑥ ④ 1 Case13 a=3, b=3, c=4 2 ③ , ②, ④, ⑦ ④ 2 Case14 a=3, b=4, c=5 3 ③ , ②, ③ ④ 3

12、 3.条件覆盖测试用例 输入 期望输出 覆盖对象 测试结果 Case5 a=1, b=6, c=7 0 F1, T2, T3 0 Case6 a=7, b=1, c=6 0 T1, F2, T3 0 Case7 a=1, b=7, c=6 0 T1, T2, F3 0 Case8 a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6, F7, F8 2 Case9 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8

13、2 Case10 a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 4.条件-判定覆盖测试用例 输入 期望输出 覆盖对象 测试结果 Case15 a=1, b=6, c=7 0 F1, T2, T3 0 Case16 a=7, b=1, c=6 0 T1, F2, T3 0 Case17 a=1, b=7, c=6 0 T1, T2, F3 0 Case18 a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6,

14、 F7, F8 2 Case19 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 Case20 a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 Case21 a=3, b=3, c=3 3 F1, T2, T3 (3 , ②, ③) 3 Case22 a=3, b=4, c=5 1 T1, F2, T3 (①, ②, ④, ⑥) 1 5.条件组合覆盖测试用例 输入 期望输出 覆盖对象 测

15、试结果 Case23 a=1, b=6, c=7 0 F1, T2, T3 0 Case24 a=7, b=1, c=6 0 T1, F2, T3 0 Case25 a=1, b=7, c=6 0 T1, T2, F3 0 Case26 a=3, b=3, c=4 2 T1, T2, T3, T4, F5, T6, F7, F8 2 Case27 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 Case28 a=4, b=3, c=3 2 T

16、1, T2, T3, F4, T5, F6, T7, F8 2 Case29 a=3, b=4, c=5 1 T1, T2, T3, F4, F5, F6, F7, F8 1 Case30 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 备注 其他条件组合,无法到达结束 四、程序控制流图 基本路径覆盖测试用例 输入 期望输出 覆盖对象 测试结果 Case31 a=1, b=6, c=7 0 A->D 0 Case32

17、a=7, b=6, c=1 0 A->B->D 0 Case33 a=1, b=7, c=6 0 A->B->C->D 0 Case34 a=3, b=3, c=3 3 A->B->C->E->G->H 3 Case35 a=3, b=3, c=4 2 A->B->C->E->G->I 2 Case36 a=4, b=3, c=3 2 A->B->C->E->F->H 2 Case37 a=3, b=4, c=3 2 A->B->C->E->F->J->H 2 Case38

18、a=3, b=4, c=5 1 A->B->C->E->F->J->K 1 题目三:计算生日是星期几 已知公元1年1月1日是星期一。编写一个程序,只要输入年月日,就能回答那天是星期几。应用逻辑覆盖方法和基路径测试方法为上面的问题设计测试用例 一.程序代码 #include int check(int year,int month,int day){ int pass=1; int leap=0; if( (year%4==0 && year%100!=0 )|| year%400==0 ) leap=1;

19、 if(year<1 ||day<1) return 0; switch(month) { case 1:case 3:case 5:case 7:case 8:case 10:case 12:if(day>31)return 0;break; case 4:case 6:case 9:case 11:if(day>30) return 0; break; case 2: if(leap==1&&day>29) {return 0;} if(leap==0&&day>28){return 0;} break;

20、 default:return 0;break; } return pass; } void fun(){ int year,month,day,sumday; sumday=0; printf("input year,month,day:\n"); scanf("%d%d%d",&year,&month,&day); if(check(year,month,day)==0){printf("输入的日期无效");return;} if(month==1||month==2) { month+=12; year--;

21、 } sumday=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7; if(month==13||month==14) { month-=12; year++;} switch(sumday) {case 0:printf("%d-%d-%d is Monday\n",year,month,day);break; case 1:printf("%d-%d-%d is Tuesday\n",year,month,day);break; case 2:printf("%d-%d-%d is Wednesd

22、ay\n",year,month,day);break; case 3:printf("%d-%d-%d is Thurday\n",year,month,day);break; case 4:printf("%d-%d-%d is Friday\n",year,month,day);break; case 5:printf("%d-%d-%d is Saturday\n",year,month,day);break; case 6:printf("%d-%d-%d is Sunday\n",year,month,day);break; default:printf("dat

23、e error");break; } } main() { for(int i=0;i<14;i++) fun(); } 二.画出程序的控制流图 1.程序流程图如下: month==13||month==14 no month==1||month==2 yes month+=12; year--; 计算星期数sumday=公式(year,month,day) no yes Month-=12; year++; 5 4 6 0 1 2 3 4 5 6 其他 sumday 输出语句1 输出语句2

24、输出语句3 输出语句4 输出语句5 输出语句6 输出语句7 输出语句0 结束 7 8 9 10 11 12 13 14 15 15 输入年月日year,month,day 2 3 end Check(year,month,day) 0 1 Check( )函数 no no no yes yes 得到year,month,day year<1 ||day<1 no (year%4==0 && year%100!=0 )|| year%400==0 1 3 5 7 8 10 12 4 6 9 11

25、2 其他 month return pass pass=1; leap=0; leap=1; return 0 day>31 day>30 return 0 no yes return 0 yes leap==1&&day>29 leap==0&&day>28 return 0 16 18 17 19 20 21 22 23 24 25 26 28 29 28 27 31 30 32 33 2.程序控制流图如下: 16 19 17 21 22 23 24 31 33 34 end

26、 15 2 4 3 5 8 7 6 12 end 9 10 11 13 14 3.用基本路径的测试路径 编号 基本路径 编号 基本路径 1 ⒃⒄⒆(21)(24)(31)(33) 11 (0)① 2 ⒃⒆(34) 12 (0)②③④⑤⑥⑦⑧ 3 ⒃⒆(21)(34) 13 (0)②④⑤⑦⑨ 4 ⒃⒆(21)(22)(34) 14 (0)②④⑤⑦⑩ 5 ⒃⒆(21)(23)(34) 15 (0)②④⑤⑦(11) 6 ⒃⒆(21)(24)(34) 16 (0)②④⑤⑦(12) 7 ⒃⒆(21)(31)(3

27、4) 17 (0)②④⑤⑦(13) 8 ⒃⒆(21)(22)(33) 18 (0)②④⑤⑦(14) 9 ⒃⒆(21)(23)(33) 10 ⒃⒆(21)(31)(33) 条件: 编号 条件 编号 编号 T1 month==1 T13 year%100!=0 T25 month==2 T2 month==2 T14 year%100!=0 T26 month==3 T3 month==13 T15 year%400==0 T27 month==4 T4 month==14 T16 year<1 T28

28、month==5 T5 sumday==0 T17 day<1 T29 month==6 T6 sumday==1 T18 month==1 T30 month==7 T7 sumday==2 T19 day>31 T31 month==8 T8 sumday==3 T20 day>30 T32 month==9 T9 sumday==4 T21 leap==1 T33 month==10 T10 sumday==5 T22 leap==0 T34 month==11 T11 sumday==6 T23 day>2

29、9 T35 month==12 T12 year%4==0 T24 day>28 4.测试用例 用例编号 输入的数据 预期的输出 实际的输出 执行的路径 覆盖的条件 1 2012 2 1 Wednesday Wednesday (0)②③④⑤⑥⑦⑧ T12,T13,T25,T21,T2,T4,T7 2 2012 3 1 Thurday Thurday (0)②④⑤⑦⑨ T12,T13,T26,T8 3 2012 4 6 Friday Friday (0)②④⑤⑦⑩ T12,T13,T27,T9 4 2012 5 5

30、 Saturday Saturday (0)②④⑤⑦(11) T12,T13,T28,T10 5 2012 6 3 Sunday Sunday (0)②④⑤⑦(12) T12,T13,T29,T11 6 2012 7 30 Monday Monday (0)②④⑤⑦(13) T12,T13,T30,T5 7 2000 8 15 Tuesday Tuesday (0)②④⑤⑦(14) T12,T15,T31,T6 8 2012 9 31 错误提示 错误提示 (0)① T12,T13,T20,T32 9 2013 2 8 Wednesd

31、ay Wednesday ⒃⒄⒆(21)(24)(31)(33) T25,T22,T2,T4,T7 10 2013 0 12 错误提示 错误提示 ⒃⒆(34) T17 11 2013 1 26 Saturday Saturday ⒃⒆(21)(34) T18,T1,T3,T10 12 2013 10 33 错误提示 错误提示 ⒃⒆(21)(22)(34) T33,T19 13 2013 11 31 错误提示 错误提示 ⒃⒆(21)(23)(34) T34,T20 14 2012 2 30 错误提示 错误提示 ⒃⒆(21)(24)

32、34) T12,T13,T25,T21,T23 15 2013 2 29 错误提示 错误提示 ⒃⒆(21)(31)(34) T25,T24 16 2013 12 31 Saturday Saturday ⒃⒆(21)(22)(33) T35,T10 17 2013 6 30 Sunday Sunday ⒃⒆(21)(23)(33) T29,T11 18 2013 2 15 Friday Friday ⒃⒆(21)(24)(31)(33) T25,T22,T2,T4,T9 19 0 12 12 错误提示 错误提示 ⒃⒆(34) T

33、16 题目四:选择排序 下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):: void SelectSort ( datalist & list ) { /对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。 for ( int i = 0; i < list.n-1; i++ ) { int k =

34、 i; //在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象 for ( int j = i+1; j < list.n; j++) if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j;//当前具最小关键码的对象 if ( k != i ) Swap ( list.V[i], list.V[k] ); //交换 } } (1) 试计算此程序段的McCabe复杂性; (2) 用基本路径覆盖法给出测试路

35、径; (3) 为各测试路径设计测试用例。 解答如下: 首先画出程序的流程图 开始 i = 0 i < list.n-1 j++ k = i j < list.n k = j k != i Swap ( list.V[i], list.V[k] ) list.V[j] < list.V[k] i++ 结束 j = i+1 Y N N N N Y Y Y 程序流程图 (1)McCabe复杂性为: V(G)=判定节点数+1=4+1=5 (2)用基本路径覆盖法给出测试路径: 1 2 3 4 5 6 7 8 9 10

36、11 12 程序图 0 从以上程序图中确定无关的基本路径: Path1:0-1-2-12 Path2: 0-1-2-3-4-5-9-11 Path3: 0-1-2-3-4-5-9-10-11 Path4: 0-1-2-3-4-5-6-8 Path5: 0-1-2-3-4-5-6-7-8 (3)为各测试路径设计测试用例: 由于节点2和节点5判定条件是等价的,所以Path2和Path3不可直达。 A={1},n=1 路径:0-1-2-12 A={1,2},n=2 路径:0-1-2-3-4-5-6-8-5-9-11-2-12 A={2,1},n=2 路径:0-1-2-3-4-5-6-7-8-5-9-10-11-2-12 A={1,3,2 },n=3 路径:0-1-2-3-4-5-6-8-5-9-11-2-3-4-5-6-7-8-5-9-10-11-2-12

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服