设计测试用例(万能思路 + 六种设计用例方法)(详细 + 图解 + 实例)

一、设计测试用例的万能思路

针对某个物品/功能进行测试。

万能思路:功能测设 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试。

总结:

功能测试:

水杯:装水、喝水...

注册场景:注册 + 登录

想象日常使用中的注册场景有哪些功能。

界面测试:

非软件:颜色、形状、大小、材质、整体

软件:

文字/输入框/图片/下拉框 ------> 颜色、大小、形状、布局都要进行测试;

文字是否存在错别字、病句、折叠、重叠...

性能测试:

水杯:耐热性、耐寒性、耐摔性、抗压性...

软件:

响应时间

几千万人同时访问...

兼容性测试:

水杯:水杯可以装液体,针对不同液体。

软件:

系统:Linux、Windows、Mac;

终端:PC、移动端

浏览器:Chrome、FireFox、Safari...

易用性测试:

需要具备便捷、简单易上手的属性,用户引导、符合用户使用习惯。

安全测试:

水杯:

水杯的材质是否安全;

特殊情况下(高温低温)材质是否会释放毒性;

存放特殊的液体会不会导致化学反应,材质是否会释放毒性;

软件:

SQL注入

XSS漏洞

越权(垂直越权、水平越权)

二、设计用例的方法

针对手撕代码、明确额需求、项目来设计测试用例。

1. 等价类

等价类是分块/分区的概念。将需求的输入划分若干个等价类,从等价类中选出一个测试用例,如果这个测试用例通过,则认为这整个等价类就通过。

通过等价类可以用较少的测试用例就可以尽可能多的覆盖功能,可以解决穷举法解决不了的问题。

有效等价类:针对需求文档是合理的、有意义的集合。

无效等价类:针对需求文档是没有意义的集合。

使用步骤:

  1. 确定有效等价类和无效等价类;

  2. 编写测试用例。

假设需求:姓名输入6~200位的字符

有效等价类:输入6~200位的字符

无效等价类:输入小于6位 或 大于200 位的字符

2. 边界值

可以认为是等价类的补充,在等价类的基础上添加边界值和次边界值的测试用例。

假设需求:姓名输入6~200位的字符。

边界值:输入6位的字符,输入200位的字符;

次边界值:输入5位的字符,输入7位的字符;输入199位字符,输入201位字符。

3. 判定表法

(因果图法)通过输入条件和输出动作之间的关系,设定判定表,再根据判定表编写测试用例。

使用步骤:

  1. 确定输入条件和输出结果;

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

  3. 画判定表;

  4. 根据判定表编写测试用例

假设需求: 提交订单,当订单金额大于300或有红包时,是有优惠的。

  1. 确定输入条件和输出结果

输入条件:金额大于300、有红包、提交订单;

输出结果:有优惠、无优惠;

  1. 输入条件和输出结果之间的关系:

(为了方便书写,这里将金额大于300定为A,有红包定为B,提交订单定为C;有优惠定为1,无优惠定为2)

  1. 画判定表
  1. 根据判定表编写测试用例

(1)金额大于300,没有红包,提交了订单,则该订单为有优惠订单;

(2)金额不大于300,有红包,提交了订单,则该订单为有优惠订单;

(3)金额大于300,有红包,提交了订单,则该订单为有优惠订单;

(4)金额大于300,没有红包,没有提交订单,则该订单为无优惠订单;

(5)金额不大于300,有红包,没有提交订单,则该订单为无优惠订单;

(6)金额不大于300,没有红包,提交了订单,则该订单为无优惠订单;

(7)金额大于300,有红包,没有提交订单,则该订单为无优惠订单;

(8)金额不大于300,没有红包,没有提交订单,则该订单为无优惠订单;

注意:

在因果图法里,也是通过确定输入条件和输出结果来画出因果图(比较复杂难),然后再根据因果图画出判定表。因此这里直接通过输入条件和输出结果的关系确定了判定表,然后再编写测试用例。

4. 正交法

通过构造正交表编写测试用例。

正交表表达式:L4(2³ )

L:正交表;

4:试验次数(测试用例的个数)

2:因素数(输入条件)

3:水平数(输入条件的可选项)

正交表的特点:

  1. 每一列中数字出现的次数是相同的;

  2. 任意两表中数字的排序方式齐全且均衡。

使用步骤:

  1. 找出因素数和水平数;

  2. 使用allpairs工具生成正交表;

  3. 编写测试用例;

  4. 补充测试用例。

使用allpairs工具生成正交表步骤:

(1)在.exe 存在的目录下新建text文档。

(2)在 Excel 表中先写好每个输入条件及其对应的可选项。然后复制粘贴到新建的text文档中。然后直接保存(ctrl + s)。

(3)打开cmd命令行窗口(win + r),cd 到allpairs 的目录下启动allpairs(执行.exe文件)allpairs.exe 2023_5_111.txt > 2023_5_111.txt,然后重定向一个新文件2023_5_111.txt,里面就是正交表。

假设需求: 一个注册页面,输入姓名、电子邮箱、密码、确认密码、验证码进行注册。

  1. 找出因素数和水平数

因素数:姓名、电子邮箱、密码、确认密码、验证码

水平数:填写、不填写。(这里每个因素数的可选项都一样,都是填写或者不填写)

  1. 使用 allpairs工具 生成正交表
  1. 编写测试用例

(1)填写姓名、电子邮箱、密码、确认密码、验证码;

(2)填写姓名,不填写电子邮箱、密码、确认密码、验证码;

(3)填写电子邮箱、确认密码,不填写姓名、密码、验证码;

(4)填写密码、验证码,不填写姓名、电子邮箱、确认密码;

(5)填写姓名、电子邮箱、密码,不填写确认密码、验证码;

(6)填写姓名、确认密码、验证码,不填写电子邮箱、密码;

  1. 补充测试用例

(7)都不填写。

5. 场景设计法

包括基本事件流和多个备选事件流。以一个例子来解释什么是基本事件流和备选流。

假设需求:在ATM上取款

编写测试用例:

基本事件流:

先插卡、输入正确密码、选择取款功能、输入正确金额、取钱、取卡。

备选事件流:

(1)插卡,输入密码错入、第二次输入正确、选择取款.....取卡;

(2)插卡、密码忘记、取卡。

.......

6. 错误猜测法

通过资深的测试员提出的可能会出现的错误,来编写测试用例。

相关推荐
花酒锄作田4 小时前
FastAPI 使用 session 认证
python·fastapi
lsswear4 小时前
Python 并发 线程
开发语言·python
蒲公英内测分发5 小时前
App 更新一次就换一个二维码?智能硬件配套 App 的版本和下载入口怎么管理
人工智能·测试工具·智能家居·智能硬件
Ivanqhz5 小时前
MLIR OpBuilder
开发语言·python·mlir
天远数科6 小时前
零信任架构实战:基于天远全能消金报告构建自动化信贷评估网关
运维·人工智能·架构·自动化
威联通安全存储6 小时前
TS-h2287XU-RP 在家电制造总装与质检数据场景的部署
python·制造
泡泡鱼(敲代码中)7 小时前
Python 字符串 str 完整学习笔记
python·学习
troy1287 小时前
Python 基础语法(八):Web 后端开发、数据分析与可视化、网络爬虫、人工智能 / 大模型应用
前端·python·数据分析
海宇AI7 小时前
微服务架构实战:基于海宇对外投资历史查询服务构建自动化合规审计网关
人工智能·微服务·架构·自动化
我不会起名字3228 小时前
一天一道算法题(34):回溯法的经典例题(子集)
java·数据结构·python·算法·golang·深度优先·力扣