软件测试(第2版)_Paul学习06_03——Ch6等价类测试_03
来源:互联网 发布:智能机器人编程 编辑:程序博客网 时间:2024/06/15 20:24
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_03——Ch6等价类测试_03
- 软件测试(第2版)_Paul学习06_01——Ch6等价类测试_01
- 软件测试(第2版)_Paul学习06_02——Ch6等价类测试_02
- 软件测试(第2版)_Paul学习06_04——Ch6等价类测试_04
- 软件测试(第2版)_Paul学习03_01——Ch2举例_03
- 软件测试(第2版)_Paul学习02_01——Ch1测试概述_01
- 软件测试(第2版)_Paul学习02_01——Ch1测试概述_02
- 软件测试(第2版)_Paul学习01——简介
- 软件测试(第2版)_Paul学习03_01——Ch2举例_01
- 软件测试(第2版)_Paul学习03_01——Ch2举例_02
- 软件测试(第2版)_Paul学习04_01——Ch3测试人员的离散数学
- 软件测试(第2版)_Paul学习05_01——Ch5边界值测试_01
- 软件测试(第2版)_Paul学习07_01——Ch7基于决策表的测试_01
- 软件测试(第2版)_Paul学习07_02——Ch7基于决策表的测试_02
- 【测试—自动化测试】每日构建与自动发布_03
- 接口测试_03
- Android学习笔记_03 - Service应用测试(续)
- Java学习笔记_03
- USB2.0协议概述
- 教我如何不想她
- 懒加载
- weka链接mysql数据库
- RLC matlab/simulink
- 软件测试(第2版)_Paul学习06_03——Ch6等价类测试_03
- Makefile进阶
- 创建自己的AngularJS - 作用域继承(二)
- LA 4394 String painter 区间DP -
- malloc失败导致线程死锁
- 几个有意思的逻辑数学题
- 7.Spring学习笔记_Bean的作用域(by尚硅谷_佟刚)
- shiro整合cas多次验证或者重复重定向问题
- 项目管理过程组