基本路径测试
实验要求:
请采用基本路径方法对前一日函数进行测试用例设计。
根据互换所得代码,画出流程图,流图,计算圈复杂度,给出独立路径,设计测试用例,执行测试。
比较预期结果和实际运行结果给出测试结论。
流程图:
流图:
计算圈复杂度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 (year2020){
System.out.println("请输入正确的年份!!!");
return;
}
if (month12){
System.out.println("请输入正确的月份!!!");
return;
}
if(day31){
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 ):
测试结论:
基于所测试的数据而言,前一日程序系统功能趋于稳定,在实验要求的范围内的测试数据都已经测试完毕且没有问题,本轮测试实验可以结束。
Original: https://www.cnblogs.com/WScoconut/p/16407566.html
Author: 王回甘
Title: 软件测试 对前一日函数的基本路径测试
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/571251/
转载文章受原作者版权保护。转载请注明原作者出处!