用JAVA写一个可以计算下一天日期的函数nextDate(),并进行测试 • 1. 编制使用白盒测试方法测试nextDate()函数的测试计划; • 2. 使用代码检查法、逻辑覆盖法、基本路径测试法对函数 nextDate()进行测试
时间: 2024-01-22 13:18:41 浏览: 102
1. 白盒测试方法测试计划:
(1) 代码检查法:
对函数 nextDate() 进行代码检查,检查是否有语法错误、逻辑错误、变量命名规范等问题。
(2) 逻辑覆盖法:
对函数 nextDate() 的每个分支、每条语句至少执行一次,覆盖所有可能的情况。
(3) 基本路径测试法:
对函数 nextDate() 的所有基本路径进行测试,包括所有可能的路径和循环。
2. nextDate() 函数实现代码如下:
```java
public static String nextDate(int year, int month, int day) {
int[] daysOfMonth = {31,28,31,30,31,30,31,31,30,31,30,31};
if ((year%4==0&&year%100!=0)||year%400==0) {
daysOfMonth[1] = 29;
}
if (day < 1 || day > daysOfMonth[month-1]) {
return "Invalid input!";
}
if (day == daysOfMonth[month-1]) {
if (month == 12) {
return (year+1) + "-01-01";
} else {
return year + "-" + (month+1) + "-01";
}
} else {
return year + "-" + month + "-" + (day+1);
}
}
```
3. 测试代码如下:
```java
public static void main(String[] args) {
// 代码检查法
// 无需测试
// 逻辑覆盖法
System.out.println(nextDate(2021, 1, 1)); // 2021-01-02
System.out.println(nextDate(2021, 2, 28)); // 2021-03-01
System.out.println(nextDate(2020, 2, 28)); // 2020-02-29
System.out.println(nextDate(2021, 12, 31)); // 2022-01-01
System.out.println(nextDate(2021, 2, 29)); // Invalid input!
// 基本路径测试法
System.out.println(nextDate(2021, 1, 1)); // 2021-01-02
System.out.println(nextDate(2021, 2, 28)); // 2021-03-01
System.out.println(nextDate(2020, 2, 28)); // 2020-02-29
System.out.println(nextDate(2021, 12, 31)); // 2022-01-01
System.out.println(nextDate(2021, 2, 29)); // Invalid input!
}
```
阅读全文