软件测试_NextData分析
NextData分析
决策表(Decision Table)
决策表是一种二维的表格,通常由四部分组成。
条件框 | 条件条目 |
---|---|
操作框 | 操作条目 |
条件框 — 条件定义。
操作框 — 操作的定义。
条件条目 — 各条件的取值及组合。
操作条目 — 在各条件取值组合下所执行的操作。
特点:可处理较复杂的组合条件,但不易理解,不易输入计算机。
决策表法的步骤
- 列出影响结果的所有条件,每种条件构成条件框的一行
- 列出所有可能采取的动作,每种动作构成操作框的一行
- 将每种条件的各种可能取值填入决策表的条件条目,用“Y”或“N”表示,决策表的列数是各种条件取值的组合
- 在操作条目中对各列条件组合所采取的动作划“X”
- 简化决策表
软件测试经典案例:NextDate函数
- 输入一个日期,包含年月日
- 输出此日期的下一天
- 如 输入April,30,2015
- 输出下一天为May,1,2015
关于Date的一些知识
- 闰年/非闰年
- 大月/小月/平月
- 闰年
- 年份能被400整除
- 能够被4整除,但不能被100整除
- 大月/小月/平月
- 大月:每月31天,有1、3、5、7、8、10、12
- 小月:每月30天,有4、6、9、11
- 平月:平年有28天,闰年有29天,有2月
关于月份英文
月份 | 英文 | 月份 | 英文 |
---|---|---|---|
1 | January | 7 | July |
2 | February | 8 | August |
3 | March | 9 | September |
4 | April | 10 | October |
5 | May | 11 | November |
6 | June | 12 | December |
NextDate函数举例:
输入 | 期望输出 | 分析 |
---|---|---|
2009.4.6 | 2009.4.7 | 日期加1 |
2009.4.30 | 2009.5.1 | 月份加1,日期复位 |
2009.5.30 | 2009.5.31 | 日期加1 |
2009.5.31 | 2009.6.1 | 月份加1,日期复位 |
2008.12.31 | 2009.1.1 | 年加1,月复位,日复位 |
2008.2.28 | 2008.2.29 | 日期加1 |
2009.2.28 | 2009.3.1 | 月份加1,日期复位 |
… | … | … |
变量之间在输入定义域中存在逻辑依赖关系。
对这种情况,使用决策表方法可以较好地处理。
使用决策表设计测试用例时,可以把条件解释为输入,把动作解释为输出。
分析NextDate中的输入
- 日(D)
- 月(M)
- 年(Y)
M1 :{month:month有30天} |
---|
M2 :{month:month有31天,12月除外} |
M3 :{month:month是12月} |
M4 :{month:month是2月} |
D1:{1≤day ≤27} |
D2:{day =28} |
D3:{day =29} |
D4:{day =30} |
D5:{day =31} |
Y1:{year:year是闰年} |
Y2:{year:year不是闰年} |
通过前面的例子发现
为了产生给定日期的下一个日期,NextDate函数的操作有5种:
- 日期加1
- 月份加1
- 日期复位
- 月份复位
- 年份加1
规则 选项 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
C1:month在 | M1 | M1 | M1 | M1 | M1 | M2 | M2 | M2 | M2 | M2 | M3 |
c2:day在 | D1 | D2 | D3 | D4 | D5 | D1 | D2 | D3 | D4 | D5 | D1 |
C3:year在 | - | - | - | - | - | - | - | - | - | - | - |
A1:不可能 | √ | ||||||||||
A2:day+1 | √ | √ | √ | √ | √ | √ | √ | √ | |||
A3:day复位 | √ | √ | |||||||||
A4:month+1 | √ | √ | |||||||||
A5:month复位 | |||||||||||
A6:year+1 |
续—————————————————–
规则 选项 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
---|---|---|---|---|---|---|---|---|---|---|---|
C1:month在 | M3 | M3 | M3 | M3 | M4 | M4 | M4 | M4 | M4 | M4 | M4 |
c2:day在 | D2 | D3 | D4 | D5 | D1 | D2 | D2 | D3 | D3 | D4 | D5 |
C3:year在 | - | - | - | - | - | Y1 | Y2 | Y1 | Y2 | - | - |
A1:不可能 | √ | √ | √ | ||||||||
A2:day+1 | √ | √ | √ | √ | √ | ||||||
A3:day复位 | √ | √ | √ | ||||||||
A4:month+1 | √ | √ | |||||||||
A5:month复位 | √ | ||||||||||
A6:year+1 | √ |
简化后
规则 选项 | 1-3 | 4 | 5 | 6-9 | 10 | 11-14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C1:month在 | M1 | M1 | M1 | M2 | M2 | M3 | M3 | M4 | M4 | M4 | M4 | M4 | M4 |
c2:day在 | D1 D2 D3 | D4 | D5 | D1 D2 D3D4 | D5 | D1 D2 D3D4 | D5 | D1 | D2 | D2 | D3 | D3 | D4D5 |
C3:year在 | - | - | - | - | - | - | - | - | Y1 | Y2 | Y1 | Y2 | - |
A1:不可能 | √ | √ | √ | ||||||||||
A2:day+1 | √ | √ | √ | √ | √ | ||||||||
A3:day复位 | √ | √ | √ | √ | √ | ||||||||
A4:month+1 | √ | √ | √ | √ | |||||||||
A5:month复位 | √ | ||||||||||||
A6:year+1 | √ |
NextDate函数的决策表测试用例
测试用例 | Month | Day | Year | 预期输出 |
---|---|---|---|---|
Test1-3 | 8 | 16 | 2001 | 17/8/2001 |
Test4 | 8 | 30 | 2004 | 1/9/2004 |
Test5 | 8 | 31 | 2001 | 不可能 |
Test6-9 | 1 | 16 | 2004 | 17/1/2004 |
Test10 | 1 | 31 | 2001 | 1/2/2001 |
Test11-14 | 12 | 16 | 2004 | 17/12/2004 |
Test15 | 12 | 31 | 2001 | 1/1/2002 |
Test16 | 2 | 16 | 2004 | 17/2/2001 |
Test17 | 2 | 28 | 2004 | 29/2/2004 |
Test18 | 2 | 28 | 2001 | 1/3/2001 |
Test19 | 2 | 29 | 2004 | 1/3/2004 |
Test20 | 2 | 29 | 2001 | 不可能 |
Test21-22 | 2 | 30 | 2004 | 不可能 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ming OR Fang KINESPHERE!
评论