如何编写测试用例?
如何编写测试用例?
Valyn前言
关于如何编写测试用例的一些小总结
测试用例
测试用例是什么?
测试用例是一组定义了输入、执行步骤和预期结果的文档或指令,用于验证被测试系统的功能、性能和可靠性。它是软件测试过程中的基本单元,旨在模拟不同的使用情况和场景,以确保系统按照预期工作。
为什么要编写测试用例?
编写测试用例的好处:
- 验证功能
- 发现缺陷
- 防止漏测
- 持续集成和回归测试
怎么编写测试用例?
测试用例的组成
用例编号 | 用例标题 | 功能模块 | 优先级 | 前置条件 | 测试数据 | 执行步骤 | 预期结果 | 实际结果 | 编写人 | 执行人 |
---|
用例编号:
测试用例的唯一标识
用例标题:
又称为测试点,用一句话描述测试用例的关注点。每一条用例对应一个测试目的。
功能模块
具体的功能模块
优先级:
根据需求定义优先级,分为P1,P2,P3,P4。高优先级需覆盖核心业务,优先测试。
前置条件:
对于具体功能测试前需具备的条件
测试数据:
测试所需的输入数据
执行步骤:
测试用例的步骤描述,执行人员可根据测试步骤完成测试的执行
预期结果:
具体执行用例测试之前,预期得到的输出。用于判断功能的执行正确与否。
实际结果:
与预期结果进行对比,判断功能的实现是否符合标准
编写人:
测试用例的编写者
执行人:
测试用例的执行人
编写用例使用的方法
等价类划分(常用)
将输入值划分为若干等价类,并选择代表性的测试用例来覆盖每个等价类。这样可以减少重复测试,并确保充分覆盖各种情况。
边界值分析(常用)
确定关键输入的边界条件,并针对边界情况编写测试用例。这有助于发现潜在的错误或问题。(遵循开内闭外)
决策表
用于表示和推导条件逻辑关系的表格工具。它将各种可能的输入条件组合和对应的输出结果列在表格中,以帮助分析和设计复杂的决策逻辑。(应用于多条件有依赖关系的测试中)
场景法
通过定义具体的使用场景,模拟用户在实际应用中的操作和行为,来进行系统的功能测试和验证。(覆盖业务测试)
错误推测法
应⽤场景:当项⽬⽤例都执⾏完毕,且BUG修复完成,离上线还有⼀段时间, 在这段时间中可是使⽤错误推荐法复测主要业务或测试未覆盖的功能。
用例编写经验
表单测试
输入框
长度,数据类型,必填(是否为空),唯一性约束,业务中的相关约束(需求中明确),SQL注入(登录校验)
等价类划分,边界值分析
下拉框
下拉框数据的完整性及正确性,手动输入关键字模糊匹配,选择第一条/中间/最后一条,联动选项(省,市)
边界值分析
单选
- 选与不选
多选
单一选择
多个组合选择
- 两两组合(全部覆盖)
- 3个组合(2到3组)
- 业务常见组合情况
正交实验法
文件上传
- 图片,视频,excel,txt等
- 图片,视频
- 大小,格式,视频时长,尺寸,数量等
- excel/txt文件
- 本身文件大小,格式,数量
- 文件包含数据校验:长度,数据类型,必填,唯一性约束,业务中的相关约束(需求中明确),sheet1/sheet2,可否读多个表单数据
- 图片,视频
提交按钮
- 点击/回车,快速点击,提交数据后加密(界面/数据库),提交操作的权限控制(登录角色相关)
搜索测试
数据来源
- 制造数据(通过业务操作/调用接口/通过数据库)
搜索条件
- 输入项,下拉框,时间框等
- 任意单个条件查询:模糊搜索,超长搜索,不存在与之匹配的条件,为空
- 任意两个组合查询:确保两个组合查询的正确性(全部组合)
- 三个组合查询:(N-1个组合查询,N-搜索条件数量):不需要测试三个组合的全部组合
- 全条件组合查询:确保最大组合的正确性
- 默认搜索条件查询
- 根据需求或者业务规则选取重点条件组合查询
时间搜索框
- 开始时间 = 结束时间,开始时间 < 结束时间(跨天,跨月,跨年)不要忽略跨月,跨年
- 开始时间超过/小于当前时间(不予选择),只输入开始时间/结束时间,开始时间/结束时间都不输入(默认显示所有数据/不显示数据)
- 结束时间早于开始时间
- 手动输入,时间格式,默认时间
- 搜索重点
- 结合数据库对比一致性
- 翻页控件
- 首页,上一页,下一页,尾页
- 总页数,当前页数
- 指定跳转页
删除测试
- 没选择数据,点击删除
- 选择一条数据,点击删除
- 连续删除多个产品,选择批量删除
- 选择全选,点击删除
- 删除一个有关联性的数据
Cookies,Session(功能测试不需要测)
- 在浏览器默认存储Cookies目录下是否存在Cookies
- 已知Cookies的保存时间,测试时间范围内和外的Cookies是否正常
- 将浏览器下的所有Cookies文件删除,再登录系统,查看会怎么处理
数据库测试
- 数据库脚本的执行(CRUD是否正常,搭建环境,初始化数据库)
- 页面的表单提交,修改,查询,删除对应到数据库表中是否正常
后记
无