测试用例设计
今日目标
- 使用边界值法设计出测试用例
- 使用判定表法设计出测试用例
软件测试设计方法
- 等价类(五星)
- 边界值(五星)
- 判定表(五星)
- 场景法(流程图)(五星)
- 错误推测法(二星)
1.等价类划分法(五星)——复习知识
-
作用:从穷举测试中解放出来,找到具有共同特性的测试输入子集。
-
概念:代表性的测试输入集
-
分类
- 有效等价类(满足需求)
- 无效等价类(不满足需求)
-
设计测试用例的步骤
- 需求分析
- 划分等价类
- 设计测试用例
-
典型应用场景
- 具有典型输入框的场景
2.边界值(五星)
-
作用:对等价类划分法的补充。测试经验表明错误往往会发生在输入和输出范围的边界。
-
概念:基于输入输出的边界值(有效等价类和无效等价类的分界点)进行测试的一种黑盒测试方法。
-
边界值的确定
-
上点:边界点(边界上得点。开区间的话,上点就是在域外;闭区间得话,上点就是在域内)
-
内点:范围内的点
-
离点:离边界最近的两点(刚好大于、刚好小于)
-
-
设计测试用例步骤
-
需求分析 明确需求
-
划分等价类 有效和无效等价类
-
确定边界范围值 :上点、内点和离点
-
提取数据设计测试用例
-
-
典型应用场景
- 在等价类的基础上针对有边界范围的测试数据输入的地方
- 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
- 典型代表:有边界范围的输入框类测试
案例1:QQ账号(6——10位自然数)
需求 | 数学表示 | 上点 | 内点 | 离点 | 精简5点 |
---|---|---|---|---|---|
6——10位自然数 | [6,10] | 6 10 | 8 | 5 7 9 10 |
只考虑有效等价类:【包含了边界点为6(上点)、5(离点)、11(离点)的测试用例】
有效等价类加上边界值法后设计的测试用例:【添加了 边界点为10(上点)、7(离点)、9(离点)和8(内点) 的测试用例】
注:正确的测试用例比错误的测试用例优先级高
案例2:添加标题(标题长度>0且标题长度<=30)
需求 | 数学表示 | 上点 | 内点 | 离点 | 精简5点 |
---|---|---|---|---|---|
标题长度>0且标题长度<=30 | (0,30] | 0 30 | 15 | -1 1 29 31 | 0 1 15 30 31 |
案例3:两位数加法器
需求(两位数加法器取值范围) | 数学表示 | 上点 | 内点 | 离点 | 精简5点 |
---|---|---|---|---|---|
大于等于-99,小于等于99 | [-99,99] | -99和99 | 20 | -100,100 | |
大于-99,小于等于99 | (-99,99] | -99,99 | 20 | -98,100 | |
大于等于-99,小于99 | [-99,99) | -99 99 | 0 | -100 98 | |
大于-99,小于99 | (-99,99) | -99 99 | 0 | -98 98 |
注:
如果是闭区间,离点是区域范围外离上点最近的点
如果是开区间,离点是区域范围内离上点最近的点
助记:
上点是有效数据时,离点是无效数据
上点是无效数据时,离点是有效数据
案例4:sina邮箱
新浪邮箱登录,要求输入(邮箱名)@sina.cn和(密码)
邮箱名为:4-16位字符,支持英文、数字、下划线(不能全是数字或者下划线)
密码:6-18位字符
扩展知识:
-
边界值优化【7点变5点】
-
结论:
-
上点:必选(不考虑区间开闭)
-
内点:必选(建议选择中间范围)
-
离点:开内闭外(考虑开闭区间,开区间选择内部离点即有效点,闭区间选择外部离点即无效点。)
-
-
例子:大于-99,小于等于99经过边界值优化后取的五点(绿色):
3.判定表(五星)
-
概念:存在多个输入条件、多个输出结果,输入和输入之间有组合关系,输入和输出之间有依赖或制约关系。
-
作用:等价类边界值分析法主要关注单个输入类条件的测试,并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试。
-
判定表组成:
-
条件桩:所有输入条件,如欠费状态、关机状态
-
动作桩:所有的可能的输出结果,如允许主被叫、不允许主被叫。
-
条件项:单个条件的取值范围,一般都是有效等价类和无效等价类。
表示方式:
① 字符: 真/有效等价类:Y ; 假/无效等价类:N
② 数字: 真/有效等价类:1 ; 假/无效等价类:0 -
动作项:基于每一种条件的组合,得到确认的结果,如打不通等。
-
-
设计测试用例的步骤
- 明确条件桩(找到所有的输入条件)
- 明确动作桩(找到所有的输出结果)
- 对条件桩进行全组合。
- 明确每个组合对应的动作桩(基于每一种条件的组合情况,确定本组合下的输出结果。)
- 设计测试用例,每行数据对应一条测试用例。
-
真假表示说明:
表示形式 真 假 数字 1 0 符号 Y N -
使用场景:多条件组合情况
案例1:用户呼叫(若用户欠费或关机,则打不通(不允许主被叫))
不欠费表示条件成立,欠费表示条件不成立;
不关机表示条件成立,关机表示条件不成立。
案例2:订单状态
订单检查:
如果金额大于500元,又未过期,则发出批准单和提货单;
如果金额大于500元,但过期了,则不发批准单与提货单;
如果金额小于500元,则不论是否过期都发出批准单和提货单;
在过期的情况下,不论金额大小还需要发出通知单。
案例3:文件修改
如果想对文件进行修改,
输入的第一列字符必须是A/B,第二列字符必须是一个数字,
如果第一列字符不正确,则给出信息L;
如果第二列字符不正确,则给出信息M。
4.因果图(扩展)
-
概念:用图解的方法表示输入的各组合关系,写出判定表,进而设计测试用例的一种【黑盒测试】方法。
-
适用范围:适用于分析程序输入条件的各种组合情况,以及输入和输出之间的依赖关系。
-
核心
- 因:条件
- 果:结果
-
基本符号(掌握)
- 恒等(-):条件成立,结果成立。
- 非(~)NOT:条件成立,结果不成立;条件不成立,结果成立。
- 或(V)OR:只要有一个条件成立,结果就成立;所有条件都不成立时,结果才不成立。
- 与/且(^)AND:多个条件必须同时成立,结果成立;只要有一个不成立,结果就不成立。
-
设计测试用例的步骤
-
需求分析
-
画出因果图
-
将因果图转换为判定表
-
生成测试用例
-
案例1:文件修改
如果想对文件进行修改,
输入的第一列字符必须是A/B,第二列字符必须是一个数字,
如果第一列字符不正确,则给出信息L;
如果第二列字符不正确,则给出信息M。
结果
- 小结
- 输入条件比较少(2,3,4),推荐直接使用判定表。
- 输入条件比较多(>4),推荐使用因果图。
5.正交法(扩展)
核心思想
- 用最小的测试用例获得最大的测试覆盖率。
正交表
说明
- k代表因素(输入参数)
- m叫水平(输入参数的取值)
- n代表测试用例数
- 读法:k因素m水平
- 知道km找到对应标准的正交表(直接百度k因素m水平正交表)之后,只要会ctrl+c和ctrl+v就行了
基于正交表设计测试用例
- 步骤
- 需求分析
- 确定因素与水平(因素:控件名称;水平:每个控件对应的取值)
- 确定要采用的正交表
- 将正交表中的字母用文字代替
- 设计测试用例(一行就是一条测试用例)
案例1:字符属性设置程序
窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值
字体:仿宋、楷体、华文彩云
字符样式:粗体、斜体、下划线
颜色:红色、绿色、蓝色
字号:20号、30号、40号
分析
因素:字体、字符样式、颜色和字号 4
水平:每个条件都能取3个值 3
所以找四因素三水平的表格,如下图:
正常要有81个测试用例,利用正交表只要9条测试用例即可。
依次复制粘贴可得9条测试用例:
case | 字体 | 字符样式 | 颜色 | 字号 |
---|---|---|---|---|
1 | 仿宋 | 粗体 | 红色 | 20号 |
2 | 仿宋 | 斜体 | 绿色 | 30号 |
3 | 仿宋 | 下划线 | 蓝色 | 40号 |
4 | 楷体 | 粗体 | 绿色 | 40号 |
5 | 楷体 | 斜体 | 蓝色 | 20号 |
6 | 楷体 | 下划线 | 红色 | 30号 |
7 | 华文彩云 | 粗体 | 蓝色 | 30号 |
8 | 华文彩云 | 斜体 | 红色 | 40号 |
9 | 华文彩云 | 下划线 | 绿色 | 20号 |
基于allpairs设计测试用例
- 目的
不用自己一个一个去复制粘贴了 将确定的因素和水平放至txt文件中 运行allpairs自动找到正交表设计出测试用例。 - 步骤
-
需求分析
-
在excel表格中确定因素与水平(因素:控件名称;水平:每个控件对应的取值)
-
将确定的因素与水平ctrl+c ctrl+v复制到txt文件中保存文件后关闭txt文件,注意不要修改任何信息。
-
文本文档放到allpairs文件夹下,这个文件名不要带中文不要纯数字最好就用原始的 test.txt 命名。此时txt文件的路径为
D:\workspace\网页\allpairs\test.txt -
打开DOS窗口,进入allpairs目录
- 可以直接在txt所在页面直接点击路径,输入cmd+回车,进入控制台就已经在allpairs文件夹处。
- win+r进入控制台,输入D:\workspace\网页\allpairs 进入 allpairs文件夹。
-
运行命令:allpairs.exe test.txt > result.txt 没有消息就是好消息
-
根据生成的新文件编写测试用例(一行就是一条测试用例)
-
案例2:用户筛选按钮
假设有一个用户筛选功能,有3个输入分别是体型、年龄段、性别,
体型有3个取值:胖、适中、瘦;
年龄段有3个取值:老人、青年、儿童;
性别有2个取值:男,女;
请设计测试用例。
复制到txt文件,打开cmd运行命令,打开result.txt选取对应结果(即测试用例)粘贴到xlsx文件中。
只要关注testcase处的内容 下面的不用管他 pairings那列也不用管。~男是因为性别只有两个可选:男 女。表里两个~男可以用两个男或两个女替换,但不能用一男一女替换。
6.场景法(流程图法)
-
概念:场景法就是模拟用户操作软件时的场景,主要用于测试多个功能之间的组合使用情况。
-
使用测试阶段
- 集成测试
- 系统测试
- 验收测试
-
设计测试用例的步骤
-
需求分析
-
绘制流程图
-
设计测试用例(一条流程路径就是一条测试用例)
-
-
流程图常用符号
-
开始或结束:椭圆
-
方向或路径:箭头
-
处理或操作:长方形
-
判断:菱形
-
输入或输出:平行四边形
-
-
绘制流程图
-
第1步:确认场景中关键业务步骤
-
第2步:确定业务之间的先后顺序
-
第3步:用箭头连接即可
-
7.错误推测法
-
概念:利用经验或智慧发现程序中可能犯错的地方。
-
使用场景
-
重要功能
-
使用同类型产品
-
任务急、时间紧、资源少
-
8.测试用例设计方法总结
- 具有输入功能,但输入之间没有组合关系==》【等价类】
- 输入有边界 如长度、类型==》【边界值】
- 多输入、多输出、输入与输入之间存在组合关系、输入与输出之间存在依赖或制约关系==》【判定表、因果图】
- 用最少的测试用例获得最大测试覆盖率时 ==》【正交法】(输入和输入之间可能互斥或依赖)
- 多个功能的组合测试 ==> 【场景法、流程图】
- 最后推荐使用【错误推测法】来进一步补充测试用例
今日总结
- 能够结合案例找出边界值的上点、离点和内点
- 能够使用边界值方法设计(新浪邮箱登录案例)测试用例
- 能够说出边界值方法的适用场景
- 能够使用判定表方法设计(文件修改案例)测试用例
- 能够说出判定表方法的使用场景
- 能够说出场景法的应用场景
- 能够说出错误推断法的应用场景