软件测试 对前一日函数的基本路径测试
基本路径测试
实验要求:
请采用基本路径方法对前一日函数进行测试用例设计。
根据互换所得代码,画出流程图,流图,计算圈复杂度,给出独立路径,设计测试用例,执行测试。
比较预期结果和实际运行结果给出测试结论。
流程图:
流图:
计算圈复杂度V(G):
利用公式:V(G) = P +1得,圈复杂度等于判定节点数加一,根据上面画出得控制流图,可以知道:3、4、5、7、11、14、18、19、21、22、25、29是判定节点,共有12个,所以圈复杂度是12 +1 =13。
也可以进行进一步验证,通过控制流图得区域划分也可以得知,共有13个区域,则圈复杂度为13。
给出独立路径:
路径1:1->2->3->8->32
路径2:1->2->3->4->9->32
路径3:1->2->3->4->5->10->32
路径4:1->2->3->4->5->6->11->13->32
路径5:1->2->3->4->5->6->11->7->16->17->18->32
路径6:1->2->3->4->5->6->11->12->14->15->32
路径7:1->2->3->4->5->6->11->12->14->19->21->29->31->32
路径8:1->2->3->4->5->6->11->12->14->19->21->29->30->32
路径9:1->2->3->4->5->6->11->12->14->19->21->22->24->32
路径10:1->2->3->4->5->6->11->12->14->19->21->22->23->25->26->28->32
路径11:1->2->3->4->5->6->11->12->14->19->21->22->23->25->27->28->32
路径12:1->2->3->4->5->6->11->12->14->19->20->32
路径13:1->2->3->4->5->6->11->12->18->15->32
设计测试用例并执行后比较结果:
测试编号 |
Year |
Month |
Day |
预期结果 |
实际结果 |
1 |
2080 |
3 |
1 |
提示请输入正确的年份 |
提示请输入正确的年份 |
2 |
2020 |
15 |
2 |
提示请输入正确的月份 |
提示请输入正确的月份 |
3 |
2020 |
11 |
35 |
提示请输入正确的日子 |
提示请输入正确的日子 |
4 |
2020 |
4 |
31 |
提示请输入正确的日子 |
提示请输入正确的日子 |
5 |
2000 |
2 |
30 |
提示请输入正确的日子 |
提示请输入正确的日子 |
6 |
2001 |
2 |
29 |
提示请输入正确的日子 |
提示请输入正确的日子 |
7 |
2000 |
3 |
1 |
前一天是2000年2月29号 |
前一天是2000年2月29号 |
8 |
2001 |
3 |
1 |
前一天是2001年2月28号 |
前一天是2001年2月28号 |
9 |
2000 |
1 |
1 |
前一天是1999年12月31号 |
前一天是1999年12月31号 |
10 |
2000 |
5 |
3 |
前一天是2000年5月2号 |
前一天是2000年5月2号 |
11 |
2000 |
5 |
1 |
前一天是2000年4月30号 |
前一天是2000年4月30号 |
12 |
2000 |
4 |
1 |
前一天是2000年3月31号 |
前一天是2000年3月31号 |
13 |
2000 |
4 |
3 |
前一天是2000年4月2号 |
前一天是2000年4月2号 |
程序代码:
import java.util.Scanner; public class test1 { public static void main(String args[]){ Scanner input = new Scanner(System.in); //依次输入年月日 System.out.print("请输入日期:"); int year = input.nextInt(); int month=input.nextInt(); int day=input.nextInt(); //判断日期是否输入正规 if (year<1900||year>2020){ System.out.println("请输入正确的年份!!!"); return; } if (month<1||month>12){ System.out.println("请输入正确的月份!!!"); return; } if(day<1||day>31){ System.out.println("请输入正确的日子!!!"); return; } if (month==4||month==6||month==9||month==11){ if (day==31){ System.out.println("请输入正确的日子!!!"); return; } } //判断是闰年还是非闰年,后面会用到 boolean flag = (year%4==0 && year%100!=0 || year%400==0); //判断闰年和平年二月的日期是否输入正确 if (flag){ if (month==2) { if (day>29){ System.out.println("请输入正确的日子!!!"); return; } } }else { if (month==2) { if (day>28){ System.out.println("请输入正确的日子!!!"); return; } } } //计算输入日期的前一天 if (day==1){ //如果是每个月的一号 //如果是3月一号 if (month==3){ if(flag){ System.out.println("前一天是"+year+"年"+"2月"+"29号"); }else { System.out.println("前一天是"+year+"年"+"2月"+"28号"); } }else{ if (month==1){ System.out.println("前一天是"+(year-1)+"年"+"12月"+"31号"); }else { month--; if (month==1||month==3||month==5||month==7||month==8||month==10||month==12){ day=31; }else{ day=30; } System.out.println("前一天是"+year+"年"+month+"月"+day+"号"); } } }else { System.out.println("前一天是"+(year)+"年"+month+"月"+(day-1)+"号"); } } }
测试样例演示:
演示(测试编号1):
演示(测试编号2):
演示(测试编号3):
演示(测试编号4):
演示(测试编号5):
演示(测试编号6):
演示(测试编号7):
演示(测试编号8):
演示(测试编号9):
演示(测试编号10):
演示(测试编号11):
演示(测试编号12):
测试结论:
基于所测试的数据而言,前一日程序系统功能趋于稳定,在实验要求的范围内的测试数据都已经测试完毕且没有问题,本轮测试实验可以结束。
本文来自博客园,作者:王回甘,转载请注明原文链接:https://www.cnblogs.com/WScoconut/p/16407566.html