1. 设某公司要打印2015~2019年的报表,其中报表日期为6位数字组成,其中,前4位为年份,后两位为月份。针对上述需求分析,先编写一个对报表日期合法性检查的C程序,然后按照等价类划分法设计测试用例(弱健壮覆盖标准),最后运行设计的测试用例。
时间: 2024-11-09 14:26:20 浏览: 16
2009-2019年沪深A股上市公司年度财务报表数据.xlsx
5星 · 资源好评率100%
首先,我们来看一下如何编写一个简单的C程序来进行报表日期的合法性检查。这个程序将接受一个六位数字的输入,并检查它是否符合年月的格式(例如:201501到201912)。以下是可能的代码片段:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_valid_report_date(char date[7]) {
if (strlen(date) != 6) return false;
int year = date[0] - '0' * 10 + date[1] - '0';
int month = date[4] - '0' + date[5] - '0';
if (year >= 2015 && year <= 2019 && month >= 1 && month <= 12) {
return true;
}
else {
return false;
}
}
int main() {
char input_date[7];
printf("请输入报表日期(格式如:201501): ");
scanf("%s", input_date);
if (is_valid_report_date(input_date)) {
printf("日期有效.\n");
} else {
printf("日期无效.\n");
}
return 0;
}
```
接下来,我们将按照等价类划分法设计测试用例。弱健壮覆盖是指尽可能地覆盖各种可能的情况,包括正常情况、边界条件以及异常值。
1. 等价类划分:
- 正常等价类(Valid):201501 至 201912 的所有合法日期。
- 边界等价类(Boundary):
a. 最小年份和最小月份(201501)
b. 最大年份和最小月份(201901)
c. 最小年份和最大月份(201512)
d. 最大年份和最大月份(201912)
- 异常等价类(Invalid):非数字字符、超过范围的年份或月份、长度小于6位或大于6位的日期。
测试用例示例:
1. 输入:201501(正常等价类)
2. 输入:201912(正常等价类)
3. 输入:201500(边界等价类:月份错误)
4. 输入:201513(边界等价类:月份错误)
5. 输入:201001(异常等价类:年份过早)
6. 输入:202001(异常等价类:年份过晚)
7. 输入:“invalid”(异常等价类:非数字字符)
运行以上测试用例,确保函数能正确处理各种情况。
阅读全文