软件测试(第2版)_Paul学习06_03——Ch6等价类测试_03
2016-11-26 11:06
344 查看
6.3 NextDate函数的等价类测试用例
6.3.1 简单的等价类划分
有效等价类:M1 = {1≤月份≤12}
D1={1≤日期≤31}
Y1={1812≤年≤2012}
无效等价类:
M2 = {月份<1}
M3 = {月份>12}
D2={日期<1}
D1={日期>31}
Y2={年<1812}
Y3={年>2012}
(1)WN、SN
由于有效等价类的数量等于独立变量的个数,因此只有弱一般等价类测试用例出现,且与强一般等价类测试用例相同
用例标识 | 月份 | 日期 | 年 | 预期输出 |
WN1,SN1 | 6 | 15 | 1912 | 1912年6月16日 |
(2)WR
每个无效等价类生成1个测试用例
用例标识 | 月份 | 日期 | 年 | 预期输出 |
WR1 | 6 | 15 | 1912 | 1912年6月16日 |
WR2 | -1 | 15 | 1912 | 月份超出范围 |
WR3 | 13 | 15 | 1912 | 月份超出范围 |
WR4 | 6 | -1 | 1912 | 日期超出范围 |
WR5 | 6 | 32 | 1912 | 日期超出范围 |
WR6 | 6 | 15 | 1811 | 年超出范围 |
WR7 | 6 | 15 | 2013 | 年超出范围 |
(3)SR
无效等价类之间要进行组合,先是单个组合,之后是两个组合,再之后是3个组合,……
三维立方的一个"角"
用例标识 | 月份 | 日期 | 年 | 预期输出 |
SR1 | -1 | 15 | 1912 | 月份超出范围 |
SR2 | 6 | -1 | 1912 | 日期超出范围 |
SR3 | 6 | 15 | 1811 | 年超出范围 |
SR4 | -1 | -1 | 1912 | 月份、日期超出范围 |
SR5 | 6 | -1 | 1811 | 日期、年超出范围 |
SR6 | -1 | 15 | 1811 | 月份、年超出范围 |
SR7 | -1 | -1 | 1811 | 月份、日期、年超出范围 |
6.3.2 进一步分析等价类
有效等价类:M1 = {每月有30天的月份:4、6、9、11}
M2 = {每月有31天的月份:1、3、5、7、8、10、12},12月还可以单独的分出来
M3 = {每月有28天的月份:2}
D1={1≤日期≤28}
D2={日期=29}
D3={日期=30}
D4={日期=31}
Y1={一般的平年}
Y2={能被100除的平年:1900}
Y3={一般的闰年}
Y4={能被400除的闰年:2000}
无效等价类:
M4= {月份<1}
M5 = {月份>12}
D5={日期<1}
D6={日期>31}
Y5={年<1812}
Y6={年>2012}
(1)WN
用例标识 | 月份 | 日期 | 年 | 预期输出 |
WN1 | 6 | 14 | 1925 | 1925年6月16日 |
WN2 | 7 | 29 | 1900 | 1900年7月30日 |
WN3 | 2 | 30 | 2004 | 不正确的日期 |
WN4 | 6 | 31 | 2000 | 不正确的日期 |
(2)SN
用例个数:3×4×4 = 48
用例标识 | 月份 | 日期 | 年 | 预期输出 |
SN1 | 6 | 14 | 1925 | 1925年6月15日 |
SN2 | 6 | 14 | 1900 | 1900年6月15日 |
SN3 | 6 | 14 | 2004 | 2004年6月15日 |
SN4 | 6 | 14 | 2000 | 2000年6月15日 |
SN5 | 6 | 29 | 1925 | 1925年6月30日 |
SN6 | 6 | 29 | 1900 | 1900年6月30日 |
SN7 | 6 | 29 | 2004 | 2004年6月30日 |
SN8 | 6 | 29 | 2000 | 2000年6月30日 |
SN9 | 6 | 30 | 1925 | 1925年7月1日 |
SN10 | 6 | 30 | 1900 | 1900年7月1日 |
SN11 | 6 | 30 | 2004 | 2004年7月1日 |
SN12 | 6 | 30 | 2000 | 2000年7月1日 |
SN13 | 6 | 31 | 1925 | 不正确的日期 |
SN14 | 6 | 31 | 1900 | 不正确的日期 |
SN15 | 6 | 31 | 2004 | 不正确的日期 |
SN16 | 6 | 31 | 2000 | 不正确的日期 |
SN17 | 7 | 14 | 1925 | 1925年7月15日 |
SN18 | 7 | 14 | 1900 | 1900年7月15日 |
SN19 | 7 | 14 | 2004 | 2004年7月15日 |
SN20 | 7 | 14 | 2000 | 2000年7月15日 |
SN21 | 7 | 29 | 1925 | 1925年7月30日 |
SN22 | 7 | 29 | 1900 | 1900年7月30日 |
SN23 | 7 | 29 | 2004 | 2004年7月30日 |
SN24 | 7 | 29 | 2000 | 2000年7月30日 |
SN25 | 7 | 30 | 1925 | 1925年7月31日 |
SN26 | 7 | 30 | 1900 | 1900年7月31日 |
SN27 | 7 | 30 | 2004 | 2004年7月31日 |
SN28 | 7 | 30 | 2000 | 2000年7月31日 |
SN29 | 7 | 31 | 1925 | 1925年8月1日 |
SN30 | 7 | 31 | 1900 | 1900年8月1日 |
SN31 | 7 | 31 | 2004 | 2004年8月1日 |
SN32 | 7 | 31 | 2000 | 2000年8月1日 |
SN33 | 2 | 14 | 1925 | 1925年2月15日 |
SN34 | 2 | 14 | 1900 | 1900年2月15日 |
SN35 | 2 | 14 | 2004 | 2004年2月15日 |
SN36 | 2 | 14 | 2000 | 2000年2月15日 |
SN37 | 2 | 29 | 1925 | 不正确的日期 |
SN38 | 2 | 29 | 1900 | 不正确的日期 |
SN39 | 2 | 29 | 2004 | 2004年3月1日 |
SN40 | 2 | 29 | 2000 | 2000年3月1日 |
SN42 | 2 | 30 | 1925 | 不正确的日期 |
SN42 | 2 | 30 | 1900 | 不正确的日期 |
SN43 | 2 | 30 | 2004 | 不正确的日期 |
SN44 | 2 | 30 | 2000 | 不正确的日期 |
SN45 | 2 | 31 | 1925 | 不正确的日期 |
SN46 | 2 | 31 | 1900 | 不正确的日期 |
SN47 | 2 | 31 | 2004 | 不正确的日期 |
SN48 | 2 | 31 | 2000 | 不正确的日期 |
(3)SR
用例数量=(3+2)×(4+2)×(4+2)=5×6×6=180;不再一一列出。
更进一步:通过更仔细地研究年类,还可以精简测试用例集合,如果合并Y1和Y2,Y3和Y4,则48个用例将降低到24个。这样可能会遗漏1900和2000年2个闰年的特殊问题。具体看问题的需要和把握。更仔细地研究月份类,还可以将12月份单独划分出来,因为其与其他的不一样的地方是涉及到转下一年的问题。
相关文章推荐
- 软件测试(第2版)_Paul学习06_01——Ch6等价类测试_01
- 软件测试(第2版)_Paul学习06_04——Ch6等价类测试_04
- 软件测试(第2版)_Paul学习06_02——Ch6等价类测试_02
- 软件测试(第2版)_Paul学习03_01——Ch2举例_02
- 软件测试(第2版)_Paul学习03_01——Ch2举例_01
- 软件测试(第2版)_Paul学习03_01——Ch2举例_03
- 软件测试(第2版)_Paul学习05_03——Ch5边界值测试_03
- 软件测试(第2版)_Paul学习05_01——Ch5边界值测试_01
- 软件测试(第2版)_Paul学习05_02——Ch5边界值测试_02
- 软件测试(第2版)_Paul学习04_01——Ch3测试人员的离散数学
- 软件测试(第2版)_Paul学习07_02——Ch7基于决策表的测试_02
- 软件测试(第2版)_Paul学习02_01——Ch1测试概述_01
- 软件测试(第2版)_Paul学习02_01——Ch1测试概述_02
- 软件测试(第2版)_Paul学习01——简介
- 软件测试(第2版)_Paul学习07_01——Ch7基于决策表的测试_01
- 软件构架实践(第2版)学习笔记
- 软件测试“最佳学习”方法?
- 测试回顾版-零基础学习软件测试
- 软件测试用例设计方法的学习
- 软件测试“最佳学习”方法?