例子1:
现在有一个档案管理系统,容许用户通过输入年月对档案文件进行检索,系统对查询条件年月的输入限定为1990年1月-2049年12月,并规定,日期由6位数字组成,前4位表示年,后2位表示月。
1, 根据需求进行分析,找出有哪些输入条件
年份: 【1990,2049】 月份: 【01,12】 字符长度:6位 字符类型:数字 2, 画出等价类 输入条件 有效等价类 年份 边界值分析 无效等价类 【1990,2049】 (1) 上点:1990,2049(12) <1990 (2) 离点:1989,2050 >2049 (3) 内点:2016 【01,12】 (4) 上点:01,12(13) 离点:00,13 内点:11 上点:6 离点:5,7 内点:6 <01 (5) >12 (6) <6 (8) >6 (9) 非数字 (11) 月份 字符长度 6位 (7) 字符类型 数字 (10)
3, 为每个等价类规定一个唯一编号(如上图) 4, 转换成测试用例 转换测试用例的原则:
A,设计一个测试用例尽可能多的覆盖多个有效等价类; B,设计一个测试用例必须对应覆盖一个无效等价类。 有效等价类用例:
用例1:201611 (1)(4)(7)(10) 无效等价类用例:
用例2:198911 (2) 用例3:205011 (3) 用例4:201600 (5) 用例5:201613 (6) 用例6:20161 (8) 用例7:2016113 (9)
用例8:20161a/abcedf (11)
根据边界值分析法分析后补充测试用例 用例9:199001 (12) 用例10:204912 (13)
5,转成正式格式用例(用例写作的8大要素) 用例编号 项目 标题 重要级别 预置条件 输入 操作步骤 预期结果 编写人 编写时间 用例类型 D1223232_ST_Search_Date_001 搜索功能 输入正确的日期格式成功搜索 高 系统运行正常 日期:201611 1, 在查询条件中输入日期 2, 点击搜索按纽 1,显示该日期范围内所有档案文件 张三 2016-11-10 功能用例
例子2:(学生练习-参考例子)
万年历查询软件,要求用户输入以年月日表示的日期,然后系统会换算出该日期的农历表示法及相关黄历信息。假设日期限定在1990年1月1日~2049年12月31日,并规定日期由8位数字字符组成,前4位表示年,中间2位表示月,最后2位表示日期。其中4,6,9,11月只有30天,平年的2月份只有28天,闰年的2月份有29天。 备注:闰年指能被4或400整除,且不能被100整除的年份,如:2008,2016 1, 根据需求进行分析,找出有哪些输入条件
年份: 【1990,2049】 月份: 【01,12】 字符长度:8位 字符类型:数字 日期:
4,6,9,11月: 【01,30】
1,3,5,7,8,10,12月: 【01,31】 平年的2月份:【01,28】 闰年的2月份:【01,29】
2, 画出等价类 输入条件 年份 月份 有效等价类 【1990,2049】 (1) 【01,12】 (4) 无效等价类 <1990 (2) >2049 (3) <01 (5) >12 (6) 字符长度 字符类型 4,6,9,11月 8位 (7) 数字 (10) 【01,30】 (12) <8 (8) >8 (9) 非数字 (11) <01 (13) >30 (14) <01 (16) >31 (17) <01 (19) >28 (20) <01 (22) >29 (23) 1,3,5,7,【01,31】 (15) 8,10,12月 平年的2月份 【01,28】 (18) 闰年的2月份 【01,29】 (21) 3, 为每个等价类规定一个唯一编号(如上图) 4, 转换成测试用例 转换测试用例的原则:
A,设计一个测试用例尽可能多的覆盖多个有效等价类; B,设计一个测试用例必须对应覆盖一个无效等价类。 有效等价类用例:
用例1:20161130 (1)(4)(7)(10)(12) 用例2:20161031 (1)(4)(7)(10)(15) 用例3:20170228 (1)(4)(7)(10)(18) 用例4:20160229 (1)(4)(7)(10)(21)
无效等价类用例:
用例2:19891110 (2) 用例3:20501110 (3) 用例4:201600 (5) 用例5:201613 (6) 用例6:20161 (8) 用例7:2016113 (9)
用例8:20161a/abcedf (11)
5,转成正式格式用例(用例写作的8大要素)
例子3(输入项):
注册163邮箱,要求注册的邮箱名字符长度为6-18位,字符由字母、数字、下划线组成,且以字母开头。密码字符长度为6-16位,区分大小写。有验证码验证
输入域 邮件地址 输入条件 字符长度 字符类型 有效等价类 【6,18】 全字母 字母开头+数字 字母开头+下划线 字母开头+字母、数字 字母开头+字母、下划线 字母开头+数字、下划线 字母开头+字母、数字、下划线 无效等价类 <6 >18 非字母开头 字母开头+非数字、字母、下划线的其它字符 密码 是否必填 是否被注册 是否有保留字段 字符长度 字符类型 填写 未被注册 有保留 【6,16】 英文字母; 数字; 特殊字符; 英文字母、数字、特殊字符三种组合; 填写 一致 填写 11位 纯数字 选择显示正确 一致 (1, 完全一致) (2, 不区分大小写) 能切换 免费 收到短信 一致 勾选 不填 已注册 无保留 <6 >16 非英文字母、数字、特殊字符三种以外的字符 确认密码 手机号码 验证码 是否必填 是否一致 是否必填 字符长度 字符类型 国家编号 是否一致 不填 不一致 不填 <11 >11 非数字 选择显示错误 不一致 切换 免费获取免费 验证码 获取 短信验证是否一致 码 同意条款 是否勾选 转成测试用例 有效等价类 用例1:
邮件地址:chenzhijian 密码:zhijian
不能切换 不免费 收不到短信 不一致 不勾选 确认密码:同密码一致 手机号码:136****8217
验证码:同右边图片中完全一致 免费获取验证码:点击获取
输入短信验证码:收到的短信验证码(6位数字) 同意条款:勾选 用例2:
邮件地址: chenzhijian123 密码:123456
确认密码:同密码一致 手机号码:136****8217 验证码:不区分大小写 免费获取验证码:点击获取
输入短信验证码:收到的短信验证码(6位数字) 同意条款:勾选 用例3:
邮件地址: chenzhijian_ 密码: @#$%^^!&
确认密码:同密码一致 手机号码:136****8217
验证码:同右边图片中完全一致 免费获取验证码:点击获取
输入短信验证码:收到的短信验证码(6位数字) 同意条款:勾选 用例4:
邮件地址: chenzhijian_123 密码: zhijian12%& 确认密码:同密码一致 手机号码:136****8217 验证码:不区分大小写 免费获取验证码:点击获取
输入短信验证码:收到的短信验证码(6位数字) 同意条款:勾选 用例5: 邮件地址:chenzhijian/chenzhijian123/chenzhijian_/chenzhijian_123/… 密码:zhijian/123456/@#$%^^!&/zhijian12%& 确认密码:同密码一致 手机号码:136****8217
验证码:同右边图片中完全一致/不区分大小写 免费获取验证码:点击获取
输入短信验证码:收到的短信验证码(6位数字) 同意条款:勾选
无效等价类
例子4(下拉框):
淘宝网便民服务之话费充值
例子5:(课后练习)
二、边值分析法
例子1:
输入条件 存入金额M 有效等价类 【1000,10000】 手续费(元) M*0.5% 边界值分析 上点:1000,10000 离点:900,10100 内点:5000 上点:10000,50000 离点:10100,50100 内点:20000 无效等价类 (10000,50000】 50
设计测试用例
用例1:存入的金额数字有 900、1000、5000、10000、10100、20000、50000、50100
例子3:
输入条件 单笔提取金额 有效等价类 边界值分析 【50,2000】 上点: 离点: 内点: 每天取款次数 【1,3】 每天取款总额 【50,5000】 提款的增量50【1,40】 的整数倍 输入条件 有效等价类 边界值分析 第一次提取金额 【50,2000】 上点: 离点: 内点: 每天取款次数 【1,3】 每天取款总额 【50,5000】 提款的增量50【1,40】 的整数倍
无效等价类 无效等价类
例子4:转账
例子5:等价类边界值综合练习
常见边界值缺陷:
日期测试:10月31日,月加1变为11月31日,而11月是没有31日的,这个时候日项显示就不正常了。1月30日, 对日项加1时,日直接变为01了,即变成了1月01日
无法进入待机模式:修改系统时间,当系统时间小于当前时间时,不能进入待机模式
越界造成死机:
1、将呼吸测量模式设置成手动测量; 2、调整上下虚线的位置,将上下虚线的位置均调节到最下方或都调节到最上方,直到不可调节为止;
3、将增益为1倍调节为5倍增益;
4、退出呼吸设置菜单再次进入呼吸设置菜单后出现死机;
5、重起后每次进入呼吸菜单都会死机,除非重新恢复缺省配置。
三、判定表法
例子1:手机如果欠费或者停机则 不能主被叫
例子2:手机接入wifi或打开3G,对是否可以使用网络的情况进行设计测试用例 1,根据需求进行分析,找出条件桩、动作桩、条件项、动作项 条件桩 条件项
接入wifi 接入/未接入 1/0 打开3G 打开/未打开 1/0 动作桩 动作项 可以使用网络 (未知) 不可以使用网络 2, 列出判定表
规则的个数:2*2=4个 条件桩 接入wifi 打开3G 动作桩 可以使用网络 3, 画简合并 条件桩 接入wifi 打开3G 动作桩 可以使用网络 1 1 X Y 2 0 1 Y 3 0 0 Y 1 1 1 Y 2 1 0 Y 3 0 1 Y 4 0 0 Y 不可以使用网络 不可以使用网络
4, 转测试用例
最终化简合并后得到的列,一列即为一条用例(如上共3条) 用例1: 1 X -> 可以使用网络 用例2: 0 1 -> 可以使用网络 用例3: 0 0 -> 不可以使用网络
例子3:修改Notes账户密码,要求如下,首先输入正确的原始密码;输入两次一致的新密码;并且新密码要具有一定的复杂度(8-15位;包含大写字母;小写字母;数字;其它字符)
[判定表法]
1,根据需求进行分析,找出条件桩、动作桩、条件项、动作项 条件桩 条件项
原始密码 正确/不正确 1/0
新密码 复杂/不复杂 1/0 确认密码 一致/不一致 1/0 动作桩 动作项 修改成功 (未知) 修改失败
5, 列出判定表
规则的个数:2*2*2=8个 条件桩 原始密码 新密码 确认密码 动作桩 修改成功 修改失败 6, 画简合并 条件桩 原始密码 新密码 确认密码 动作桩 修改成功 修改失败 1 2 3 4 1 2 3 4 5 6 7 8 1 1 1 Y 1 1 0 Y 1 0 Y 1 0 Y 0 1 1 Y 0 1 0 Y 0 0 1 Y 0 0 0 Y 1 1 1 Y 1 1 0 Y 1 0 X Y 0 X X Y
7, 转测试用例
最终化简合并后得到的列,一列即为一条用例(如上共4条) 用例1: 1 1 1 -> 修改成功 用例2: 1 1 0 -> 修改失败 用例3: 1 0 X -> 修改失败 用例4: 0 X X -> 修改失败
例子4:电影票优惠 1.电影票购票门票50元/张 2.刷华夏信用卡享受8折优惠 3.周三下午看电影享受7折优惠 4.情侣看电影,女生免票 符合情况4不享受额外优惠 符合情况2和3享受折上折
1,根据需求进行分析,找出条件桩、动作桩、条件项、动作项 条件桩 条件项
刷华夏信用卡 刷/不刷 1/0 周三下午 是/不是 1/0 情侣 是/不是 1/0 动作桩 动作项 8折优惠 (未知) 7折优惠
女生免票 折上折 原价
2, 列出判定表
规则的个数:2*2*2=8个 条件桩 刷华夏信用卡 周三下午 情侣 动作桩 8折 7折 女生免票 折上折 原价
3, 化简合并 条件桩 刷华夏信用卡 周三下午 情侣 动作桩 8折 7折 女生免票 折上折 原价 1 2 3 4 5 1 2 3 4 5 6 7 8 1 1 1 Y 1 1 0 Y 1 0 1 Y 1 0 0 Y 0 1 1 Y 0 1 0 Y 0 0 1 Y 0 0 0 Y X X 1 Y 1 1 0 Y 1 0 0 Y 0 1 0 Y 0 0 0 Y
4,转成测试用例
例子5:有一个需求描述如下:“.....对已运行10年以上的机器,或功率大于50马力且维修记录不全的机器,给予全面维修处理,对其它机器只进行一般维修处理”
1,根据需求进行分析,找出条件桩、动作桩、条件项、动作项 条件桩 条件项
10年以上 是/不是 1/0 大于50马力 是/不是 1/0 维修记录不全 是/不是 1/0 动作桩 动作项 全面维修 (未知) 一般维修
2,列出判定表
规则的个数:2*2*2=8个 条件桩 10年以上 大于50马力 维修记录不全 动作桩 全面维修 一般维修 3、化简合并 条件桩 10年以上 大于50马力 维修记录不全 动作桩 全面维修 一般维修
1 2 3 4 1 2 3 4 5 6 7 8 1 1 1 Y Y 1 1 0 Y 1 0 1 Y 1 0 0 0 1 1 Y 0 1 0 Y 0 0 1 Y 0 0 0 Y 1 X X Y 0 1 1 Y 0 1 0 Y 0 0 X Y
例子6:修改文件
如想对文件进行修改,需要遵守以下规则: 输入的第一列字符必须是A或B, 第二列字符必须是一个数字,
如果第一列字符不正确,则给出信息L; 如果第二列字符不正确,则给出信息M; 如果两列字符输入正确,则修改文件
例子5:判断三角形(作业)
四、因果图法
例子1:(用因果图法实现)
如想对文件进行修改,需要遵守以下规则: 输入的第一列字符必须是A或B, 第二列字符必须是一个数字,
如果第一列字符不正确,则给出信息L; 如果第二列字符不正确,则给出信息M; 如果两列字符输入正确,则修改文件 第二种方法
1, 根据需求进行分析,找出原因和结果
原因(输入条件) 结果(输出结果) 第一列字符必须是A L 第一列字符必须是B M
第二列字符必须是一个数字 修改文件
2, 画出因果图
3、把因果图转成判定表
计算规则个数:2^N(N为原因的个数)=2^3=8 条件桩 A B 数字 动作桩 L M 修改文件 1 1 1 1 2 1 1 0 3 1 0 1 4 1 0 0 5 0 1 1 6 0 1 0 7 0 0 1 8 0 0 0 因为条件中第一列字符一次只能输入A或B,所以当它们同时存在时不符合要求,需删除(如上图) 条件桩 A B 1 1 0 2 1 0 3 0 1 4 0 1 5 0 0 6 0 0 数字 动作桩 L M 修改文件 1 Y 0 Y 1 Y 0 Y 1 Y 0 Y Y
补充如下计算动作项的方法(加入中间节点,再用与或关系进行计算) 条件桩 A B 数字 11 动作桩 L M 修改文件 1 1 0 1 1 0 0 1 2 1 0 0 1 0 1 0 3 0 1 1 1 0 0 1 4 0 1 0 1 0 1 0 5 0 0 1 0 1 0 0 6 0 0 0 0 1 1 0
4、化简合并
经过分析,如上6条没有相似规则的列,不需要合并
5、转成测试用例
用例1:A4 –> 修改文件 用例2:Aa –> M
用例3:B5 –> 修改文件 用例4:Ba –> M 用例5:C1 –> L
用例6:CD –> L,M
综上共得到6条用例
5、转正式格式用例(8大要素)
第一种方法
1, 根据需求进行分析,找出原因和结果
原因(输入条件) 结果(输出结果) 第一列字符必须是A或B L
第二列字符必须是一个数字 M
修改文件
2, 画出因果图
3、把因果图转成判定表
计算规则个数:2^N(N为原因的个数)=2^2=4 条件桩 第一列字符必须是A或B 第二列字符必须是一个数字 动作桩 L M 修改文件 1 1 1 Y 2 1 0 Y 3 0 1 Y 4 0 0 Y Y 4、转成测试用例
用例1:A4 –> 修改文件 (1) B5 –> 修改文件 (2)
用例2:Aa –> M (3) Ba –> M (4) 用例3:C1 –> L (5) 用例4:CD –> L,M (6) 综上共得到6条用例
5、转正式格式用例(8大要素)
例子2:(用因果图法实现)
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。 其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。当售货机没有零钱找,则一个显示〖零钱找完〗的红灯是亮的,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯不会亮,在送出饮料的同时退还5角硬币。
1, 根据需求进行分析,找出原因和结果
原因(输入条件) 5角钱 1元钱 押下〖橙汁〗 押下〖啤酒〗 没有零钱找 有零钱找
进行优化
原因(输入条件) 5角钱 1元钱 押下〖橙汁〗 押下〖啤酒〗 有零钱找
为了更好画出因果图,调整原因和结果的顺序原因(输入条件) 有零钱找 1元钱 5角钱 押下〖橙汁〗 押下〖啤酒〗 2, 画出因果图
结果(输出结果) 送出〖橙汁〗 送出〖啤酒〗
红灯是亮
饮料不送出来而且1元硬币也退 红灯不会亮
在送出饮料的同时退还5角 结果(输出结果) 送出〖橙汁〗 送出〖啤酒〗
红灯是亮 1元硬币也退 退还5角 结果(输出结果) 红灯是亮 1元硬币也退 退还5角
送出〖啤酒〗 送出〖橙汁〗
3、把因果图转成判定表 规则个数为:2^5=32
例子3:(学生课堂练习)
支付宝个人认证中,分为两部分:个人身份认证和银行卡认证。这两者都通过后,则认为认证成功。
个人身份认证需要提交个人基本信息及身份证复印件。
银行卡认证需完成提现认证和充值认证。
提现认证的流程是:用户提交正确的银行帐号——>支付宝给用户的银行卡中随机打款——>用户确认金额,认证成功。
充值认证的流程是:用户提交正确的银行帐号——>充值——>充值完成——>网银反馈,认证成功。
为了简便起见,我们假设个人信息提交和身份证件提交成功后,身份认证则成功,忽略人工审核过程。
画出因果图
五、状态迁移法
例子1:
根据电梯在实际生活中可能会出现的各种状态,画出状态迁移图
(首层、上升状态、下降状态、空闲状态、维修状态、顶层、超载、故障)
例子2:某打印机的打印功能如下:
打印机初始处于就绪的状态下,可以接收打印的任务,进入打印状态,开始打印; 在打印的过程中,如果打印机出现故障,打印机将处于故障状态,等待修复故障; 故障修复后,打印机会恢复打印状态,继续打印原来的文档;
在打印的过程中,如果纸张用完,打印机将暂停打印,处于缺纸状态,当放入打印纸后,打印机会自动检测,恢复打印状态,继续开始打印; 打印任务完成,打印机恢复就绪状态。
1、 根据需求进行划分,找出状态和状态之间的触发条件
状态:就绪状态、打印状态、故障状态、缺纸状态
触发条件:接收任务、出现故障、修复故障、纸张用完、放入纸张、打印完成 2、 画状态迁移图
3、 列出状态-事件表 前一状态 就绪状态 打印状态 打印状态 打印状态 故障状态 缺纸状态 触发条件 接收任务 出现故障 纸张用完 打印完成 修复故障 放入纸张 后一状态 打印状态 故障状态 缺纸状态 就绪状态 打印状态 打印状态 现像 打印指示灯亮 故障灯亮 缺纸指示灯亮 就绪指示灯亮 打印指示灯亮 打印指示灯亮
4、 画出状态转换树
根据广度优先原则,从一个根开始,依次找它的子结点,一直找到最终的叶子结点
5、 推导出测试路径
从根结点开始找到最终的叶子结点,即为一条路径,一条路径即为一条用例 路径1:就绪状态->打印状态->故障状态->打印状态 路径2:就绪状态->打印状态->缺纸状态->打印状态 路径3:就绪状态->打印状态->就绪状态
6、 转成正式的用例格式
用例编号 项目 标题 重要级别 预置条件 输入 操作步骤 Printer_ST_Print_fault_001 打印功能 打印过程出现故障恢复到打印状态测试 高 打印机初始置为就绪状态 1,Word文档 1, 点击Word文档打印 2, 打印过程中让打印机出现故障(断电或卡纸) 3, 修复故障 1,故障修复完成,恢复打印功能 张三 2016-11-10 功能用例 预期结果 编写人 编写时间 用例类型
例子3:(课堂练习)
后退
列出状态-事件表 前一状态 播放 播放 播放 暂停 暂停 暂停 后退 后退 后退 前进 前进 前进
画出状态转换树
触发条件 暂停 播放 前进 后一状态 暂停 后退 前进 播放 后退 前进 暂停 前进 播放 播放 后退 暂停 现像
推导出测试路径(共9条) 路径1:播放->暂停->播放 。。。
路径9:播放->前进 ->暂停
例子4:(课堂作业)
问题单的一生
➢ 测试人员提交新问题单,测试经理审核问题单,如果不是问题则作为非问题关闭,如果
重复则作为重复问题关闭,否则置为打开状态。
➢ 开发人员分析打开状态的问题单,如果接受则进行修改。否则应与测试人员协商,在问
题单提交人同意的情况下可退回给测试人员作为非问题关闭。
➢ 对于开发人员拒绝修改但测试人员无法认同的情况,该问题单需提交CCB评审,根据
评审结果,如果确认要修改则进入修改状态,如果不是问题则作为非问题关闭,如果是问题但暂时无法解决则挂起,挂起的问题单到达指定修改期限时会再次进入打开状态。 ➢ 修改后的问题单需由测试人员进行回归测试,如果回归通过则关闭问题单,如果回归不
通过则重新进入打开状态。
画出状态迁移图,确定测试路径
六、流程分析法
例子1:ATM机取款流程
1、 画出业务流程图
插入银行卡是否合法输入密码N<3是否合法Y输入金额NNM<=1500RMBM%100==0Time<=24H&&SUM<=4500RMBM<=ATM中余额确认金额取款退卡结束 2、 设置功能路径优先级
3、 确定测试路径
路径1:(1)(2)(3)(4)(5)
路径2:(1)(6)
路径3:(1)(2)(7)(3)(4)(5) 路径4:(1)(2)(8)
路径5:(1)(2)(3)(9)(3)(4)(5) 路径6:(1)(2)(3)(10)(3)(4)(5) 路径7:(1)(2)(3)(11)(3)(4)(5) 路径8:(1)(2)(3)(12)(3)(4)(5)
路径9:(1)(2)(7)(2)(3)(9)(3)(10)(3)(11)(3)(12)(3)(4)(5)
4、选取测试数据 5、构造测试用例
路径1:(1)(2)(3)(4)(5) 测试用例编号 测试项目 测试标题 重要级别 预置条件 输入 ATM_ST_Qukuan_Normal_001 取款功能 所有字段输入合法成功取款 高 1、 银行卡有效和账户上金额足够 1、 卡号:6225889859687650 2、 密码:123456 3、 取款金额:1000元 1、 插入银行卡 2、 输入密码 3、 输入取款金额 4、 确认金额 5、 取钱退卡 1、 登录成功 2、 页面跳转到zhangsan的邮箱界面 操作步骤 预期结果
例子2:QQ安装过程(课堂练习)
4、 画出业务流程图
QQ安装流程.xlsx
2、设置功能路径优先级
3、确定测试路径 4、选取测试数据 5、构造测试用例
例子3:画出淘宝购物功能的业务流程图
提示:从搜索功能开始直到生成定单
七、正交实验法 例子1:
假设一个WEB站点,该站点有大量的服务器和操作系统,并且有许多具有各种插件的浏览器浏览:
WEB浏览器:Netscape6.2、IE6.0、opera4.0 插件: 无、Realplayer、Mediaplayer
应用服务器:IIS、Apache、Netscape Enterprise 操作系统: Windows2K、Windows NT、Linux
全排列组合数:3*3*3*3=81种
1, 根据需求找出因子和各自的状态,构造因子-状态表 状态 \\ 因子 状态1 状态2 状态3 WEB浏览器 Netscape6.2 IE6.0 opera4.0 插件 无 Realplayer Mediaplayer 应用服务器 IIS Apache Netscape Enterprise 操作系统 Windows2K Windows NT Linux
2, 套用正交表
根据如上1中的因子-状态表,可以确定4因子3状态,则正好可以套用4因子-3状态的正交表 状态 \\ 因子 1 2 3 1 1 1 1 2 1 2 3 3 1 2 3 4 1 2 3 4 5 6 7 8 9 2 2 2 3 3 3 1 2 3 1 2 3 2 3 1 3 1 2 3 1 2 2 3 1 再进行替换
状态 \\ 因子 1 2 3 WEB浏览插件 器 Netscape6.2 Netscape6.2 Netscape6.2 IE6.0 IE6.0 无 Realplayer Mediaplayer 无 Realplayer 应用服务操作系统 器 IIS Windows2K Apache Windows NT Netscape Linux Enterprise Apache Linux Netscape Windows2EnterpriK se IIS Windows NT Netscape Windows EnterpriNT se IIS Linux Apache Windows2K 4 5 6 7 IE6.0 Mediaplayer opera4.0 无 8 9 opera4.0 Realplayer opera4.0 Mediaplayer 3, 转成测试用例
如上表中共得到9个组合,即9条用例,一行的组合即为一条用例
用例1:Netscape6.2 ,无,IIS,Windows2K ;(这四种情况进行组合)
用例2:Netscape6.2,Realplayer,Apache,Windows NT 用例3:。。。。 。。 用例9:
4, 转成正式格式用例
例子2:
某数据库查询语言依规格说明书得到如下的因子―状态表 因子状态 A B C D 打印方式 终端显示 图形显示 行式打印 查询类别 查询方式 元胞类别 1 2 3 功能 结构 逻辑符号 简单 组合 条件 门 功能块 (可用3因子2状态,4因子3状态两种方法)
第二种方法 3因子2状态
1, 构造因子-状态表(用简写表示) 状态 \\ 因子 1 2 3 A A1 A2 A3 B B1 B2 B3 C C1 C2 D D1 D2 D3 根据对需求中各因子的权值的计算,认为D因子和A因子中的A3状态不重要,即需要删减D因子和A因子中的状态A3,如下表
状态 \\ 因子 1 2 3 A A1 A2 B B1 B2 B3 C C1 C2 经过删减后,B因子中存在3个状态,故需要把其中2个状态合为一个节点21,才可以靠拢最接近的3因子2状态正交表
故需要通过用逻辑命令去组合其中的2个状态
布尔图
合并后得到如下表 状态 \\ 因子 1 2 A A1 A2 B B1 21 C C1 C2
3、 套用正交表
根据如上表可以套用3因子2状态正交表,如下 状态 \\ 因子 1 2 3 4 1 1 1 2 2 2 1 2 1 2 3 1 2 2 1 再进行替换,得到如下正交表 状态 \\ 因子 1 2 3 4 A A1 A1 A2 A2 B B1 21 B1 21 C C1 C2 C2 C1 再进行拆分,需要把之前合并成的中间节点21拆出来,得到如下表 状态 \\ 因子 1 2 3 4 5 6 A A1 A1 A1 A2 A2 A2 B B1 B2 B3 B1 B2 B3 C C1 C2 C2 C2 C1 C1
4、 转成测试用例
如上表中共得到6条用例 用例1:A1 B1 C1 用例2:A1 B2 C2 用例1:A1 B1 C1 用例1:A1 B1 C1 用例1:A1 B1 C1
用例1:A1 B1 C1
5、 转成正式用例格式
第一种方法 4因子3状态
2, 构造因子-状态表(用简写表示) 状态 \\ 因子 1 2 3 A A1 A2 A3 B B1 B2 B3 C C1 C2 D D1 D2 D3 因为C 因子中缺少一个状态,为了能正常套用4因子-3状态正交表,故需要虚构一个状态C3来补充 状态 \\ 因子 1 2 3 A A1 A2 A3 B B1 B2 B3 C C1 C2 C3 D D1 D2 D3
3, 套用正交表
根据如上构造因子-状态表可以套用4因子-3状态正交表 状态 \\ 因子 1 2 3 4 5 6 7 8 9 1 1 1 1 2 2 2 3 3 3 再进行替换 状态 \\ 因子 A B C D 2 1 2 3 1 2 3 1 2 3 3 1 2 3 2 3 1 3 1 2 4 1 2 3 3 1 2 2 3 1 1 2 3 4 5 6 7 8 9 A1 A1 A1 A2 A2 A2 A3 A3 A3 B1 B2 B3 B1 B2 B3 B1 B2 B3 C1 C2 C3 C2 C3 C1 C3 C1 C2 D1 D2 D3 D3 D1 D2 D2 D3 D1 因为状态C3是虚拟过来的,所以需要用C因子中已有的状态C1或C2来替换,如下表 状态 \\ 因子 1 2 3 4 5 6 7 8 9 A A1 A1 A1 A2 A2 A2 A3 A3 A3 B B1 B2 B3 B1 B2 B3 B1 B2 B3 C C1 C2 C1 C2 C2 C1 C2 C1 C2 D D1 D2 D3 D3 D1 D2 D2 D3 D1
4, 转测试用例
如上表中共得到9种组合,即9条用例 用例1:A1 B1 C1 D1 用例2:A1 B2 C2 D2 用例3:A1 B3 C1 D3 用例4:A2 B1 C2 D3 用例5:A1 B1 C1 D1 用例6:A1 B1 C1 D1 用例7:A1 B1 C1 D1 用例8:A1 B1 C1 D1 用例9:A1 B1 C1 D1
5, 转正式用例格式 、
例子3:测试PPT的打印功能
因子 状态 1 2 3 4 因子 状态 1 2 3 4 A 打印范围 全部 当前幻灯片 给定范围 A 打印范围 A1 A2 A3 B 打印内容 幻灯片 讲义 备注页 大纲视图 B 打印内容 B1 B2 B3 B4 C 打印颜色/灰度 颜色 灰度 黑白 C 打印颜色/灰度 C1 C2 C3 D 打印效果 幻灯片加框 幻灯片不加框 D 打印效果 D1 D2 1, 根据需求找出因子和各自的状态,构造因子-状态表(简写) 为了靠拢最接近的4因子3状态正交表,因为B因子中有4个状态需要合并为21,
D因子中缺少1个状态,故需要虚拟一个D3 因子 状态 1 2 3 A 打印范围 A1 A2 A3 B 打印内容 B1 B2 21 C 打印颜色/灰度 C1 C2 C3 D 打印效果 D1 D2 D3
2, 套用正交表
根据如上1中的因子-状态表,可以确定4因子3状态,则正好可以套用4因子-3状态的正交表 状态 \\ 因子 1 2 3 4 5 6 7 8 9 10 11 12 1 A1 A1 A1 A1 A2 A2 A2 A2 A3 A3 A3 A3 2 B1 B2 B3 B4 B1 B2 B3 B4 B1 B2 B3 B4 3 C1 C2 C3 C3 C2 C3 C1 C1 C3 C1 C2 C2 4 D1 D2 D1 D2 D1 D1 D2 D2 D2 D1 D1 D1 再进行替换
例子4:租房网(学生课后练习)
租房网搜索栏界面如下:
跟参数具体取值如下:
出租类型 整租 合租 短租 区域 中山区 西岗区 锦州区 开发区 板块 老虎滩 秀月街 青方街 天津街 民主广场 房屋类型 住宅 写字楼 公寓 租金 1k以下 1k到5k 5k以上 户型 单房 二房 三房 四房 别墅 五房
第一种方法 用6因子5状态 出租类型 整租 合租 短租 区域 B 中山区 西岗区 锦州区 开发区 B5 区域 中山区 西岗区 锦州区 开发区 板块 C 老虎滩 秀月街 青方街 天津街 板块 老虎滩 秀月街 青方街 天津街 房屋类型 D 住宅 写字楼 公寓 D4 民主广场 房屋类型 住宅 写字楼 公寓 租金 E 1k以下 1k到5k 5k以上 E4 E5 租金 1k以下 1k到5k 5k以上 户型 单房 二房 三房 四房 别墅 五房 户型 F 单房 二房 三房 四房 21 用简写替换
出租类型A 整租 合租 短租 A4 A5 民主广场 D5
第二种方法 用5因子4状态
经过对权值的计算,删减板块因子和户型因子中的别墅状态,得到如下表 出租类型 整租 合租 短租 区域 中山区 西岗区 锦州区 开发区 房屋类型 住宅 写字楼 公寓 租金 1k以下 1k到5k 5k以上 户型 单房 二房 三房 四房 五房 再进行虚拟和合并
出租类型 整租 合租 短租 A4 区域 中山区 西岗区 锦州区 开发区 房屋类型 住宅 写字楼 公寓 C4 租金 1k以下 1k到5k 5k以上 D4 户型 单房 二房 三房 21(4房,5房) 再套用5因子4状态正交表 状态 \\ 1 因子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 2 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 3 1 2 3 4 2 1 4 3 3 4 1 2 4 3 2 1 4 1 2 3 4 3 4 1 2 4 3 2 1 2 1 4 3 5 1 2 3 4 4 3 2 1 2 1 4 3 3 4 1 2
再对虚拟状态进行替换和对合并状态进行拆分
八、输入域测试法 九、输出域覆盖法 十、异常分析法
1,正常的操作可能会出现的异常现像 2, 非正常的操作导致的异常现像
3, 系统自动偶发的异常(结合系统内部架构)
异常测试.docx
测试用例编号 测试项目 测试标题 重要级别 预置条件 输入 操作步骤 预期结果
163mail_ST_DataServer _001 邮箱数据库功能 数据库服务器死机测试 中 1、 163邮箱功能正常 1、 同一秒内登录10000个用户 1、 用LR工具模拟同一秒内登录10000个用户 2、 查看数据库服务器反应 1、数据库服务器出现死机 十一、错误猜测法
错误猜测法.docx
十二、题目
题目一 设计从左到右的输入框依次输入的数字,运算符,数字,点击【计算】按纽在最
后一个框显示计算结果,对于客户端和服务器端如何测试?尽可能写出你的测试方法。
题目二 自选所学测试用例设计方法进行用例设计 携程网—飞机定票
普通搜索:
航程类型:单程、往返、联程
出发城市:北京、上海等(可直接填写(中文或全拼或首字母)、或点开界面选择) 到达城市:同出发城市
出发日期:yyyy-mm-dd(可直接按格式填写或点开界面选择日期) 高级搜索:
出行人数:1,2,3,4,5,6,7,8,9
航空公司:不限、中国国航、其它 乘客类型:成人、儿童、婴儿 舱位等级:经济、公务/头等仓
如下使用等价类、边界值、正交试验法来设计 输入域 出发城市 输入条件 字符类型 有效等价类 中文(合法地名) (1) 全拼(2) 首字母(3) 三字码(4) 点选(5) 填写 中文(合法地名) 全拼 首字母 三字码 点选 填写 不相同 能交换 【当前系统年份,当前系统年份+1年】 【01,12】 (4) 8位 (7) 数字 (10) 【01,30】 (12) 无效等价类 数字(6) 特殊字符(7) 输入字符为中文、全拼、首字母、三字码的不合法地名(8) 不填 数字 特殊字符 输入字符为中文、全拼、首字母、三字码的不合法地名 不填 相同 不能交换 <当前系统年份 (2) >当前系统年份+1 (3) <01 (5) >12 (6) <8 (8) >8 (9) 非数字 (11) <01 (13) >30 (14) <01 (16) >31 (17) <01 (19) >28 (20) <01 (22) >29 (23) 其它符号,如“/” 不能选中 到达城市 是否必填 字符类型 出发日期 是否必填 城市名与出发城市相同 与出发城市地名交换 年份 月份 字符长度 字符类型 4,6,9,11月 1,3,5,7,8,【01,31】 (15) 10,12月 平年的2月份 闰年的2月份 日期间隔符 点选 【01,28】 (18) 【01,29】 (21) “-” 能选中
测试用例:
出发城市:深圳/ Shenzhen / SZ/ SZX/ 点选 到达城市:北京/Beijing / BJ/ BJK/ 点选
出发日期:2016-11-14 / 2016-12-31 / 2017-02-28 / 2020-02-29 (通过改系统时间来测试)
有效等价类用例
用例1:
出发城市:深圳
到达城市:北京
出发日期:2016-11-14
用例2:
出发城市:Shenzhen
到达城市:Beijing 出发日期:2016-12-31
用例3:
出发城市: SZ 到达城市: BJ
出发日期: 2017-02-28
用例4
出发城市:SZX 到达城市: BJK
出发日期:2020-02-29
用例5
出发城市:点选 到达城市:点选
出发日期:2016-11-14
无效等价类用例 用例6:
出发城市:输入数字 用例7:
出发城市:输入特殊字符 用例8:
出发城市:输入“困难” 。。。。。
高级搜索
构造因子-状态表 状态 \\ 因子 状态1 状态2 状态3 状态 \\ 因子 状态1 状态2 状态3 状态 \\ 因子 出行人数 1 5 9 出行人数 1 5 9 出行人数 航空公司 航空公司 不限 中国国航 中国联合 航空公司 不限 中国国航 中国联合 乘客类型 乘客类型 成人 儿童 婴儿 乘客类型 成人 儿童 婴儿 舱位等级 舱位等级 经济舱 公务/头等 舱位等级 经济舱 公务/头等 D4 给舱位等级因子补充一状态D4 再套用4因子3状态正交表 1 2 3 4 5 6 7 8 9 1 1 1 5 5 5 9 9 9 不限 中国国航 中国联合 不限 中国国航 中国联合 不限 中国国航 中国联合 成人 儿童 婴儿 儿童 婴儿 成人 婴儿 成人 儿童 经济舱 公务/头等 经济舱 公务/头等 经济舱 公务/头等 公务/头等 经济舱 经济舱
转成测试用例(同上进行组合测试,减少用例数)
用例1:
出发城市:深圳
到达城市:北京
出发日期:2016-11-14 出行人数:1 航空公司:不限 乘客类型:成人 舱位等级:经济舱
用例2:
出发城市:Shenzhen
到达城市:Beijing 出发日期:2016-12-31 出行人数:1
航空公司:中国联合 乘客类型:婴儿
舱位等级:公务/头等
用例3:
出发城市: SZ 到达城市: BJ
出发日期: 2017-02-28 出行人数:1
航空公司:中国国航 乘客类型:儿童 舱位等级:经济舱
用例4
出发城市:SZX
到达城市: BJK
出发日期:2020-02-29 出行人数:5 航空公司:不限 乘客类型:儿童
舱位等级:公务/头等
用例5
出发城市:点选 到达城市:点选
出发日期:2016-11-14 出行人数:5
航空公司:中国国航 乘客类型:婴儿 舱位等级:经济舱
题目三 自选所学测试用例设计方法进行用例设计
十三、附加
布尔量:布尔型Boolean
用于布尔量的运算有布尔运算(或称逻辑运算),它们是: AND(与),OR(或),NOT(非)
对布尔量还可以进行关系运算(或称比较运算)。关系运算有以下6种: <(小于),<=(小于等于),=(等于),>(大于),>=(大于等于),<>(不等于)
1、测试用例编写模板 测试用例编号 测试项目 测试标题 重要级别 预置条件 输入 操作步骤 163mail_ST_Login_MailAccount_001 邮箱登录功能 输入正确的用户名和密码成功登录 高 2、 能正常登录163邮箱 3、 系统中已经存在正确的用户名zhangsan和密码123456 2、 用户名:zhangsan 3、 密码: 123456 3、 打开163邮箱登录界面 4、 选择邮箱账号登录 5、 输入用户名和密码 6、 点击登录按纽 6、 登录成功 7、 页面跳转到zhangsan的邮箱界面 预期结果 或参考如下:
系统测试用例模板.xls
2、因果图:自动售货机
4、ATM取款业务流程分析:
5、常见的正交表:
【正交实验】因子-状态表.doc
L更多正交表介绍请参阅:http://www.york.ac.uk/depts/maths/tables/orthogonal.htm
6、国内通航城市三字代码 《国内通航城市三字代码》
城市 代码 城市 代码 城市 代码 城市 代码 城市 代码
北京 PEK 沈阳 SHE 福州 FOC 广州 CAN 深圳 SZX 上海 SHA 海口 HAK 襄樊 XFN 长沙 CSX 常德 CGD 浦东 PVG 丹东 DDG 锦州 JUZ 杭州 HGH 宁波 NGB 天津 TSN 南昌 KHN 郑州 CGO 重庆 CKG 长春 CGQ 昆明 KMG 青岛 TAO 烟台 YNT 常州 CZX 成都 CTU 贵阳 KWE 温州 WNZ 厦门 XMN 太原 TYN 南京 NKG 大连 DLX 宜昌 YIH 北海 BHY 晋江 JJN 三亚 SYX 合肥 HFE 西安 SIA 武汉 WUH 徐州 XUZ 湛江 ZHA 济南 TNA 广汉 GHN 大同 DAT 黄山 TXN 桂林 KWL 兰州 LHW 延吉 YNJ 延安 ENY 九江 JIU 安康 AKA 南宁 NNG 伯力 KHV 汉中 HZG 长治 CIU 榆林 UYN 黄岩 HYN 安庆 AQG 汕头 SWA 赣州 KOW 朝阳 CHG 万县 WXN 包头 BAV 南阳 NNY 沙市 SHS 吉林 JIL 西昌 XIC 银川 INC 珠海 ZUH 黑河 HEK 衡阳 HNY 庐山 LUZ 铜仁 TEN 拉萨 LXA 洛阳 LYA 汉城 SEL 西宁 XNN 衢州 JUZ 香港 HKG 临沂 LYI 南充 NAO 南通 NTG 达县 DAX 恩施 ENH 澳门 MFM 台北 TPE 柳
州 LZH 丹山 HSN 宜宾 YBP 梁平 LIA 丽江 LJG 赤峰 CIF 绵阳 MIG 广元 GYS 无锡 WUX 吉安 KNC 高雄 KHH 义乌 YIW 哈尔滨 HRB 石家庄 SJW 张家界 DYG 秦皇岛 SHP 阿勒泰 AAT 海拉尔 HLD 牡丹江 MDG 佳木斯 JMU 阿克苏 AKU 景德镇 JDZ 库尔勒 KRL 连云港 LYG 武夷山 WUS 乌鲁木齐 URC 齐齐哈尔 NDG 呼和浩特 HET 乌兰浩特 HLH 锡林浩特 XIL 克拉马依 KRY 西双版纳 JHG
因篇幅问题不能全部显示,请点此查看更多更全内容