🥰🥰🥰来都来了,不妨点个关注叭!
👉博客主页:欢迎各位大佬!👈
文章目录
1. 测试用例基础知识
在讲解测试用例设计之前,我们先来了解了解测试用例的基础知识~
1.1 测试用例概念
测试用例就是一组集合,包括了这四大要素:
- 测试环境
- 操作步骤
- 测试数据
- 预期结果
1.2 测试用例好处
为什么需要测试用例呢?包括但不限于以下三点好处:
- 提高代码的复用性,提高测试人员的测试效率
- 便于回归测试
- 为自动化测试提供基础
2. 黑盒测试用例的设计
2.1 黑盒测试概念
黑盒测试也称为功能测试,或者是数据驱动测试,是一种软件测试的方法。(软件测试按照不同的条件可以分成不同的类别~上期内容有介绍)黑盒测试的核心思想是将被测的软件视为一个无法打开的“黑盒子”,测试人员无需关注软件内部的逻辑结构和代码实现,仅根据软件的需求规格说明书/产品需求文档/prd,检查软件的功能是否符合预期的功能说明
2.2 基于需求进行测试用例的设计
基于需求设计测试用例是测试设计和开发测试用例的基础,测试用例是需要紧紧围绕需求来设计的~
第一步:要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽
第二步:在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项
第三步:根据每一个测试点进行测试用例的设计
总之,就是要根据需求文档,分析需求,根据需求文档进行测试用例的编写~
在进行分析测试需求的时候,一般分为功能测试需求和非功能测试需求
2.2.1 功能测试需求
对于功能测试中,可以借助功能框图来帮助我们进行测试的需求分析,总之,概括起来,功能测试需求通常包括以下几个方面:
- 系统各功能界面的验证
- 借助业务把功能串起来进行测试
- 功能的一致性,交互性(即多功能相互操作)的测试
- 系统的不同输入,结果输出的业务数据测试
- 功能的错误、异常操作测试(属于负面测试)
- 功能实现用到的算法验证(有的时候需要运用代码评审)
- 用户操作的易用性,用户体验,往往需要结合功能测试同时验证
2.2.2 非功能测试需求
非功能测试需求,主要是涉及性能、安全性、可靠性、兼容性、易维护性、可移植性等等
每一类非功能特性测试都需要根据需求单独分析,因为它们之间可能存在影响,比如,安全性越高,就可能给易用性和性能方面带来更大的挑战(有点鱼和熊掌不可兼得的意味~)
2.3. 黑盒测试用例设计的具体方法
2.3.1 等价类法
【概念】依据需求将输入划分成若干个等价类,从等价类中选取一个测试用例,如果这个测试用例通过了,则认为所代表的等价类测试通过,这里可以清楚的看出等价类的好处,可以用较少的测试用例达到尽可能多的功能覆盖,解决了不能穷举测试的问题~
【注意】这里需求将输入划分,在特殊情况下会考虑输出
【分类】分为有效等价类和无效等价类
- 有效等价类:指对于程序的规格来说合理,有意义的输入数据构成的集合
- 无效等价类:指对于程序的规格说明而言不合理或者无意义的输入数据
【步骤】
- 充分理解需求
- 划分有效等价类和无效等价类
- 分别从有效等价类和无效等价类中抽取一个数据进行测试用例设计
【举例】对用户名长度在6-12个字符之间,进行等价类划分,如下:
2.3.2 边界值法
【概念】边界值法是一种黑盒测试方法,其核心思想是通过选择系统输入的边界值和特殊值作为测试用例,边界值通常指的是输入变量的最小值、最大值以及临界值,特殊值则是系统能够接受的非常规输入
【注意】在设计测试用例时,边界值通常与等价类划分法一起使用,这样可以实现尽可能多的用例覆盖
使用边界值法进行测试用例的设计时,需要对以下三个概念进行理解,如下:
- 上点:边界上的点(在闭区间中,上点位于区间内,在开区间中,上点位于区间外)
- 离点:是指离上点最近的点(在开区间中,离点位于区间内最近的点,而在闭区间中,离点则位于区间外最近的点)
- 内点:是指区间内任意的一点
下面通过一个例子,对上点、离点、内点,进行进一步的介绍:
【举例】用户名长度在6-12个字符之间,进行边界值法,如下:
2.3.3 判定表法
【概念】判定表法是一种黑盒测试方法,又称为决策表法,是一种表格状的图形工具,其核心思想是适用于处理判断条件较多,各条件相互组合,有多种决策方案的情况,判定法能够把所有的输入条件、所有可能采取的动作按照表格列出来,每一种条件和动作组合构成一条规则,也就是一条用例
【组成】判定表由 4 个部分组成
- 条件桩:列出所有条件的名称,即系统的所有输入
- 动作桩:列出系统可能采取的操作,即结果
- 条件项:列出各个条件所有可能的取值
- 动作项:列出所有可能采取的动作
【规则】一组条件与动作的组合,一条规则对应一条测试用例
【举例】使用判定表法,在打顺风车的时候,乘客订单提交,如果是优惠车或者乘客有优惠券,则由优惠,设计测试用例
判定表如下:
对应的测试用例如下:
2.3.4 正交表法
【概念】正交表法通常用 Ln(mk) 表示,其中这 4 个字母代表的含义如下:
- L 代表正交表
- n 代表试验次数或正交表的行数
- k 代表最多可安排影响指标因素的个数或正交表的列数
- m 代表每个因素水平数,正交表的每一列中,不同数字出现的次
【解释说明】
- 因素:输入变量
- 水平:每个输入变量的取值
【两个重要性质】
- 均衡分散性:正交表的每一列,不同的数字/水平 出现的次数是相等的
- 整齐可比性:正交表中任意两列所构成的各有序数对出现的次数一样多
【如何通过正交表设计测试用例】
主要分为以下五个大步骤:
充分理解需求 ——> 确定因素,确定水平 ——> 画正交表 ——> 补充正交表 ——> 将正交表转换成测试用例
以注册这个需求为例子,要求对姓名,邮箱,密码,确认密码,验证码都输入正确才能注册成功
1)对以上需求进行分析可知:
2)因素:姓名,邮箱,密码,确认秘密,验证码
水平:填写,不填写
3)通过 allpairs 画正交表
- 将因素和水平放到 excel 表格中
- 将 excel 表格中内容直接复制到 txt 文本中
- 通过 cmd 进入到 allpairs 安装路径下面
- 生成正交表 allpairs.exe filename.txt > filename_result.txt
4)补充正交表
5) 将正交表转换成测试用例
2.3.5 场景设计法
我们知道,现在软件几乎都是用事件触发来控制流程的,事件触发时的情景就便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。
其中,基本流是软件功能按照最短的事件流实现的一条正确的流程
而备选流则是由于异常、缺陷或其他原因导致最终的目的不能实现或实现的流程,并非最短的流程
该方法可以比较生动地描绘出事件触发时的场景,有利于测试设计者设计测试用例,使测试用例更容易理解和执行,典型的应用是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免缺陷功能细节忽略业务流程要点的错误倾向~
那么如何通过场景设计进行测试用例的设计呢?
【步骤】
充分理解需求 ——> 确定主数据流 ——> 确定次数据流 ——> 每一个数据流都是一个测试用例
【例子】
下面具体通过一个例子来进行了解~ 不然可能有点抽象~
比如想找一个男朋友,有这样的事件流,如下:
上面是一条找男朋友未出现异常时的事件流,但是找男朋友这件事并不是一帆风顺的,可能会有很多意外,出现各种情况,次事件流:
2.3.6 错误猜测法
黑盒测试的错误猜测法,也被称为错误推测法,是一种软件测试方法,其核心思想是在测试程序的时候,测试人员根据经验、知识和直觉来推测程序可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例。这种方法主要依赖于测试人员的直觉和工程经验,而并非是一种有章可循的工程设计方法。
需要注意的是,错误猜测法并不是一种完全可靠的测试方法,因为它依赖于测试人员的直觉和经验,可能存在遗漏或者偏差。因此,在实际测试过程中,通常会结合其他测试方法,比如等价类划分、边界值分析等,以确保测试的全面性和有效性~
继续以注册为例:
- 校验中特殊字符空格的处理
- 密码发送是否明文
- 密码校验中的大小写
- 姓名中的特殊字符
…
3. 常见面试题
3.1 如何使用 fiddler 模拟弱网
【步骤一】在 Fiddler 中打开弱网设置
打开 Fiddler ——> 点击 Rules ——> Performance ——> 勾选 Simulate Modern Speed
勾选之后,就可以发现网络速度已经慢下来了,因为系统里面有预设的网络参数值
【步骤二】设置网络参数
点击 Rules ——> Customize Rules…
点击后,打开了这个脚本,找到 OnBeforeRequest 可以设置网络参数~
【注意】如果是模拟手机 APP 的弱网,那么你需要确保 Fiddler 能够抓到手机 APP 的包
3.2 如何使用 postman 接口测试
【步骤一】在页面中按 F12 查看接口
【步骤二】选择一个接口进行拷贝
点击一个,这里我选择的是“将所有列表复制为cURL(bash)”,进行复制~
【步骤三】在 postman 中import 复制内容
【步骤四】进行测试
测试 http 请求方法有 get,post,delete…,选其中一个
针对参数进行测试,如:传递所有参数,传递部分参数,不传参数,传其他参数
3.3 常见的用例设计
一般设计用例,需要写:用例名称+用例优先级+用例类型+前置条件+测试步骤+预期结果
设计可从以下几个方面考虑:功能+易用性+界面+性能+网络+兼容+安全+中断
3.3.1 设计水杯测试用例
3.3.2 设计微信发朋友圈测试用例
3.3.3 设计登录测试用例
💛💛💛本期内容回顾💛💛💛
✨✨✨本期内容到此结束啦~