评价测试用例的标准

  1. 用例表达清楚,无二义性。
  2. 用例可操作性强。
    性能测试 并发。 某系统的支付功能1000个人同时并发(同时点击支付按钮付款)使用的时候,它的系统的响应时间。使用性能测试工具,模拟虚拟用户的操作,模拟1000个用户进行支付功能。
  3. 用例的输入与输出明确。一条用例只有一个预期结果。
  4. 用例的可维护性好。
  5. 用例对需求的覆盖率高。

测试用例的好处(为什么要写测试用例)

1.测试执行者的依据
2.手工测试用例是自动化测试的依据
3.测试用例可以衡量需求的覆盖率

4.测试用例可以复用,在进行回归测试的时候不用重新编写
5.积累测试的方法思路以供后续借鉴

具体的设计测试用例的方法

基于需求进行测试用例的设计

首先要保证需求的合理性和正确性,要先验证需求;
理解需求,把大需求细化为小需求,根据每一个小需求提炼出功能点,根据每一个功能点发散的去考虑测试用例,写测试用例(用具体的设计测试用例的方法)

需求是测试人员进行测试的依据,测试人员分析需求,验证需求的合理性和正确性,无二义性,从需求当中提取出测试项,根据测试项进行进一步的细分,提取出测试点,编写测试用例。

(1)从界面开始进行测试(符合UI设计稿)
(2)验证软件的功能,把业务相关的功能串起来进行测试。
不能光关注某一个孤立的功能
(3)一个功能的不同的输入,和对应的不同的输出
(4)功能之间的交互性
同一个系统不同角色之间的交互。例如:淘宝APP的买家和卖家。教务系统学生和老师的权限不同。
(5)异常功能的测试
(6)功能用到的算法的验证
(7)从易用性、兼容性、性能等几个方面去考虑

非功能性测试
非功能测试就是测试在软件本身有的功能之上做的一些限制。
如:易用性、兼容性、性能、安全性、可移植性、可靠性、可维护性
不同的应用软件对于以上非功能性的要求不太一样
(1)面向用户端的软件:如:画图板、office、word对性能、安全性要求不高,但是对于兼容性、可移植性、稳定性要求较高。
(2)面向企业内部的软件:飞书等,对兼容性、性能要求不高,但是对于功能要求高,可靠性要求高。
(3)大型应用软件:微信、QQ等:对性能、兼容性、可靠性、安全性要求高。

案例

用户需求:
购买3000元以内的华为智能手机。
细化成小需求:3000元以内 品牌:华为 类型:智能
软件需求:
(1)若用户未收到激活邮件,可在登录界面录入电子邮件及密码后,再次发送激活邮件。
未收到激活邮件: 已收到激活邮件/ 没有收到激活邮件
录入电子邮件和密码:正确的电子邮件和密码、错误的电子邮件和正确的密码、正确的电子邮件和错误的密码。
(2)每次发送的激活邮件,仅在发送邮件24小时之内有效,超过24小时后需要重新发送激活邮件。
24小时之内,打开邮件,进行点击激活
等于24小时,打开邮件,进行点击激活
超过24小时,打开邮件,进行点击激活
已经在24小时之内点击激活邮件成功进行激活操作,超过24小时以后,又重新打开激活邮件进行点击

等价类

概念

等价类就是把输入划分为若干个等价类,从每一个等价类中取出一个测试用例,如果这个测试用例能够测试通过,那么这个测试用例代表的等价类测试通过。

适用场景

测试用例无法穷举,我们无法一一进行测试。

划分类别

有效等价类:符合需求规格说明的数据集合。
无效等价类:不符合需求规格说明的数据集合。

示例

网易邮箱注册:
在这里插入图片描述
在这里插入图片描述

练习

用户名:6-15,字符类型A-Z,不区分大小写

在这里插入图片描述

边界值

针对输入的边界进行的测试。
设计测试用例的时候,会把等价类和边界值结合在一起使用。

因果图法

当输入很多,并且不同的输入组合对应着不同的输出,这个时候用因果图法来分析不同输入组合和输出的对应关系。
因果图:逻辑图
恒等 、 与(输入有多个条件,多个条件都为真时,输出为真)、 或 (输入有多个条件,其中一个条件为真,输出为真) 、非(输入为真,输出为假)
在这里插入图片描述

因果图法设计测试用例的步骤

1.分析出所有的输入输出
2.找出输入和输出之间的关系
3.画因果图
4.画判定表
5.把判定表转换成测试用例

案例

淘宝618活动,订单金额满300,或者有红包,则提交订单后享受优惠
(1)输入输出:
输入:金额大于等于300,有红包,提交订单。
输出:享受优惠,不享受优惠。
(2)输入和输出之间的关系
订单已提交,金额大于300,没有红包,有优惠
订单已提交,金额小于300,有红包,有优惠
订单已提交,金额大于300,有红包,有优惠
订单已提交,金额小于300,没有红包,没有优惠
订单未提交,没有优惠
(3)画因果图在这里插入图片描述

(4)画判定表
在这里插入图片描述

(5)把判定表转换成测试用例
订单提交,金额大于300,有红包,有优惠
订单提交,金额大于300,没有红包,有优惠
订单提交,金额小于300,有红包,有优惠
订单提交,金额小于300,没有红包,没有优惠
订单未提交,金额大于300,有红包,没有优惠
订单未提交,金额大于300,没有红包,没有优惠
订单未提交,金额小于300,有红包,没有优惠
订单未提交,金额小于300,没有红包,没有优惠

场景法

把各个孤立的功能点按照一定的策略结合起来,形成一个应用场景。
想想一个场景
ATM机取款场景: 插卡—输入密码—输入钱数—取款—退卡
(1)插卡:
插反了,插错卡(会员卡、不是本行)
注销、消磁、冻结
有不良记录的卡
消磁或损坏
(2)输入密码:
输入正确的密码
不输入密码
密码输入三次错误
密码第一次输入错误,第二次输入正确
密码前两次输入错误,第三次输入正确
密码是否加密
(3)输入钱数:
不输入直接按取款按钮
输入的钱数小于等于银行卡余额
输入的钱数大于银行卡余额
输入的不是整百
ATM机余额不足

(4)取款
输入小于等于银行卡余额的钱数,取款成功
输入大于银行卡余额的钱数,取款失败,并提示余额不足
确认取款钱数后,ATM机会吐出相应的钱数
ATM机吐超规则
操作超时,长时间不取吐出的钱
超过每日取款限额
超过每次取款最大上限
超过每次取款最大次数
(5)退卡
取钱后,正常退卡
操作超时
(6)ATM机
ATM机一切正常
没钱了,损坏了,正在升级,断网,断电
发生异常情况ATM是否支持事务回滚

事务是一系列密切相关的操作的集合,如果所有操作成功,我们就说这个事务成功了,如果其中一个操作失败,就说这个事务执行失败。

总结:找出场景当中的每一个功能点,根据功能点的正确和异常的情况去设计测试用例。

错误猜测法

根据测试人员的直觉、知识、经验,判断软件的哪一块有问题,专门针对性的设计测试用例。
测试人员可以用其他的设计测试用例的方法设计需求的测试用例,用错误猜测法作为一种补充的方式。
如:验证码不区分大小写
在搜索的时候加了空格

搜索查询到的信息共500条,每一页展示100条,但是发现页面上有相同的数据,数据id也一样,为什么?
因为没有对查询到的数据进行排序,导致每一页的数据都是随机展示的。

正交法

研究多因素多水平的一种方法,根据正交性选出最优的水平组合进行试验,用实验的结果来分析这个测试用例的结果

因素:输入变量
水平:因素的取值
因素数:变量的个数
水平数:变量取值的最大个数

正交表的构成:
行:L=(水平数-1)*因素数+1
列:因素数

正交表的性质
每一列不同数据出现的次数一样多
任意两列各数据组合出现的次数一样多
在这里插入图片描述

🎈正交表设计测试用例的步骤:
(1)找出所有的输入变量,确定因素数
(2)确定变量的取值,确定水平数
(3)确定正交表的行和列
(4)根据正交表的性质去填写正交表
(5)把正交表的每一行对应写成一个测试用例
(6)补充你认为重要但没有体现在正交表的测试用例

案例

用姓名、邮箱、密码、确认密码、验证码实现注册
(1)变量:姓名、邮箱、密码、确认密码、验证码
变量数(因素数):5
(2)水平:输入、不输入
水平数:2
(3)列:因素数:5
行:(水平数-1)*因素数+1 =6
(4)填写正交表
在这里插入图片描述

(5)写测试用例

  1. 姓名输入,邮箱不输入,密码输入,确认密码输入,验证码不输入,注册失败
  2. 姓名输入,邮箱输入,密码不输入,确认密码不输入,验证码输入,注册失败
  3. 姓名不输入,邮箱输入,密码输入,确认密码输入,验证码不输入,注册失败
  4. 姓名不输入,邮箱不输入,密码不输入,确认密码输入,验证码输入,注册失败
  5. 姓名输入,邮箱不输入,密码输入,确认密码不输入,验证码输入,注册失败
  6. 姓名不输入,邮箱输入,密码不输入,确认密码不输入,验证码不输入,注册失败

(6)补充:
1.姓名输入,邮箱输入,密码输入,确认密码输入,验证码输入,注册成功
2. 姓名不输入,邮箱不输入,密码不输入,确认密码不输入,验证码不输入,注册失败

等价类、边界值、因果图、场景设计法、正交法、错误猜测法都属于黑盒测试用例的方法。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐