功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】

如何设计软件设计【测试用例设计】

一、测试设计与测试用例

  • 测试设计:将概括的测试目标转化为具体的测试条件和测试用例的一系列活动。

测试分析和设计的主要任务:

  1. 评审测试依据
    (需求、系统架构、设计、接口说明等)做到心中有数,理解北侧的系统是什么状态,包含什么内容。
  2. 评估测试依据和测试对象的可靠性
    (文档很完善,但是到了实际测试过程中发现实际情况和文档不一样,项目迭代和运行过程中,需求接口等一直在变,但是没有记录到文档中)
  3. 通过对测试项、规格说明、测试对象行为和结构分析,识别测试条件并确定优先级
  4. 设计测试用例,并确定优先级
  5. 确定测试条件测试用例所需的必要的测试数据

确定测试条件

  1. 依据在测试策略或测试计划中确定的测试技术。比如 要做性能自动化兼容测试等.
  2. 通过对测试依据和测试目标的分析。可以确定需要测试的内容,获得测试条件。

确定测试用例

  1. 测试用例:是通过使用在测试计划中确定的测试技术,对于已确定的测试条件进行逐步推敲,精炼而设计出来的重点说明如何具体操作产生何种结果的文档。(指引测试的步骤文档,包含场景、方法论 等的设计)
  2. 测试用例应该具有 可重复性可验证性需求可追踪性 不能一概而说。

测试用例设计包括以下关键点

  1. 前提条件,如项目或局部测试环境的需求,及其交付计划
  2. 测试步骤
  3. 测试数据
  4. 预期结果

测试用例案例

序号 模块名称 测试子项 用例名称(测试意图) 用例级别 预置条件 测试步骤 预期结果 测试结果 缺陷编号 备注
1 大模块 小模块
2

测试用例常用设计方法

  1. 等价类划分法
  2. 边界值法
  3. 因果图设计法
  4. 判定表设计法
  5. 正交实验法

一、等价类划分法

项目:测试一个两位数的加法计算器
测试需求:测试两个参数的值相加后的结果是否正确。

  1. 隐藏需求:输入的数值在-99到99之间 大于99或小于-99的数应该被拒绝输入并显示错误信息。

开始测试:
分别给第一个参数和第二个参数输入下表中的值,得到测试结果如表所示
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第1张图片
不能把-99到99所有数的相加情况都测试一遍,那么问题有:
1、在测试了1+1 1+2 1+(-1) 等这些情况之后,是否还有必要测试1+3,1+4呢
2、如果不穷举测试,能否放心的认为所有的参数组合都是正确的?

等价类划分法:概念

  1. 把程序的输入域划分为若干部分

  2. 然后从每个部分中选取少数代表性数据作为测试用例

  3. 每一类的代表性数据在测试中的作用等价于这一类中的其他值

    也就是说,如果某一类中的例子发现了错误,这一等价类中其他例子也能发现同样错误,反之同理。

等价类划分法:原则

  1. 如果输入条件规定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类。
    比如 [-99,99]为取值区间,则大于99和小于-99的都是无效等价类

  2. 如果输入条件说明了一个“必须成立”的情况,则可划分一个有效等价类和一个无效等价类。
    比如 “今天必须完成100题” ,则“完成100题”是有效等价类 “未完成100题”是无效等价类。

  3. 如果输入条件规定了一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类。

  4. 如果确知,已划分的某等价类中的各元素(例子)在程序中处理的方式是不同的,则应据此将此等价类进一步划分为更小的等价类。

  5. 确立了等价类之后,建立等价类表,列出所有划分出的等价类。

基于等价类划分的用例设计

  1. 明确测试对象,非测试对象保证正确。
  2. 为每个等价类规定一个唯一编号
  3. 设计测试用例,尽可能多的覆盖尚未覆盖的有效等价类。 重复,最终似的所有等价类均被测试用例覆盖。
  4. 设计一个新的测试,使其只覆盖一个无效等价类。重复,直至所有无效等价类均被覆盖。

等价类划分实战

项目:测试一个两位数的加法计算器
测试需求:测试两个参数的值相加后的结果是否正确。

Step1:根据测试需求可以分为三个等价类:
1、一个有效数据的等价类,两个无效数据等价类
有效等价类: -99<=数值<=99
无效等价类:数值<-99 数值>99
Step2:建立等价类表:
在这里插入图片描述
Step3:确定测试用例:
1、为等价类表中的每一个等价类分配一个唯一编号
2、设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类
3、重复,直至所有有效等价类均被测试用例覆盖
4、与上步类似,设计一个新的测试用例,使它只覆盖一个无效等价类
5、重复,直至所有无效等价类均被测试用例覆盖
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第2张图片
Step4:细化等价类划分

  1. 在测试”-99~99“的这个等价类区间时,10+40、-20+30、-30+(-30)正数相加、正负数相加、负数相加也是不同的等价区间

细化之后的等价类表
在这里插入图片描述
PS:无效等价类中还有非数字情况,可以加上。

Step5:完善测试用例

根据上面划分的4个等价类,我们至少需要有5个测试用例
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第3张图片

等价类的特点

  1. 测试相同的内容
  2. 如果等价类中的一个测试能够捕获一个bug,那么选择该等价类的其他测试也能捕获该bug
  3. 如果等价类中的一个测试不能捕获bug,那么其他的也不能
  4. 如果正确的划分等价类,可以大大降低测试用例的数量,测试会准确有效
  5. 如果错误的将两个不同的等价类当作一个等价类,就会遗漏一种测试情况

等价类划分要注意的问题

  1. 不但要考虑有效等价类,也要考虑无效等价类
  2. 仔细划分,审查划分 (实际不仅一个人划分,群策群力,还有评审)
  3. 过于粗略可能会漏掉bug
  4. 组织评审

【等价类用例设计练习】

测试需求:余额宝提现到银行卡增加新规则:快速到账(2h)日限额1w

分析过程:

  1. 超过1W只能选择普通到账
  2. 选择快速到账才有限制

设计用例
**思路:**首先分为两个功能(快速提现和普通提现),然后快速提现要求金额在0和1W之间(有效等价类),提现小于0和大于1W都是无效。其次普通提现不受限制,只要求提现金额在0和余额之间即可,(所以0和总余额之间都是有效值),无效指为小于0以及大于总余额。功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第4张图片
优化:
日限额1W,可以是当天多次提现,要对总提现额度做划分(第一次和第N次)
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第5张图片
PS:由于每次操作对应的功能场景不一样,所以每次无效等价类对应的<=0的情况都是不同的,比如第一次输入的提现金额为0和第二次提现金额0是不一样的。

思考题

需求说明:一个程序读入三个整数,把这三个数值看作一个三角形的3条边的长度值
利用等价类划分法,给出足够的测试用例。
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第6张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第7张图片
优化建议:
在这里插入图片描述

二、边界值划分法

边界值分析法是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,二十选择等价类边界的测试用例。

以两位数相加计算器为例
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第8张图片
由于允许输入的值在-99和99之间,所以-99和99可看作两个边界值,测试的时候选取紧邻边界值的数值和边界值本身:
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第9张图片

用边界值设计余额宝需求测试用例

思路:边界为0、1W-已提现金额、1W,总余额最大值,取边界和紧邻边界的值:-1、0、1、9999、10001等
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第10张图片
PS:最大值为约定数值,比如余额宝中最多可输入七位数。

三、因果图和判定表法

等价类划分和边界值分析都是着重考虑输入条件,而不考虑输入条件的各种组合、输入条件之间的相互制约关系。

如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、产生多个相应动作的测试方法,就需要因果图(逻辑模型)

  1. 因果图:从程序规格说明书中找出因(输入条件)果(输出结果或程序状态的改变)
  2. 将因果图转化为判定表。为判定表中的每一列设计一个测试用例。

判定表:分析和表达多逻辑条件下执行不同操作的工具。

由四个部分组成:

  1. 条件桩:列出了问题的所有条件,次序一般无所谓。
  2. 动作桩:列出可能的操作和结果。
  3. 条件项:列出针对它左列条件的取值,在所有可能情况下的真假值。
  4. 动作项:列出条件项的各种取值情况下应该采取的动作。
    功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第11张图片

因果图设计步骤:

1、分析软件规格中那些是原因,哪些是结果?并给每个原因和结果赋予一个标识符。

2、找到原因和结果之间、原因和原因之间的相互关系。

3、有些组合情况不可能出现,为表明这些情况,在因果图上使用一些记号表明约束或限制条件。

4、把因果图转换为判定表。

5、根据判定表的每列设计用例。

两位数计算器实战 功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第12张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第13张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第14张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第15张图片
余额宝例子
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第16张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第17张图片
面试题 【工资发放】
a1 年薪制 a2月薪制 a3普通错误 a4严重错误
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第18张图片
a1和a2互斥;b1 b2 和b3 b4互斥 a3 和a4可同时具备。

四、正交实验法

是从大量的试验点中选取适量的、有代表性的点,应用迦罗卡瓦理论导出的“正交表”,合理的安排试验的一种科学试验设计法。(很少用到,一般大型系统才会用到,正常情况下极少有穷举所有的情况)
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第19张图片

设计步骤
1、提取功能说明,构造因子——状态表
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第20张图片
2、加权筛选,生成因素分析表(优先级确定,删掉优先级低的)
3、利用正交表构造测试数据集
4、利用正交表每行数据构造测试用例
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第21张图片
案例:测试支付宝web网站,站点有大量的服务器和操作系统,并且有多种浏览器及其插件
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第22张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第23张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第24张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第25张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第26张图片

五、场景法

由于上述方法比较单一从输入输出两方面考虑,但现在的软件几乎都是事件触发来控制流程的,事件触发时的情景形成场景,而同一事件不同的触发顺序和处理结果就形成了事件流
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第27张图片
tb购物流程
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第28张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第29张图片

测试用例综合设计

1、测试用例项划分

经典方法:瀑布模型,从上到下,逐渐细分,大模块包含小模块,更小模块(类似俄罗斯套娃),把系统划分成一块一块的,来测试,保证系统的完整性。

2、切面设计

功能点切面:最常见的切面,通常认为页面上的一个按钮就是一个功能点。根据功能的复杂程度,按每个功能进行用例的撰写。
隐含切面:完整业务流程的测试;从需求、业务角度进行编写。比如完整的购物流程。

3、功能点用例设计

  1. 任何情况都必须使用边界值分析法,经验表明这种方法找出bug能力最强
  2. 必要时用等价类划分法补充
  3. 如果程序功能说明中含有输入条件的组合情况,则可以用因果图法
  4. 业务复杂度高,则补充场景法

举例:共享单车充值案例

1、边界值:充值金额0、1、-1、多位小数、银行卡限额等
2、充值选择不同银行、支付渠道,所以针对支付宝、微信、银联等渠道分别设计测试用例
3、考虑异常,充值失败,银行卡余额不足,银行账户异常,银行卡返回超时等。场景法
4、更复杂的业务场景,比如满减、满赠、抽奖等等

-----------------------------------------------分割线--------------------------------------------------------
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第30张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第31张图片
功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第32张图片功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】_第33张图片

你可能感兴趣的:(功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】)