【测试】测试用例设计攻略(6大设计方法)

📌 相关专栏

很高兴你点开这篇文章✨

这里会持续更新我喜欢的内容,关注我,一起慢慢变好呀

👍 点赞 ⭐ 收藏 💬 评论


文章目录

前言

在软件测试中,测试用例是最基础也是最重要的产出物。无论你是手工测试还是自动化测试,设计出高质量的测试用例,都是保证产品质量的关键。

💡 本文结合系统的测试课程内容,带你全面了解:

  • 测试用例的概念与作用
  • 设计测试用例的万能公式
  • 6大具体设计方法(等价类、边界值、正交法、判定表、场景法、错误猜测法
  • 多种场景下的用例设计实战

🐶 🐾 ✨ 🐾 🐶


一、什么是测试用例?

测试用例是为了实施测试而向被测试系统提供的一组集合,包含:测试环境、操作步骤、测试数据、预期结果等要素。

🐾 测试用例示例

要素 内容
用例编号 test-01
标题 成功注册网易邮箱
测试方式 手工测试
功能模块 注册登录
测试前提 系统运行正常,邮件服务器已开启
测试环境 win10 Chrome版本103.0.5060.66(正式版本)(64位)
测试数据 邮箱:996402440@qq.com, 密码:123456 手机号:88888888888
测试步骤 1.打开注册页面 2.填写信息 3.点击注册
期望结果 注册成功,可正常登录

为什么要写测试用例?

🐾 不写测试用例会遇到这些问题:

  • 不知道是否全面测试了所有功能
  • 测试覆盖率无法衡量
  • 回归测试难以实施
  • 存在大量冗余测试

另外,测试用例还能帮你"避免背锅"------产品出问题时,有据可查。

🐶 🐾 ✨ 🐾 🐶


二、设计测试用例的万能公式

很多新手拿到一个产品(比如一个门锁、一个水杯)不知道从何下手。万能公式帮你理清思路:

2.1 常规思考 + 逆向思维 + 发散性思维

不仅要测试"程序应该做什么",还要测试"程序不应该做什么"。

  1. 测试用用例的编写不仅应当根据有效和料到的输入情况,而且也应该根据无效和未料到的输入情况;
  2. 检查程序是否"未做器应该做的"仅成功一半,测试的零另一半是检查程序是否"做了不应该做的";
  3. 计划测试工作时不应该默许假定不会出现错误。

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。


  • 正交表的构成: 因素数、水平数、行数。
    • 因素:对指标的影响条件,通常是正交表中的⼀列。
    • 水平:因素对应的可选项(比如"填写"、"不填写")。

  • 正交表的性质:
    • 每⼀列中,不同的数字出现的次数相等。
    • 任意两列中数字的排列⽅式⻬全⽽且均衡
      步骤:

正交法设计测试用例的步骤:

  1. 找到因素和水平
  2. 用allparis工具生成正交表
    • a、将因素和水平写入Excel表格中
    • b、 allparis目录下创建新的文本文件new.txt,复制Excel中的因素和水平,直接粘贴到文本中保存并退出
    • c.、使用allparis命令生成正交表:allparis.exe new.txt>zhengjiao.txt
  3. 根据正交表编写测试用例
  4. 补充遗漏的重要测试用例

示例

继续以邮箱注册为例, 采用正交法补全剩下的测试用例。

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. 确定输入条件和输出条件
  2. 找出输入输出的逻辑关系
  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)其他参数的测试

🐶 🐾 ✨ 🐾 🐶


结语

复制代码
测试用例设计是软件测试的核心技能。掌握万能公式和六大方法,能让你在面对任何产品时都有条不紊地设计出高质量的测试用例。

笔试:需要写出完整格式的测试用例
面试:可以用思维导图的方式表达你的测试思路

赶快拿起一个水杯,或者打开一个注册页面,试试你的用例设计能力吧!

欢迎留言交流你的测试用例设计思路!

谢谢你看到这里呀

如果喜欢这篇内容,点个关注,下次更新不迷路✨

👍 点赞 ⭐ 收藏 💬 评论

相关推荐
蒸蛋一级爱好者13 小时前
UDP通信
网络·网络协议·udp
还在忙碌的吴小二13 小时前
Spring Boot Examples 学习示例集新手入门指南
java·spring boot·后端·学习·spring
吃好睡好便好13 小时前
说说如何爱护头发
学习·生活
随便做点啥13 小时前
8卡服务器(4服务x 2卡)Nginx 负载均衡配置,与百分位延迟说明
服务器·nginx·负载均衡
一只小白00013 小时前
【JUC | 学习笔记】—— 线程池
笔记·学习
searchforAI13 小时前
Obsidian一键获取视频笔记内容,AI做知识管理+内容创作
人工智能·笔记·gpt·学习·知识图谱·markdown·知识库
暴躁小师兄数据学院13 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第6章):复合数据类型
人工智能·windows·笔记·python
kevinoop13 小时前
机器人视觉学习记录
学习·机器人
民乐团扒谱机13 小时前
【太奶学IT】深度学习Transformer编码器+解码器大白话拆解 图像处理/自然语言通用详解
图像处理·深度学习·学习