测试设计:是将概括的测试目标转化为具体的测试条件和测试用例的一系列活动。
测试分析和设计的主要任务
- 评审测试依据:需求,系统架构,设计和接口说明
- 评估测试依据和测试对象的可靠性
- 确定优先级:测试项、规格说明、测试对象行为和结构的分析
- 设计测试用例,确定优先级
- 确定测试条件和测试用例所需的必要的测试数据
测试用例:是通过使用在测试计划中确定的测试技术,对已确定的测试条件进行逐步推敲,设计出来如何具体操作产生何种结果的文档。(指引我们测试的步骤文档)
- 特征:可重复性、可验证性、需求可追踪性
测试用例设计
- 前置条件:项目或局部环境的需求,及其交付计划。
- 测试步骤
- 测试数据
- 预期结果
demo:序号,模块名称,测试子项,用例名称,用例级别,预置条件,测试步骤,预期结果,测试结果,缺陷编号,备注
测试用例设计常用方法(6)- 黑盒测试
- 等价类划分法
- 边界值法
- 因果图-判定表法
- 正交实验法
- 场景法
等价类划分法
如果不能进行穷举测试,怎么判断所有参数组合是正确的?
等价类划分:将程序的输入域划分为若干部分,从每个部分选取少数代表性数据当做测试用例,每类代表性数据在测试中的作用,等价于这类中的其他值。
- 输入条件规定了取值范围或个数,可确定一个有效等价类(取值有意义有效)和两个无效等价类(超出取值左右范围)。
- 输入条件(非此即彼)判断是否成立,可划分一个有效等价类和一个无效等价类。
- 输入条件规定一组可能的值,而且程序用不同方式处理不同的值,可为每个值划分一个有效等价类,并划分一个无效等价类(取值范围外)。
基于等价类划分的用例设计
- 明确测试对象,非测试对象保证正确。
- 划分等价类
- 确定等价类表
- 确定测试用例
- 为每个等价类规定一个唯一编号。
- 设计测试用例,使其尽可能多覆盖有效等价类,重复这一步,直到所有有效等价类被覆盖。(尽可能少的测试用例覆盖尽可能多的有效等价类)
- 设计测试用例,使其只覆盖给一个无效等价类,重复使所有无效等价类被覆盖。(一个测试用例对应一个无效等价类)
等价类划分步骤
两位数加法器,取值范围为 -99-99
- 根据测试需求划分有效等价类和无效等价类。
- 建立等价类表
- 确定测试用例
- 细化等价类划分
在取值范围内,考虑正数相加、负数相加、正负数相加的情况。
不在取值范围,则考虑输入字母、汉字、符号的情况。
- 完善测试用例
等价类的特点
- 测试相同的内容
- 若等价类测试能捕获缺陷,则该等价类的其他测试也能捕获该缺陷
- 若等价类测试不能捕获缺陷,则该等价类的其他测试也不会捕获缺陷
- 正确划分等价类,可以降低测试用例的数量,且不会遗漏其他测试情况
等价类划分练习
- 测试需求:余额宝快速到账(0-1w)和普通到账(0-100w)
- 设计用例
- 细致分析需求
等价类划分面试题
输入3个整数,当做三角形的3条边的长度,判断三角形是不等边、等腰还是等边三角形。
- 建立等价类表
- 确定测试用例
边界值分析法(用于完善等价类划分):一种补充等价类划分的测试用例测试方法,选择等价类边界的测试用例,并且都重视输入域和输出域的测试用例。
两位数加法器,取值范围为 -99-99
- 以取值范围边界内及刚刚超出范围的边界外的值作为测试用例
- 设计用例
边界值分析法练习
- 测试需求:余额宝快速到账(0-1w)和普通到账(0-100w)
- 设计用例
因果图和判定表
- 解决问题:等价类划分法和边界值分析法着重考虑输入条件,而不考虑输入条件的各种组合、输入条件之间的相互制约关系。
- 因果图(逻辑模型):一种适合于描述多种条件组合、产生多个相应动作的测试方法。
- 因果图法思想:程序功能可以用决策表形式表示,根据输入条件组合规定相应的操作。
- 判定表:是分析和表达多逻辑条件下执行不同操作的工具,由四个部分组成:条件桩(条件,无次序)、动作桩(操作,排列无约束)、条件项(条件桩对应的取值)、动作项(在条件项各种取值情况下采取的动作)。
- 因果图-判定表:从程序规格说明书的描述中找出输入条件(因)和输出结果(果),将因果图转换为判定表,为决策表中每一列设计一个测试用例,考虑到输入条件的各种组合、输入条件之间的相互制约关系。
因果图与判定表设计步骤
- 分析规格说明书的因(输入)和果(输出),并给每个原因和结果赋予一个标识符。
- 找出因果之间的关系,并画出因果图。
- 有些因因、因果之间组合情况不可能出现,可在因果图上使用记号表明约束条件。
- 把因果图转换为判定表。
- 根据判定表中的每一列设计测试用例。
因果图与判定表练习
两位数加法器,取值范围为 -99-99
- 分析因果
- 分析互斥关系(暂无)
- 分析、简化并画出判定表
- 设计测试用例
余额宝快速到账(0-1w)和普通到账(0-100w) - 分析因果
- 分析、简化并画出判定表
因果图-判定表面试题
某公司工资分为年薪制a1,月薪制a2,错误程度分为普通a3,严重a4。a1员工犯普通错扣工资2%(b1),犯严重错扣6%(b2)。a2员工犯普通错扣4%(b3),犯严重错扣8%(b4)。
-
分析因果
-
分析互斥关系
a1,a2互斥,b1,b2和b3,b4互斥,a3,a4可以同时具备。 -
分析,简化并画出判定表
正交实验法:从大量实验点挑选出适量有代表性的点,应用正交表合理安排实验的设计方法。
- 指标:将判断实验结果优劣的标准叫做实验的指标。
- 因子、因素:所有影响实验指标的条件。
- 因子的状态:影响实验因子,因子变量的取值。
正交实验法设计步骤
- 提取功能说明,构造因子-状态表(n*m)
- 加权筛选,生成因素分析表:计算各因子与状态的权值,删去权值较小的一部分,测试用例缩减到允许范围。
- 利用正交表构造测试数据集:利用逻辑命令组合各因子的状态,做出布尔图,根据布尔图得到相应阶数的正交表,依照因果图根节点到子节点逐步得到最终的正交表。
- 利用正交表每行数据构造测试用例:Ln(t ^ c),L正交表代号,需做n次实验(行数),每个因素为t水平(值),最多可观察c个因素(列数)。
L4(2 ^ 3)如图,水平数1对2错,3个因素对应用户名,密码,验证码
混合型正交表 L8(2 ^ 4 4 ^ 1),代表有5个因素,4个因素有两种结果,1个因素有四种结果。
查找正交表
- Technical Support:http://support.sas.com/techsup/technote/ts723_Designs.txt
- http://www.york.ac.uk/depts/maths/tables/orthogonal.htm
正交实验法练习
测试支付宝web网站,模仿复杂兼容性测试的真实场景
- 提取系统功能说明中的因子
web浏览器:IE11、Chrome、Firefox
插件:无、Flash、支付宝插件
服务器:IIS、Apache、Jetty
操作系统:Win2000、WinNT、Linux - 分析各因子状态,每个因子的状态分别以0,1,2标识
- 选择正交表:水平数为3,因子数为4,选择L9(3 ^ 4)
- 将因子、状态映射到上面正交表中
测试场景法:通过用例的每条路径都用基本流和备选流,基本流是经过用例最简单的路径。
举栗子:基本流相当于登录过程
备选流1:登录时发现未注册,从基本流跳到备选流1,注册完回到基本流
备选流2:用户登录时发现未注册,直接不注册退出页面,结束用例
备选流3:登录时密码错误,修改密码,回到基本流
备选流4:登录时密码错误,直接不登录退出页面,结束用例
每个经过用例的可能路径,可以确定不同的用例场景。
场景法步骤
- 根据说明,描述出程序的基本流及各备选流
- 根据基本流和备选流生成不同的场景
- 对每一个场景生成相应的测试用例
- 复审测试用例,去掉多余的测试用例后,对每一个测试用例确定测试数据值
场景法练习
淘宝购物过程:用户进入网站,选择商品,放入购物车,结账时,用户登录账号后结账并生成订单。
- 描述基本流和备选流
- 根据基本流和备选流生成场景
测试用例综合设计
- 测试用例项划分
经典方法是瀑布模型,从上到下,逐渐细分,进行测试用例的编写。 - 切面设计
功能点切面:常见切面,页面的一个按钮相当于一个功能点,按每个功能点编写用例。
隐含切面:完整业务流程的测试,从需求、业务角度进行编写用例。 - 功能点用例设计
(1)任何情况下都需要使用边界值分析法,其设计出的测试案例发现bug能力最强。
(2)必要时使用等价类划分法补充一些测试用例。
(3)如果功能说明中含有输入条件的组合情况,一开始可以选用因果图法。
(4)如果业务复杂度高,可适当使用场景法补充用例。
测试用例综合设计练习
举栗子:共享自行车充值(边界值法、等价类划分法、因果图-判断表法、场景法)
- 边界值考虑充值金额(元):0,1,负数,非金额参数,多位小数(小数点后3位),银行卡限额等
- 充值时的支付渠道:支付宝、微信、银联等
- 考虑异常场景:充值失败、银行卡余额不足、银行返回超时等
- 更复杂的场景:满减、满赠、增加抽奖次数等