测试分析和设计的主要任务:
确定测试条件
确定测试用例
测试用例设计包括以下关键点
测试用例案例
序号 | 模块名称 | 测试子项 | 用例名称(测试意图) | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 测试结果 | 缺陷编号 | 备注 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 大模块 | 小模块 | ||||||||
2 |
项目:测试一个两位数的加法计算器
测试需求:测试两个参数的值相加后的结果是否正确。
开始测试:
分别给第一个参数和第二个参数输入下表中的值,得到测试结果如表所示
不能把-99到99所有数的相加情况都测试一遍,那么问题有:
1、在测试了1+1 1+2 1+(-1) 等这些情况之后,是否还有必要测试1+3,1+4呢
2、如果不穷举测试,能否放心的认为所有的参数组合都是正确的?
等价类划分法:概念
把程序的输入域划分为若干部分
然后从每个部分中选取少数代表性数据作为测试用例
每一类的代表性数据在测试中的作用等价于这一类中的其他值
也就是说,如果某一类中的例子发现了错误,这一等价类中其他例子也能发现同样错误,反之同理。
等价类划分法:原则
如果输入条件规定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类。
比如 [-99,99]为取值区间,则大于99和小于-99的都是无效等价类
如果输入条件说明了一个“必须成立”的情况,则可划分一个有效等价类和一个无效等价类。
比如 “今天必须完成100题” ,则“完成100题”是有效等价类 “未完成100题”是无效等价类。
如果输入条件规定了一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类。
如果确知,已划分的某等价类中的各元素(例子)在程序中处理的方式是不同的,则应据此将此等价类进一步划分为更小的等价类。
确立了等价类之后,建立等价类表,列出所有划分出的等价类。
基于等价类划分的用例设计
项目:测试一个两位数的加法计算器
测试需求:测试两个参数的值相加后的结果是否正确。
Step1:根据测试需求可以分为三个等价类:
1、一个有效数据的等价类,两个无效数据等价类
有效等价类: -99<=数值<=99
无效等价类:数值<-99 数值>99
Step2:建立等价类表:
Step3:确定测试用例:
1、为等价类表中的每一个等价类分配一个唯一编号
2、设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类
3、重复,直至所有有效等价类均被测试用例覆盖
4、与上步类似,设计一个新的测试用例,使它只覆盖一个无效等价类
5、重复,直至所有无效等价类均被测试用例覆盖
Step4:细化等价类划分
细化之后的等价类表
PS:无效等价类中还有非数字情况,可以加上。
Step5:完善测试用例
等价类的特点
等价类划分要注意的问题
测试需求:余额宝提现到银行卡增加新规则:快速到账(2h)日限额1w
分析过程:
设计用例
**思路:**首先分为两个功能(快速提现和普通提现),然后快速提现要求金额在0和1W之间(有效等价类),提现小于0和大于1W都是无效。其次普通提现不受限制,只要求提现金额在0和余额之间即可,(所以0和总余额之间都是有效值),无效指为小于0以及大于总余额。
优化:
日限额1W,可以是当天多次提现,要对总提现额度做划分(第一次和第N次)
PS:由于每次操作对应的功能场景不一样,所以每次无效等价类对应的<=0的情况都是不同的,比如第一次输入的提现金额为0和第二次提现金额0是不一样的。
边界值分析法是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,二十选择等价类边界的测试用例。
以两位数相加计算器为例
由于允许输入的值在-99和99之间,所以-99和99可看作两个边界值,测试的时候选取紧邻边界值的数值和边界值本身:
思路:边界为0、1W-已提现金额、1W,总余额最大值,取边界和紧邻边界的值:-1、0、1、9999、10001等
PS:最大值为约定数值,比如余额宝中最多可输入七位数。
等价类划分和边界值分析都是着重考虑输入条件,而不考虑输入条件的各种组合、输入条件之间的相互制约关系。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、产生多个相应动作的测试方法,就需要因果图(逻辑模型)
判定表:分析和表达多逻辑条件下执行不同操作的工具。
由四个部分组成:
1、分析软件规格中那些是原因,哪些是结果?并给每个原因和结果赋予一个标识符。
2、找到原因和结果之间、原因和原因之间的相互关系。
3、有些组合情况不可能出现,为表明这些情况,在因果图上使用一些记号表明约束或限制条件。
4、把因果图转换为判定表。
5、根据判定表的每列设计用例。
两位数计算器实战
余额宝例子
面试题 【工资发放】
a1 年薪制 a2月薪制 a3普通错误 a4严重错误
a1和a2互斥;b1 b2 和b3 b4互斥 a3 和a4可同时具备。
是从大量的试验点中选取适量的、有代表性的点,应用迦罗卡瓦理论导出的“正交表”,合理的安排试验的一种科学试验设计法。(很少用到,一般大型系统才会用到,正常情况下极少有穷举所有的情况)
设计步骤
1、提取功能说明,构造因子——状态表
2、加权筛选,生成因素分析表(优先级确定,删掉优先级低的)
3、利用正交表构造测试数据集
4、利用正交表每行数据构造测试用例
案例:测试支付宝web网站,站点有大量的服务器和操作系统,并且有多种浏览器及其插件
由于上述方法比较单一从输入输出两方面考虑,但现在的软件几乎都是事件触发来控制流程的,事件触发时的情景形成场景,而同一事件不同的触发顺序和处理结果就形成了事件流。
tb购物流程
经典方法:瀑布模型,从上到下,逐渐细分,大模块包含小模块,更小模块(类似俄罗斯套娃),把系统划分成一块一块的,来测试,保证系统的完整性。
功能点切面:最常见的切面,通常认为页面上的一个按钮就是一个功能点。根据功能的复杂程度,按每个功能进行用例的撰写。
隐含切面:完整业务流程的测试;从需求、业务角度进行编写。比如完整的购物流程。
举例:共享单车充值案例
1、边界值:充值金额0、1、-1、多位小数、银行卡限额等
2、充值选择不同银行、支付渠道,所以针对支付宝、微信、银联等渠道分别设计测试用例
3、考虑异常,充值失败,银行卡余额不足,银行账户异常,银行卡返回超时等。场景法
4、更复杂的业务场景,比如满减、满赠、抽奖等等
-----------------------------------------------分割线--------------------------------------------------------