提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一.基于需求的设计方法
- 二.等价类
- 三.边界值
- 四.判定表
- 4.1 **关系**
- 4.2 如何设计测试用例
- 4.3 实际案例
- 第一步
- 第二步
- 第三步
- 第四步
- 五.正交排列
- 5.1 什么是正交表
- 5.2 如何通过正交表设计测试用例
- 5.3 实际例子
- 第一步 确定 因素和确定水平
- 第二步 画正交表
- 第三步 将正交表转换成测试用例
- 六.场景设计法
- 6.1 什么是场景测试法
- 6.2 如何使用场景测试法设计测试用例
- 6.3 实际例子
- 第一步
- 第二步
- 第三步
- 第四步
- 七.错误猜测法
- 7.1什么是错误猜测法
- 7.2错误猜测法的基本步骤
- 7.3 实际例子
- 第一步
- 第二步
前言
我们这里要读软件测试的黑盒测试方法进行具体的讲解,大家也不要过于担心,相信我接下来的讲解以后,大家对这些测试方法必然是了然如胸的.当然在我们介绍测试用例的方法之前.我们应该来回顾一下,什么是测试用例,测试用例包含哪些内容.实际上我们把测试用例比喻成一组集合,这组集合里面有
测试环境、操作步骤、测试数据、预期结果等要素.当然我们实际测试用例还是有方法的,接下来我们就一一的去介绍这些方法.
一.基于需求的设计方法
什么是基于需求的设计测试用例的方法,这里的核心概念就是需求.我们们一般把需求分为两种
软件需求和用户需求.
基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽。在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项,然后根据每一个测试点进行测试用例的设计.
所以一般来说,我们一般把需求分为功能需求和非功能需求
这上面是我们常用的基于需求的测试用例设计,打击看到以上的操作之后,还是有不明白的地方,我们可以给出几个实际的例子,来设计测试用例,大家就明白了.
这是一个登录界面的例子
这是一个淘宝购物车的例子
水杯测试用例
微信法朋友圈的测试用例设计
具体的我们就介绍到这里,我们开始进入下一个测试用例的方法.
二.等价类
等价类的概念是软件测试中的一个重要概念。它是指输入域中一组数据,这组数据在被测软件的处理结果上具有等价性。换句话说,等价类中包含的所有值在软件的响应上具有相同或相似的效果。
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
其实绕了这么一大圈,我们还是来看看,我们怎么去用等价类方法去设计测试用例.
有效等价类:满足用户需求输入集合
无效等价类:不满足用户输入集合
接下来是重头戏,设计测试用例的步骤如下:
等价类思想设计测试用例步骤
①充分理解需求
②划分有效等价类,划分无效等价类
③从有效等价类抽取其中一个数据进行设计测试用例;从无效等价类中抽取其中一个进行测试用例设计
具体来个例子,用户名长度的测试用例展示.
如果说还没明白的话,我们继续来一个三角形的例子,去体会一下.
三角形问题:输入3个整数a,b,c,分别作为三角形的3条边,通过程序判断3条边构成三角形的类型为等边三角形、等腰三角形、一般三角形或者不构成三角形。
等价类测试用例设计方法,最重要的就是划分等价类,但是等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充.
三.边界值
什么是边界值法呢?边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
我们来看一下,边界值法具体在干什么.
边界值法具体就是划分上点,内点,离点.
我们来看一个例子
这里值得说的内点其实有很多种情况的,我这里说明一下.
上点:不管此区间是开区间还是闭区间,此时区间上的点都是上点
内点:区间内的点
离点:
区间如果是开区间,此时离点是距离上点最近的点(区间内找)区间如果是闭区间,此时离点是离上点最近的点(找点在区间外)
最后肯定重头戏了.边界值测试用例的具体步骤入下:
边界值设计测试用例方法
①充分理解需求
②找边界点
③针对边界点设计测试用例
四.判定表
判定表是一种基于判定覆盖法设计测试用例的方法。判定是程序中用来决定执行流向的条件语句,判定表是根据这些判定设计测试用例的工具.
话不多说,我们来看看判定表有哪些关系组成.
4.1 关系
与:所有的条件必须满足,如果一个条件不满足,此时结果为假
或︰满足其中一个条件结果就为真,如果条件全部为假,结果就为假
恒等︰条件为真,结果一定为真
非:条件为假,结果才为真
4.2 如何设计测试用例
具体步骤
(1)分析所有可能的输入和可能的输出。
(2)找出输入与输出之间的对应关系。
(3)设计判定表
(4)把判定表对应到每一个测试用例。
4.3 实际案例
假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠"。
第一步
输入:订单已提交,订单金额大于300,有红包
输出:优惠,不优惠
第二步
1)订单已提交,金额大于300,有红包,优惠
2)订单已提交,金额大于300,没有红包,优惠
3)订单已提交,金额小于300,有红包,优惠
4)订单已提交,金额小额300,没有红包,不优惠
5)订单不提交,金额大于300,有红包,不优惠
6)订单不提交,金额大于300,没有红包,不优惠
7)订单不是交,金额小于300,有红包,不优惠
8)订单不提交,金额小额300,没有红包,不优惠
第三步
第四步
五.正交排列
正交排列是一种系统的、有序的排列方式,用于软件测试用例设计中,可以保证测试用例的互相独立,减少重复测试,提高测试效率。
在讲述正交排列之前,我们还是来解释一下什么是正交表.
5.1 什么是正交表
正交表是一种用表格表示的正交数组,用于测试用例的设计与管理。它采用行列交叉的方式,将被测系统的多个因素以及每个因素的取值组合成表格,这样我们就可以在这个表格里系统地选择测试值,组合成测试用例。
正交表由以下要素构成:
- 因素:影响被测系统的输入变量。
- 各因素的取值:每个因素可取的值或值范围。
- 行与列的表头:行表头表示被固定的值,列表头表示变量值。
- 单元格:每个单元格代表一个测试值的组合,可映射为一条测试用例。
5.2 如何通过正交表设计测试用例
1.充分理解需求
2.确定因素,确定水平
3.画正交表
4.补充正交表
5.将正交表转换成测试用例
5.3 实际例子
以注册需求为例
第一步 确定 因素和确定水平
因素:姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册
水平:填写/不填写
第二步 画正交表
利用allpairs画正交表.
具体的教程,大家可以观看B站的这个视频allparis工具下载安装及简单使用
填写是啥意思呢,凡是带的就是此处选项你选啥都行,你选填写也行,选不填写也行,不影响测试结果
第三步 将正交表转换成测试用例
六.场景设计法
6.1 什么是场景测试法
场景设计法是一种基于用户场景来设计测试用例的方法。它考虑到用户使用软件的完整场景及流程,设计出一组用例来验证软件在这种场景或流程下的执行结果是否正确。
6.2 如何使用场景测试法设计测试用例
1.充分理解需求
2.确定主事件流
3.确定次事件流
4.每一个事件流就是一个测试用例
6.3 实际例子
用户使用某酒店预订系统进行客房预订
第一步
主事件流:用户使用某酒店预订系统进行客房预订
第二步
此事件流:用户使用系统的每一个步骤
第三步
登录系统–>查询房型–>选择房型、入住时间
–>填写预订人信息–>选择支付方式–>确认预订单
–>预订单确认–>正式订单–>预订成功
第四步
设计测试用例
用例1:登录系统 预期结果:登录成功
用例2:查询不存在的房型 预期结果:无查询结果
用例3:选择普通房型、时间 预期结果:可以进行下一步
用例4:填写无效预订人信息 预期结果:给出提示信息
用例5:选择支付方式为现金支付 预期结果:可以进行下一步
用例6:确认预订单 预期结果:预订单生成
用例7:预订单重复确认 预期结果:无影响,提示已确认
用例8:酒店确认预订单 预期结果:生成正式订单
用例9:用户取消预订单 预期结果:预订单取消,无正式订单生成
通过上述场景分析和测试用例设计,可以得到一组与真实预订场景紧密联系的测试用例。这些用例可以有效验证预订系统在各种正常场景、边界场景下的执行结果是否正确,达到检验系统功能的目的。
总之,场景设计法是一种非常实用的测试用例设计方法,通过结合具体的用户场景来制定测试策略和设计用例,值得测试人员重点学习与运用.
七.错误猜测法
7.1什么是错误猜测法
错误猜测法是一种基于对程序可能存在的错误进行猜测来设计测试用例的方法。这种方法尝试去猜测程序在开发过程中最可能产生的错误,并设计针对这些错误的测试用例。如果测试执行结果与预期不符,则表明程序中存在该错误,起到发现错误的目的。
7.2错误猜测法的基本步骤
- 分析程序逻辑和实现,推测出最可能出现的错误类型。常见的错误类型有:变量未初始化,数组下标越界,参数传递错误,逻辑运算错误等。
- 根据猜测出的错误类型和程序逻辑设计测试用例。这些用例的测试数据应能够激发相应类型的错误。
- 执行设计的测试用例,验证实际输出结果是否与预期一致。如果存在不一致,则发现了程序错误。
- 根据测试结果进行错误修复和重测试,直至所有测试用例的结果均符合预期。
7.3 实际例子
如果要测试一个数组求平均值的程序
第一步
可以猜测出的错误类型有:
1)数组下标越界,导致索引异常。
2)数组元素之和计算错误,导致平均值错误。
第二步
那么,相关的测试用例可以设计为:
用例1:输入数组[-1,10,20] 预期结果:报索引越界异常
用例2:输入数组[1,2,3] 预期结果: 平均值为2
用例3:输入数组[1,2,3] 预期结果:计算的平均值不为2,则存在逻辑计算错误。