实验目的:
通过本次实验教学,使学生熟悉等价类方法和边界值分析方法。
实验重点:
测试用例设计。
实验内容、方法步骤及时间分配:
分析NextDATE问题中的逻辑,用边界值分析法的思想设计测试用例。
(1)对于NextDate问题,分析它的输入限制;
NextDate是一个有三个变量(月份、日期和年)的函数。函数返回输入日期后面的那个日期。变量月份、日期和年都是整数值,并满足以下条件:
c1:1<=月份<=12
c2:1<=日期<=31
c3:1812<=年<=2012
我们的处理要包括对月份、日期和年的无效输入值的响应处理,还要对无效逻辑处理,例如任意年的4月31日。
在NextDate函数中有两种复杂性来源:输入域和闰年规则。关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。
(2)在最坏情况下,从输入限制的边界设计测试用例;
在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050。
实验要求:
(1)独立完成
(2)要求能够正确地划分等价类和设置边界。
解答:
(1) 输入限制
测试用例 | C1 | C2 | C3 | 预期输入 |
---|---|---|---|---|
Test 1 | 13 | 16 | 2000 | 月份应在1-12之间 |
Test 2 | 6 | 32 | 2000 | 日期应在1-31之间 |
Test 3 | 6 | 16 | 2013 | 年份应在1812-2012之间 |
Test 4 | 2 | 30 | 2001 | 二月无30号 |
Test 5 | 2 | 29 | 1999 | 平年二月无29号 |
Test 6 | 4 | 16 | 2014 | 4月无31号 |
Test 7 | 3 | 16 | 2015 | 2015-3-17 |
(2)边界值
测试用例 | Month | Day | year | 预期输入 |
---|---|---|---|---|
Test 1 | 1 | 15 | 2000 | 2000-01-16 |
Test 2 | 2 | 15 | 2000 | 2000-02-16 |
Test 3 | 6 | 15 | 2000 | 2000-06-16 |
Test 4 | 11 | 15 | 2000 | 2000-11-16 |
Test 5 | 12 | 15 | 2000 | 2000-12-16 |
Test 6 | 6 | 1 | 2000 | 2000-01-07 |
Test 7 | 6 | 2 | 2000 | 2000-06-03 |
Test 8 | 6 | 30 | 2000 | 2000-07-01 |
Test 9 | 6 | 31 | 2000 | 6月没有31号 |
Test 10 | 6 | 15 | 1912 | 1912-06-16 |
Test 11 | 6 | 15 | 1913 | 1913-06-16 |
Test 12 | 6 | 15 | 2049 | 2049-06-16 |
Test 13 | 6 | 15 | 2050 | 2050-06-16 |