【测试】——用例篇(黑盒测试)

📖 前言:在软件测试中,设计测试用例是确保软件质量的关键步骤。本文将介绍几种常用的测试用例设计方法,包括基于需求的设计方法、等价类、边界值、因果图、正交排列、场景设计法和错误猜测法。通过这些方法,可以全面覆盖软件的功能和性能,确保测试的有效性和全面性。


🕒 1. 设计测试用例概述

1、设计测试用例不仅需要方法,还需要尽可能地考虑所有潜在的情况

2、设计测试用例的原则:用例设计应覆盖其应实现的功能,同时也要考虑其未实现且不应实现的功能

3、测试用例设计得越多是否越好?

  • 在工作中,测试用例越多越能全面覆盖项目测试,这是最理想的。
  • 在面试中,设计更多的测试用例更佳,因为这考验了测试用例设计能力和思维的广度。

🕒 2. 设计测试用例的具体方法

设计测试用例的具体方法:
1)基于需求的设计方法:根据万能公式来设计
2)等价类
3)边界值
4)因果图(判定表法)
5)正交排列
6)场景设计法
7)错误猜测法

🕘 2.1 基于需求的设计方法

设计测试用例的万能公式:

功能测试 + 界面测试 + 易用性测试 + 兼容性测试 + 性能测试 + 安全测试 + 网络测试 + 中断测试

  • 功能测试:这可能基于需求文档,也可能基于生活经验。
  • 界面测试:颜色、形状、大小、材质(对于实物);文字、输入框、图片、下拉框等所有可见元素(对于网页)
    【工作中是根据设计图来设计界面测试用例的】
  • 易用性测试:检查软件是否易于上手,例如是否有引导、提示性文字等。
  • 兼容性测试:包括浏览器兼容性、版本兼容性、系统兼容性以及数据兼容性等。
  • 性能测试:即使功能正常,也不意味着性能就一定优秀。性能通常表现在极端条件下,例如高并发量、快速响应时间等。
  • 安全测试:检查隐私数据是否加密处理,如用户界面密码显示和数据库中的隐私数据加密,防止被SQL注入和权限越界(垂直/水平)。

垂直越权指的是在权限等级不同的用户之间的权限越界,例如在教务系统中,教师有布置作业的权限而学生没有。如果学生能够布置作业,这就构成了垂直越权。
水平越权则发生在权限等级相同的用户之间,如都是学生的张三和李四,张三不应该能够访问并操作李四的账户界面。如果张三能够操作李四的界面,那便是水平越权。

  • 网络测试:WIFI/5G/4G/3G/2G,弱网,无网
  • 中断测试:使用中切回桌面,来电/闹钟切断

🕘 2.2 等价类

  1. 概念:根据需求,将输入(在特殊情况下也会考虑输出)分为若干个等价类。从每个等价类中选取一个测试用例,若该用例通过测试,则认为该用例所代表的等价类通过测试。这种方法可以用较少的测试用例来实现更广泛的功能覆盖,从而解决了无法穷举测试的问题。

  2. 等价类实际上是一种分区/分块的方法。

  3. 等价类的划分:
    1)有效等价类:根据需求文档,是有意义的集合。
    2)无效等价类:根据需求文档,是无意义的集合。

  4. 步骤:
    1)确定有效等价类和无效等价类。
    2)编写测试用例。

  5. 例子:
    假设输入密码的正确范围是6~18位,那么编写的测试用例(具体到测试数据)包括:
    ① 输入长度为6~18位的密码,具体为10位。
    ② 输入长度小于6位的密码,具体为2位。
    ③ 输入长度大于18位的密码,具体为20位。

补充:如果给出的是具体的需求而非范围,则所有针对这些需求的类都是有效等价类,其他的则是无效等价类(从无效等价类中挑选一些进行测试即可)。

🕘 2.3 边界值与边界点

1、边界值是指:有效边界+无效边界/次边界值

2、边界点:

  • 上点:边界上的点
  • 内点:边界内的点
  • 离点:边界值附近的一个点(闭区间区间外距离上点最近的点,开区间区间内距离上点最近的点)

离点举例:[6,15] 和 (6,15]
前者:5、16;后者7、16

3、例子:
输入密码正确是6~18位,则边界值:
① 有效边界值:6、18
② 无效边界值:5、19

4、【面试题】假如浮点型的范围是[6,10],那么它的有效边界和无效边界是?

有效边界:6、10
无效边界:单精度:5.99999999、10.00000001;双精度:5.9999999999999999、10.0000000000000001

①单精度:4字节,有效位数8位
②双精度:8字节,有效位数16位
③所以:单精度:±0.00000001 ; 双精度:±0.0000000000000001

🔎 单精度浮点数与双精度浮点数的区别

🕘 2.4 因果图(判定表法)

使用场景是:输入条件的组合对应不同的结果

判定表设计测试用例的步骤:
1)确认输入条件和输出条件
2)找出输入条件和输出条件之间的关系
3)画判定表
4)根据判定表编写测试用例

例子:
当订单使用了红包或者订单金额大于300元,则该订单是优惠订单,否则是不优惠订单。

  1. 确认输入条件和输出条件:
    ① 输入条件:红包(A)、订单大于300元(B)、提交订单(C)
    ② 输出条件:优惠订单1、无优惠订单2

  2. 找出输入条件和输出条件之间的关系

输入条件ABCABACBCABC非ABC(null)
输出条件22221112
  1. 画判定表(Excel)
组合/用例12345678
红包
金额大于300元
订单提交
优惠订单
无优惠订单
  1. 根据判定表编写测试用例

①有红包,金额不大于300元且订单没有提交,则是无优惠订单。
②没有红包,金额大于300元且订单没有提交,则是无优惠订单。
③没有有红包,金额不大于300元,订单提交,则是无优惠订单。
④有红包,金额大于300元,订单没有提交,则是无优惠订单。
⑤有红包,金额不大于300元,订单提交,则是优惠订单。
⑥没有红包,金额大于300元,订单提交,则是优惠订单。
⑦有红包,金额大于300元且订单提交,则是优惠订单。
⑧没有红包,金额不大于300元且订单没有提交,则是无优惠订单。

判定表法和因果图法的步骤实际上相似,区别在于因果图法在制作判定表前多了绘制因果图这一步。因为绘制因果图较为复杂且没有统一的方法,目前研究它的必要性不大。

🕘 2.5 正交排列

1、正交试验设计法是指从大量的试验中挑选出适量的、有代表性的点,根据“正交表”从而合理地设计出测试用例。

2、了解“正交表”
1)正交表的表示,如:L4(23),其中:“L”代表正交表;L 下角的数字“4”表示有 4 横行,即要做四次试验;括号内的指数“3”表示有3 纵列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性。

序号因子 A因子 B因子 C
1111
2122
3212
4221

2)正交表特点:
① 每一列中,不同的数字出现的次数相同。(也就是水平数出现次数相同,但是各列之间的数字可以不同)
② 任意两列中数字的排列方式齐全且均衡。(每个组合出现的次数相同)

3、根据正交表设计测试用例的步骤:
1)找出因素数和水平数
2)生成正交表,需要借助生成正交表的工具allpairs
3)根据正交表来编写测试用例
4)补充可能存在遗漏但是非常重要的测试用例

4、例子:
注册页面:姓名、电子邮箱、密码、确认密码、验证码。(即:因素)
每个因素对应的水平数都是:填写、不填写

  1. 找出因素数和水平数:
    ① 因素:姓名、电子邮箱、密码、确认密码、验证码
    ② 水平:填写、不填写

  2. 使用allpairs生成正交表:

①在excel中创建因素和水平,并进行复制

姓名电子邮箱密码确认密码验证码
填写填写填写填写填写
不填写不填写不填写不填写不填写

②打开pairs的文件夹,创建一个txt文件,并将刚刚的复制粘贴并保存
③然后使用cmd打开pairs所在的路径,然后 allpairs.exe 刚刚的文件 > 生成正交表的文件(不用手动创建,自己会生成)

D:\pairs>allpairs.exe register.txt > result.txt

④ 正交表
在这里插入图片描述

注:~表示此时取值可以是填写也可以是不填写。

利用allpairs生成的正交表跟实际的正交表可能有出入,但是仍然不影响我们使用allpairs生成正交表。

  1. 根据正交表编写测试用例

①填写姓名、电子邮箱、密码、确认密码、验证码。
②填写姓名,不填写电子邮箱、密码、确认密码、验证码。
③填写电子邮箱、确认密码,不填写项目、密码、验证码。
④填写密码、验证码,不填写姓名、电子邮箱、确认密码。
⑤填写姓名、电子邮箱、密码,不填写确认密码、验证码。
⑥填写确认密码、验证码,不填写姓名、电子邮箱、密码。

  1. 补充可能存在遗漏但是非常重要的测试用例

⑦ 全部都不填写姓名、电子邮箱、密码、确认密码、验证码。

🕘 2.6 场景设计法

1、这仅仅是一个思维引导。它提醒我们不能完全依赖需求文档中的基本流程,而应尽可能多地考虑实际操作中可能出现的意外情况。

2、概念:当前的软件几乎都采用事件触发机制来控制流程,事件触发的具体情境构成了场景,而同一事件在不同触发顺序处理结果下形成了事件流。这种方法能生动地描述事件触发的情境,有助于测试设计者制定测试用例,使测试用例更易于理解和执行。

3、相关概念:基本事件流(事件完成的正确顺序流程)和备选事件流(正常流程中各阶段可能出现的其他情况)
【基本事件流是最简短的,因为备选事件流在基本事件流的基础上增加了额外的情况】

4、ATM取款例子:

基本事件流:插卡 → 输入密码 → 选择“取款”功能 → 输入金额 → 取钞 → 退卡

备选事件流:卡插不进去 → 密码输入错误,吞卡 → 选择的是其他功能 → 输入金额不符合要求 → 吐钞失败,钱未取走 → 卡被卡住
(在基本事件流上有额外情况,流程更长了)

编写测试用例
1)基本事件流:先插卡,然后输入密码,… ,最后退卡
2)备选事件流:
① 插入卡之后,卡被ATM卡住,… ,最后退卡
② 插入卡之后,输入密码错误,… ,最后退卡

🕘 2.7 错误猜测法

概念:错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。

🕒 3. 设计测试用例案例

设计水杯的测试用例:
请添加图片描述

对登录页面设计测试用例:
请添加图片描述

对朋友圈设计测试用例:

请添加图片描述

【面试题】某手机软件有用TF卡导出数据的功能,请写出测试此功能点的思路

考虑方向检查点测试思路描述
正向导出数据正确性导出数据,验证数据正确性
逆向导出数据有效性无数据时,导出功能是否正确
边界容量TF卡空间不足只能容纳部分数据
边界容量TF卡容量已满
容错TF卡写保护
容错TF卡无法识别
容错人为中断导出时拔掉TF卡
容错导出时断电、关机等再开机后检查能否正确导出
性能连续多次导出脚本实现,大量导出,查看数据是否正确
性能检查导出速度
兼容性不同品牌和容量
兼容性不同分区格式FAT、FAT32、NTFS不使用手机自带的TF卡格式化功能

OK,以上就是本期知识点“用例篇”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值