6、设有一个档案管理系统,要求用户输入以年月表示的日期;假设日期限定在1990年1月-2049年12月,并规定日期由6位数字组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的日期检查功能
时间: 2024-06-06 21:06:53 浏览: 142
等价类划分法是一种常用的测试方法,它将输入数据分为合法和非法两个等价类,从每个等价类中选择一个典型值作为测试用例。根据题目要求,可以将输入的日期按照以下等价类进行划分:
1. 合法年份:1990年-2049年
2. 非法年份:小于1990年和大于2049年
3. 合法月份:1月-12月
4. 非法月份:小于1月和大于12月
5. 合法日期:符合输入格式的日期
6. 非法日期:不符合输入格式的日期
针对上述等价类,可以设计如下测试用例:
1. 输入合法年份和合法月份,如199012、204912等,预期结果为合法日期
2. 输入非法年份和合法月份,如198812、205011等,预期结果为非法日期
3. 输入合法年份和非法月份,如199013、204913等,预期结果为非法日期
4. 输入非法年份和非法月份,如198813、205013等,预期结果为非法日期
5. 输入不符合格式的日期,如1990-12、1990/12等,预期结果为非法日期
6. 输入符合格式但不合法的日期,如199002、199013等,预期结果为非法日期
通过以上测试用例的设计和执行,可以验证档案管理系统的日期检查功能是否正确。
相关问题
设有一个档案管理系统,要求用户输入以年月表示的日期,假设日期限定在1990年1月至2049年12月,并规定日期由6位数字字符组成,前四位表示年,后2位表示月。用代码怎么实现这个
需求?
以下是Python的实现示例:
```python
date = input("请输入日期(格式:YYYYMM):")
year = int(date[:4])
month = int(date[4:])
if year < 1990 or year > 2049 or month < 1 or month > 12:
print("输入日期不合法,请重新输入")
else:
print("输入日期为:{}年{}月".format(year, month))
```
首先,程序通过`input()`函数获取用户输入的日期,并将其保存在变量`date`中。然后,程序使用切片(slice)将输入的日期分为年和月两个部分,并将它们转换为整数类型,分别保存在变量`year`和`month`中。
接下来,程序使用条件语句判断输入的日期是否在1990年1月至2049年12月范围内,如果不在,则输出错误提示信息;否则,输出正确的日期信息,其中使用了字符串格式化(format)函数,将年和月格式化为指定的输出格式。
需要注意的是,本示例中假设用户一定会输入6位数字格式的日期,如果需要处理用户输入非法日期格式的情况,需要加入更多的判断逻辑。
1. 设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在 1990 年 1 月~2049 年 12 月,并规定日期由 6 位数字字符组成,前4 位表示年,后 2 位表示月。 现用等价类划分法设计测试用例,来测试程序的" 日期检查功能"。
好的,请稍等,让我想一想。根据等价类划分法,我们可以将输入的日期分为以下几类:
1. 合法日期:1990年1月1日至2049年12月31日之间的日期,如199012、202112等。
2. 非法日期:1990年1月1日之前或2049年12月31日之后的日期,如198912、205001等。
3. 非法月份:月份在1~12之间之外的日期,如199013、202115等。
4. 非法字符:不是数字的字符或数字个数不足6位的日期,如1990年1月1日、2021-12等。
我们需要针对以上四类情况来设计测试用例,确保程序能够正确地检查输入的日期。以下是一些可能的测试用例:
1. 输入合法日期:199012、204912、202106等。
2. 输入非法日期:198912、205001、180101等。
3. 输入非法月份:199013、202115、200012等。
4. 输入非法字符:1990年1月1日、2021-12、202^12等。
这些测试用例代表了不同的等价类,可以覆盖程序中可能出现的错误情况,确保程序正确性。
阅读全文