等价类划分法设计测试1个函数包含3个变量:month、day和year,函数的输出为输入日期
时间: 2023-09-19 21:03:25 浏览: 173
等价类划分法是一种常用的软件测试方法。根据具体的需求和输入变量的定义,我们可以对month、day和year这三个变量进行等价类划分,将它们分成若干个等价类。
首先,我们可以考虑月份(month)的等价类划分。月份是1到12之间的整数,因此可以将其划分为1个合法的等价类和1个非法的等价类。合法的等价类包括1到12之间的整数,而非法的等价类包括小于1和大于12的整数。
接下来,我们可以考虑日期(day)的等价类划分。日期是1到31之间的整数,因此可以将其划分为1个合法的等价类和1个非法的等价类。合法的等价类包括1到31之间的整数,而非法的等价类包括小于1和大于31的整数。
最后,我们可以考虑年份(year)的等价类划分。年份可以是任意的整数,因此可以将其划分为1个合法的等价类和1个非法的等价类。合法的等价类包括任意整数,而非法的等价类可以是空值或者其他非整数类型。
综上所述,我们可以得到如下的等价类划分:
1. 月份的合法等价类:1, 2, 3, ..., 11, 12。
2. 月份的非法等价类:0, -1, 13, 999等。
3. 日期的合法等价类:1, 2, 3, ..., 29, 30, 31。
4. 日期的非法等价类:0, -1, 32, 999等。
5. 年份的合法等价类:任意整数。
6. 年份的非法等价类:空值或者其他非整数类型。
通过对这些等价类进行全面的测试,可以覆盖函数的所有可能情况,以确保函数的正确性和鲁棒性。
相关问题
某函数包含三个输入变量year、month、day,分别表示年、月、日,函数的输出为输入日期后一天的日期。例如,输入year=2010、month=1、day=1,则函数的输出为2010年1月2日。 已定义变量year、month、day的值均为正整数,且year取值从1900到2012年。试采用等价类划分法设计测试用例。 1、完成代码编写 2、正确划分等价类,并设计测试用例
以下是我作为 CSDN 开发的 C 知道的回答:
对于您的第一个问题,我可以回答。以下是代码实现和测试用例设计:
代码实现:
```c
#include <stdio.h>
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int getNextDay(int year, int month, int day, int *nextYear, int *nextMonth, int *nextDay) {
int daysInMonth[] = {31, 28 + isLeapYear(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (year < 1900 || year > 2012 || month < 1 || month > 12 || day < 1 || day > daysInMonth[month - 1]) {
return 0;
}
*nextYear = year;
*nextMonth = month;
*nextDay = day + 1;
if (*nextDay > daysInMonth[month - 1]) {
*nextDay = 1;
*nextMonth = month + 1;
if (*nextMonth > 12) {
*nextMonth = 1;
*nextYear = year + 1;
}
}
return 1;
}
int main() {
int year = 2010, month = 1, day = 1;
int nextYear, nextMonth, nextDay;
if (getNextDay(year, month, day, &nextYear, &nextMonth, &nextDay)) {
printf("%d年%d月%d日的下一天是%d年%d月%d日\n", year, month, day, nextYear, nextMonth, nextDay);
} else {
printf("输入日期不合法\n");
}
return 0;
}
```
测试用例设计:
等价类划分法将输入分为以下几类:
1. 有效年份、有效月份、有效日期
2. 无效年份、有效月份、有效日期
3. 有效年份、无效月份、有效日期
4. 有效年份、有效月份、无效日期
对于每个等价类,我们选择一个典型的代表值进行测试:
1. 有效年份、有效月份、有效日期
输入:year=2010, month=1, day=1
预期输出:2010年1月2日
2. 无效年份、有效月份、有效日期
输入:year=1899, month=1, day=1
预期输出:输入日期不合法
3. 有效年份、无效月份、有效日期
输入:year=2010, month=13, day=1
预期输出:输入日期不合法
4. 有效年份、有效月份、无效日期
输入:year=2010, month=1, day=32
预期输出:输入日期不合法
以上就是根据等价类划分法设计的测试用例。
阅读全文