📌 相关专栏
-
【C++ 专栏】
📌 相关文章推荐
很高兴你点开这篇文章✨
这里会持续更新我喜欢的内容,关注我,一起慢慢变好呀
👍 点赞 ⭐ 收藏 💬 评论
文章目录
- 前言
- 一、什么是测试用例?
- 二、设计测试用例的万能公式
-
- [2.1 常规思考 + 逆向思维 + 发散性思维](#2.1 常规思考 + 逆向思维 + 发散性思维)
- [2.2 万能公式(六大维度)](#2.2 万能公式(六大维度))
- 补充维度
- 三、六大具体设计方法
-
- [3.1 等价类划分法](#3.1 等价类划分法)
- [3.2 边界值分析法](#3.2 边界值分析法)
- [3.3 正交法](#3.3 正交法)
-
- 正交表:
- 正交法设计测试用例的步骤:
- 示例
-
- [1. 找到因素和水平](#1. 找到因素和水平)
- [2. 用allparis工具生成正交表](#2. 用allparis工具生成正交表)
- [3. 根据正交表编写测试用例](#3. 根据正交表编写测试用例)
- [4. 补充遗漏的重要测试用例](#4. 补充遗漏的重要测试用例)
- [3.4 判定表法](#3.4 判定表法)
-
-
- [1. 确认需求中输入条件和输出条件](#1. 确认需求中输入条件和输出条件)
- [2. 找出输入条件和输出条件之间的关系](#2. 找出输入条件和输出条件之间的关系)
- [3. 画判定表](#3. 画判定表)
- [4. 根据判定表编写测试用例](#4. 根据判定表编写测试用例)
-
- [3.5 场景法](#3.5 场景法)
- [3.6 错误猜测法](#3.6 错误猜测法)
- 四、不同场景的用例设计实战
-
- [4.1 命令行程序(如zip/unzip)](#4.1 命令行程序(如zip/unzip))
- 结语
前言
在软件测试中,测试用例是最基础也是最重要的产出物。无论你是手工测试还是自动化测试,设计出高质量的测试用例,都是保证产品质量的关键。
💡 本文结合系统的测试课程内容,带你全面了解:
- 测试用例的概念与作用
- 设计测试用例的万能公式
- 6大具体设计方法(
等价类、边界值、正交法、判定表、场景法、错误猜测法)- 多种场景下的用例设计实战
🐶 🐾 ✨ 🐾 🐶
一、什么是测试用例?
测试用例是为了实施测试而向被测试系统提供的一组集合,包含:测试环境、操作步骤、测试数据、预期结果等要素。
🐾 测试用例示例
| 要素 | 内容 |
|---|---|
用例编号 |
test-01 |
标题 |
成功注册网易邮箱 |
测试方式 |
手工测试 |
功能模块 |
注册登录 |
测试前提 |
系统运行正常,邮件服务器已开启 |
测试环境 |
win10 Chrome版本103.0.5060.66(正式版本)(64位) |
测试数据 |
邮箱:996402440@qq.com, 密码:123456 手机号:88888888888 |
测试步骤 |
1.打开注册页面 2.填写信息 3.点击注册 |
期望结果 |
注册成功,可正常登录 |
为什么要写测试用例?
🐾 不写测试用例会遇到这些问题:
- 不知道是否全面测试了所有功能
- 测试覆盖率无法衡量
- 回归测试难以实施
- 存在大量冗余测试
另外,测试用例还能帮你"避免背锅"------产品出问题时,有据可查。
🐶 🐾 ✨ 🐾 🐶
二、设计测试用例的万能公式
很多新手拿到一个产品(比如一个门锁、一个水杯)不知道从何下手。万能公式帮你理清思路:
2.1 常规思考 + 逆向思维 + 发散性思维
不仅要测试"程序应该做什么",还要测试"程序不应该做什么"。
- 测试用用例的编写不仅应当根据有效和料到的输入情况,而且也应该根据无效和未料到的输入情况;
- 检查程序是否"未做器应该做的"仅成功一半,测试的零另一半是检查程序是否"做了不应该做的";
- 计划测试工作时不应该默许假定不会出现错误。
2.2 万能公式(六大维度)
| 维度 | 说明 |
|---|---|
功能测试 |
验证功能是否正确实现 |
界面测试 |
检查界面与设计图是否一致,控件是否正常 |
性能测试 |
测试软件"做得好不好"(响应时间、资源占用等) |
兼容性测试 |
不同系统、浏览器、设备上是否正常运行 |
易用性测试 |
新用户是否能快速上手 |
安全测试 |
SQL注入、越权、明文密码等 |
补充维度
弱网测试
弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:
- 页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、⾸字时间,⾸屏时间等。
- 页面呈现是否完成⼀致。
- 超时文案是否符合定义,异常信息是否显示正常。
- 是否有超时重连。
- 安全⻆度:是否会发生dns劫持、登陆ip更换频繁、单点登陆异常等。
- 大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。
- 安装卸载测试:软件能否正常安装和卸载
弱网需要借助工具来构造弱网,这⾥推荐使用fiddler
(1)fiddler配置代理
(2)fiddler进行抓包(桌面/移动端)
(3)fiddler如何构造弱网条件
使用万能公式对水杯进行用例的设计
🐾 你可以试着用万能公式思考:
功能:能不能装水?会不会漏水?界面:颜色、形状是否符合设计?性能:能装多少度水?能保温多久?兼容性:能不能放微波炉?能不能放冰箱?易用性:好不好拿?容不容易倒?安全:材质有没有毒?有没有异味?
🐶 🐾 ✨ 🐾 🐶
三、六大具体设计方法
3.1 等价类划分法
-
解决的问题: 穷举测试不可行(比如测试6-150位的姓名)。
-
核心思想: 将输入分成若干等价类,从每个类中选一个代表测试即可。
| 类型 | 说明 |
|---|---|
| 有效等价类 | 符合需求的输入 |
| 无效等价类 | 不符合需求的输入 |
🐾 示例: 姓名为6-15位字符
有效:6位、10位、15位无效:0位、5位、16位、特殊字符
🐾 缺点: 只考虑单个输入,不考虑组合。
3.2 边界值分析法
-
核心思想:Bug往往出现在边界上,要重点测试边界值。
-
取值规则:边界值 + 次边界值
🐾 示例:
- 输入框长度1-11 → 测试:0、1、11、12
- 参赛项目1-3项 → 测试:0项、1项、3项、4项
🐾 边界值通常作为等价类的补充。
3.3 正交法
正交试验设计(Orthogonal experimentaldesign)是研究多因素多水平的⼀种设计⽅法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了 解全面试验的情况,找出最优的水平组合。正交试验设计是⼀种基于正交表的、⾼效率、快速、经济的试验。
- 解决的问题: 多个因素组合时用例爆炸(比如5个选项,全组合需要32个用例)。
- 核心思想: 用正交表挑选有代表性的组合,覆盖两两组合。
正交表:
如图最简单的正交表是L(4)(2(3)),含义如下:
- "
L"代表正交表; - L 下⻆的数字"
4"表示有 4 横行,简称行,即要做四次试验; - 括号内的指数"
3"表示有3 纵列,简称列,即最多允许安排的因素是3个; - 括号内的数"
2"表示表的主要部分只有2 种数字,即因素有两种水平1与2。
- 正交表的构成: 因素数、水平数、行数。
因素:对指标的影响条件,通常是正交表中的⼀列。水平:因素对应的可选项(比如"填写"、"不填写")。
- 正交表的性质:
- 每⼀列中,不同的数字出现的次数相等。
- 任意两列中数字的排列⽅式⻬全⽽且均衡
步骤:
正交法设计测试用例的步骤:
找到因素和水平用allparis工具生成正交表- a、将因素和水平写入Excel表格中
- b、 allparis目录下创建新的文本文件new.txt,复制Excel中的因素和水平,直接粘贴到文本中保存并退出
- c.、使用allparis命令生成正交表:allparis.exe new.txt>zhengjiao.txt
根据正交表编写测试用例补充遗漏的重要测试用例
示例
继续以邮箱注册为例, 采用正交法补全剩下的测试用例。
1. 找到因素和水平
因素:姓名、电⼦邮箱、密码、确认密码、验证码
水平:填写、不填写
2. 用allparis工具生成正交表
-
a、 将因素和水平写入Excel表格中
-
b、 allparis目录下创建新的文本文件如
0714.txt,复制Excel中的因素和水平,直接粘贴到文本中保存并退出 -
c、 使用allparis命令生成正交表:
allparis.exe 0714.txt>0714jg.txt(将生成的正交表数据放入0714jg.txt文件中)
3. 根据正交表编写测试用例
4. 补充遗漏的重要测试用例
注意:使用allparis生成的正交表和预期有出入,但是不影响我们用来设计测试用例。
3.4 判定表法
-
解决的问题: 不同条件组合对应不同结果(正交法无法处理)。
-
核心思想: 用表格列出所有条件组合及其对应结果。
🐾 步骤:
- 确定输入条件和输出条件
- 找出输入输出的逻辑关系
- 画判定表
- 根据判定表写测试用例
确认了步骤后,我们使用判定表法进⼀步对上述需求进行测试用例的设计:
1. 确认需求中输入条件和输出条件
输入条件:账号包含admin字符(a)、内部注册链接(b)、点击注册按钮 (c)输出条件:管理员(1)、⽆管理员(2)
2. 找出输入条件和输出条件之间的关系
bash
1 输入条件:ac ab bc abc a b c ⾮abc
2 对应结果:1 2 1 1 2 2 2 2
3. 画判定表
4. 根据判定表编写测试用例
a、账号包含admin,⾮内部注册链接,点击注册按钮,为管理员⾝份b、账号包含admin,内部注册链接,不点击注册按钮,⾮管理员⾝份c、账号不包含admin,内部注册链接,点击注册按钮,为管理员⾝份d、账号包含admin,内部注册链接,点击注册按钮,为管理员⾝份e、账号包含admin,⾮内部注册链接,不点击注册按钮,⾮管理员⾝份f、账号不包含admin,⾮内部注册链接,点击注册按钮,⾮管理员⾝份g、账号不包含admin,⾮内部注册链接,不点击注册按钮,⾮管理员⾝份
3.5 场景法
-
核心思想: 模拟用户使用场景,把孤立的功能点串起来。
-
基本概念:
基本流:正常操作的流程备选流:异常或分支情况
🐾 示例: 邮箱注册场景
- 基本流:点击注册入口 → 填写信息→ 点击注册 → 成功激活
- 备选流:点击注册入口 →不同意协议 → 点击注册入口 →同意协议 →输入正确信息 →点击注册 →成功激活
- 备选流:...
...
3.6 错误猜测法
- 核心思想: 靠经验直觉猜测哪里容易出错。
🐾 示例: 测试注册功能时,可以猜测:
- 特殊字符空格是否处理?
- 密码大小写是否敏感?
- 密码是否明文传输?
🐾 缺点: 依赖个人经验,难以系统化。
四、不同场景的用例设计实战
4.1 命令行程序(如zip/unzip)
| 维度 | 测试点 |
|---|---|
| 功能 | 普通txt、图片、视频、空文件夹能否压缩 |
| 界面 | 成功/报错时的提示是否友好 |
| 性能 | 1G文件压缩时间和成功率 |
| 兼容性 | Windows/Linux/Mac是否都能用 |
| 易用性 | 是否有--help帮助文档 |
| 安全 | 压缩文件不会泄露内容 |
补充:
功能测试:对不同的文件类型进行测试
(1)普通的txt文件能够生成zip文件
(2)图⽚/视频/zip文件能够生成zip文件
(3)多个文件能够生成zip文件(混合文件)
(4)空文件夹可以生成zip文件
(5)错误的命令是否可以解压(zip zip/没有写压缩包文件名称/没有源文件)
(6)其他参数的测试
🐶 🐾 ✨ 🐾 🐶
结语
测试用例设计是软件测试的核心技能。掌握万能公式和六大方法,能让你在面对任何产品时都有条不紊地设计出高质量的测试用例。
笔试:需要写出完整格式的测试用例
面试:可以用思维导图的方式表达你的测试思路
赶快拿起一个水杯,或者打开一个注册页面,试试你的用例设计能力吧!
欢迎留言交流你的测试用例设计思路!

谢谢你看到这里呀
如果喜欢这篇内容,点个关注,下次更新不迷路✨
















