您的当前位置:首页正文

白盒测试

2023-04-25 来源:客趣旅游网


实验二 白盒测试

一.实验目的

能熟练应用白盒测试技术设计测试用例; 二.实验内容

计算生日是星期几

已知公元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;

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; 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\

if(check(year,month,day)==0){printf(\"输入的日期无效\");return;} if(month==1||month==2) { month+=12; year--; }

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\case 1:printf(\"%d-%d-%d is Tuesday\\n\case 2:printf(\"%d-%d-%d is Wednesday\\n\case 3:printf(\"%d-%d-%d is Thurday\\n\case 4:printf(\"%d-%d-%d is Friday\\n\case 5:printf(\"%d-%d-%d is Saturday\\n\case 6:printf(\"%d-%d-%d is Sunday\\n\default:printf(\"date error\");break; } }

main()

{ for(int i=0;i<14;i++) fun(); }

四.画出程序的控制流图

1.程序流程图如下:

输入年月日year,month,day 0 Check(year,month,day) 1 2 yes month==1||month==2 3 no 4 month+=12; year--; 计算星期数sumday=公式(year,month,day) 5 yes month==13||month==14 6 Month-=12; no year++; 7 sumday 0 1 2 3 4 5 6 其他 8 9 10 11 15 12 13 14 输输输输输输输输出出出出出出出出语语语语语语语语句0 句句1 2 句句句句句3 4 5 6 7 15 结束 end

Check( )函数 得到year,month,day pass=1; leap=0; 16 (year%4==0 && year%100!=0 )|| year%400==0 yes 17 no 18 leap=1; 19 year<1 ||day<1 20 21 month return 0 1 3 5 7 8 10 12 4 6 9 11 2 其他 22 23 25 return 0 yes day>31 26 27 return 0 day>30 24 leap==1&&day>29 yes 28 return 0 no 28 no 29 30 no 31 leap==0&&day>28 yes no 32 return pass 33

2.程序控制流图如下:

16 17 19 21 22 24 23 31 33 34 end

2 3 4 5 6 7 8 9 10 11 12 13 14 15 end

3.用基本路径的测试路径

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

条件: 编号 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 条件 month==1 month==2 month==13 month==14 sumday==0 sumday==1 sumday==2 sumday==3 sumday==4 sumday==5 sumday==6 year%4==0 编号 T13 T14 T15 T16 T17 T18 T19 T20 T21 T22 T23 T24 year%100!=0 year%100!=0 year%400==0 year<1 day<1 month==1 day>31 day>30 leap==1 leap==0 day>29 day>28 编号 T25 T26 T27 T28 T29 T30 T31 T32 T33 T34 T35 month==2 month==3 month==4 month==5 month==6 month==7 month==8 month==9 month==10 month==11 month==12

4.测试用例

用例输入的数据 编号 1 2012 2 1 2 2012 3 1 3 2012 4 6 4 2012 5 5 5 2012 6 3 6 2012 7 30 7 2000 8 15 8 2012 9 31 9 2013 2 8 10 2013 0 12 11 2013 1 26 12 2013 10 33 13 2013 11 31 14 2012 2 30 15 2013 2 29 16 2013 12 31 17 2013 6 30 18 2013 2 15 19 0 12 12 预期的输出 实际的输出 执行的路径 Wednesday Thurday Friday Saturday Sunday Monday Tuesday 错误提示 Wednesday 错误提示 Saturday 错误提示 错误提示 错误提示 错误提示 Saturday Sunday Friday 错误提示 Wednesday Thurday Friday Saturday Sunday Monday Tuesday 错误提示 Wednesday 错误提示 Saturday 错误提示 错误提示 错误提示 错误提示 Saturday Sunday Friday 错误提示 (0)②③④⑤⑥⑦⑧ (0)②④⑤⑦⑨ (0)②④⑤⑦⑩ (0)②④⑤⑦(11) (0)②④⑤⑦(12) (0)②④⑤⑦(13) (0)②④⑤⑦(14) (0)① ⒃⒄⒆(21)(24)(31)(33) ⒃⒆(34) ⒃⒆(21)(34) ⒃⒆(21)(22)(34) ⒃⒆(21)(23)(34) ⒃⒆(21)(24)(34) ⒃⒆(21)(31)(34) ⒃⒆(21)(22)(33) ⒃⒆(21)(23)(33) ⒃⒆(21)(24)(31)(33) ⒃⒆(34) 覆盖的条件 T12,T13,T25,T21,T2,T4,T7 T12,T13,T26,T8 T12,T13,T27,T9 T12,T13,T28,T10 T12,T13,T29,T11 T12,T13,T30,T5 T12,T15,T31,T6 T12,T13,T20,T32 T25,T22,T2,T4,T7 T17 T18,T1,T3,T10 T33,T19 T34,T20 T12,T13,T25,T21,T23 T25,T24 T35,T10 T29,T11 T25,T22,T2,T4,T9 T16

因篇幅问题不能全部显示,请点此查看更多更全内容