1、(1)分析各种输入情况,结合程序输出结果,并给出详细测试用例;(2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例;(3)决策表测试法; 列出输入变量month、 day、 year的有效等价类;(条件桩) 分析程序的规格说明,给出问题规定的可能采取操作;(动作桩) 画出决策表(简化); 根据决策表,给出详细测试用例。代码:(被测部分为while循环内部语句)#include using namespace std;int main() int x=1,year, month, day; while(x) 1.int i, num=0,total, total1, total2
2、; 2.coutyear; 4.coutmonth; 6.coutday;/求得输入年份之前一年末的总天数 8.for(i=1; i i+) 9.if(i%4=0)&(i%100!=0)|(i%400=0) 10.num+; 11.total1 = 365*(year-num-1) + 366*num;/求得输入年份的总天数 12.if(year%4=0)&=0)|(year%400=0)/求得输入月份之前一月末的总天数 13.switch(month) case 1:total2 = 0;break; case 2:total2 = 31; case 3:total2 = 60; case
3、4:total2 = 91; case 5:total2 = 121; case 6:total2 = 152; case 7:total2 = 182; case 8:total2 = 213; case 9:total2 = 244; case 10:total2 = 274; case 11:total2 = 305; case 12:total2 = 335; else 14.switch(month) total2 = 59;total2 = 90;total2 = 120;total2 = 151;total2 = 181;total2 = 212;total2 = 243;tot
4、al2 = 273;total2 = 304;total2 = 334;/在加上输入的日,求其总和可得到从公元1年1月1日到输入日期当天的总天数 15.total = total1 + total2 + day; 16.int week; 17. week = total % 7; 18.cout您输入的日期是 19.switch(week) case 0:cout星期天endl; case 1:星期一 case 2:星期二 case 3:星期三 case 4:星期四 case 5:星期五 case 6:星期六 coutx;2、测试用例设计1)控制流图2)环路复杂度计算由图可知,图中的环路有六
5、条,故环路复杂度为六。3)基本路径集设计基本路径集为:A1、2、3、4、5、6、7、8、11、12、14、15、16、17、18、19B1、2、3、4、5、6、7、8、9、11、12、14、15、16、17、18、19C1、2、3、4、5、6、7、8、9、10、11、12、13、15、16、17、18、19D1、2、3、4、5、6、7、8、9、10、11、12、14、15、16、17、18、19注:由源程序代码可知,未走路径10则必定不通过路径13,故省去两条检测路径。4)测试用例集设计测试用例集为:A路径:1-2-26 预期输出:星期一B路径:2-2-2 预期输出:星期六C路径:2010-1
6、1-16 预期输出:星期二D路径:2008-8-6 预期输出:星期三3、插桩后源程序清单与判定覆盖率分析结果 int m1=0,m2=0,m3=0,m4=0,m=15,n=0,f=0; n+;=请输入测试用例= int i, num=0,total, total1, total2,qw;请输入预期输出结果(星期一到星期天,对应输入17):qw;程序运行路径: 1-2-3-4-5-6-7-8 for(i=1; if(i%4=0)& num+; if(i1)-9 if(m1=0)m+;m1=1; if(num0)10 if(m2=0)m+;m2=1; total1 = 365*(year-num-
7、1) + 366*num;11-12 if(year%4=0)&13if(m3=0)m+;m3=1; switch(month)14if(m4=0)m+;m4=1;15-16-17-18-19 total = total1 + total2 + day; int week; week = total % 7;-该测试用例测试结果-测试用例n : 输入year.monthday, 预期输出为: switch(qw%7)星期天, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 实际输出为: switch(week) if(week=qw%7) cout成功!失败! f+; =本次测试用例测试已结束,退出测试请输入0,否则任一输入继续测试=最终对main函数中while内循环语句单元测试结果统计:共执行个测试用例, 总的路径覆盖率:m*100/19%, 其中通过n-f个, 失败f个测试截图见附录三、总结与体会实验中对于路径测试有了更深的理解,可以更好、更迅速的去划分路径,设计测试用例。通过实验,我对软件测试有了进一步的认识和学习,对白盒测试流程有了较清楚的了解,收获很多。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1