白盒测试:NextDate的基本路径覆盖法以及测试用例设计
程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤ year ≤2050。),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。
一:测试用例设计。
被测代码:
/**
Created by IntelliJ IDEA.
User: Starfall
Date: 2022/11/16
Time: 18:10
*/
public class GetNextDay {
public static String getNextDay(int year, int month, int day)
{
//闰年、平年每月的天数
int[][] days={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};
int index;
if(1900 <= year && 2050>= year ) {
if(year%4==0 && year%100!=0 || year%400==0)
index = 1;
//index=0:平年,index=1:闰年
else
index = 0;
}
else return "输入日期不正确";
//判断输入日期是否正确
if( month<1 || month>12 || day>days[index][month-1]|| day<1)
return "输入日期不正确";
//小于当前月份的天数
if(day < days[index][month-1])
day++;
else
{
if(month==12)
{
year++;
month=1;
}
else
{
month++;
}
day=1;
}
return year + "-" + month + "-" + day;
}
}
1、画出当前程序流程图:
2、根据程序流程图画出控制流图:
3、计算环路复杂度:
1)根据区域计算:V(G)=12
2)根据边数和节点数计算:V(G)=E-N+2=29-19+2=12
3)根据判断节点数计算:V(G)=P+1=11+1=12
4、确定独立路径集合:
独立路径条数为V(G),即为12条:
路径1:1-2-3-7-19
路径2:1-2-7-19
路径3:1-2-3-4-5-8-10-7-19
路径4:1-2-3-4-6-8-10-7-19
路径5:1-2-3-4-6-9-10-7-19
路径6:1-2-3-4-5-6-8-10-7-19
路径7:1-2-3-4-6-8-10-11-7-19
路径8:1-2-3-4-6-8-10-11-12-7-19
路径9:1-2-3-4-6-8-10-11-12-13-7-19
路径10:1-2-3-4-6-8-10-11-12-13-14-15-19
路径11:1-2-3-4-6-8-10-11-12-13-14-16-17-19
路径12:1-2-3-4-6-8-10-11-12-13-14-16-18-19
二:用设计的测试用例测试程序。
1、根据基本路径,准备测试用例:
2、编写测试程序:
GetNextDayTest代码:
import org.junit.Assert;
import org.junit.Test;
/**
Created by IntelliJ IDEA.
User: Starfall
Date: 2022/11/16
Time: 18:16
*/
public class GetNextDayTest {
@Test
public void GetNextDaytest01() {
String GetNextDate = GetNextDay.getNextDay(2051,1,1);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest01:"+GetNextDate);
}
@Test
public void GetNextDaytest02() {
String GetNextDate = GetNextDay.getNextDay(1800,10,10);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest02:"+GetNextDate);
}
@Test
public void GetNextDaytest03() {
String GetNextDate = GetNextDay.getNextDay(2020,11,31);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest3:"+GetNextDate);
}
@Test
public void GetNextDaytest04() {
String GetNextDate = GetNextDay.getNextDay(2000,11,31);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest04:"+GetNextDate);
}
@Test
public void GetNextDaytest05() {
String GetNextDate = GetNextDay.getNextDay(1900,2,29);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest05:"+GetNextDate);
}
@Test
public void GetNextDaytest06() {
String GetNextDate = GetNextDay.getNextDay(2022,2,30);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest06:"+GetNextDate);
}
@Test
public void GetNextDaytest07() {
String GetNextDate = GetNextDay.getNextDay(2022,0,0);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest07:"+GetNextDate);
}
@Test
public void GetNextDaytest08() {
String GetNextDate = GetNextDay.getNextDay(2022,13,11);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest08:"+GetNextDate);
}
@Test
public void GetNextDaytest09() {
String GetNextDate = GetNextDay.getNextDay(2022,11,0);
Assert.assertEquals("输入日期不正确", GetNextDate);
System.out.println("GetNextDaytest09:"+GetNextDate);
}
@Test
public void GetNextDaytest10() {
String GetNextDate = GetNextDay.getNextDay(2022,11,10);
Assert.assertEquals("2022-11-11", GetNextDate);
System.out.println("GetNextDaytest10:"+GetNextDate);
}
@Test
public void GetNextDaytest11() {
String GetNextDate = GetNextDay.getNextDay(2022,12,31);
Assert.assertEquals("2023-1-1", GetNextDate);
System.out.println("GetNextDaytest11:"+GetNextDate);
}
@Test
public void GetNextDaytest12() {
String GetNextDate = GetNextDay.getNextDay(2022,10,31);
Assert.assertEquals("2022-11-1", GetNextDate);
System.out.println("GetNextDaytest12:"+GetNextDate);
}
}
三:记录测试结果。
1、运行测试:
文章来源:https://www.toymoban.com/news/detail-466703.html
2、运行覆盖测试:
文章来源地址https://www.toymoban.com/news/detail-466703.html
到了这里,关于白盒测试——NextDate函数测试(基本路径覆盖法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!