测试用例是功能测试的核心,它是为了验证软件功能是否符合需求而设计的一组输入、执行条件和预期结果。详细且高质量的测试用例能有效提高测试效率和准确性,发现潜在缺陷。以下从基础概念、设计方法、编写规范到示例展开说明:
一、测试用例的核心要素
- 用例编号 :唯一标识,便于追溯和管理(如
TC_LOGIN_001
)。 - 测试项目:明确测试对象(如 "用户登录模块")。
- 测试标题:简洁描述测试目的(如 "验证正确用户名和密码登录成功")。
- 预置条件:执行用例前需满足的环境或数据(如 "用户已注册")。
- 测试步骤:按顺序描述操作流程(如 "输入用户名→输入密码→点击登录按钮")。
- 测试数据 :输入的参数(如
username="testuser"
、password="123456"
)。 - 预期结果:执行后应出现的正确结果(如 "跳转到首页,显示欢迎信息")。
- 实际结果:测试执行后的真实输出(执行时填写)。
- 测试状态:用例执行状态(Pass/Fail/Blocked)。
二、测试用例设计方法
1. 等价类划分法
将输入数据划分为有效等价类 (合理数据)和无效等价类(异常数据),每个等价类选一个代表值测试。
-
示例 :验证邮箱输入框(规则:必须包含
@
和.
,长度 6-30 字符)等价类 数据示例 有效等价类 abc@example.com
无效等价类(无 @) abc.example.com
无效等价类(无.) abc@example
无效等价类(长度 < 6) a@b.com
无效等价类(长度 > 30) a
*31 + "@b.com"
2. 边界值分析法
针对输入或输出的边界值设计用例(如最大值、最小值、临界值)。
- 示例 :验证年龄输入框(范围 18-60 岁)
- 边界值:18、19、59、60
- 次边界值:17、61
3. 场景法
模拟用户实际使用场景,覆盖正常和异常流程(常用于业务流程测试)。
- 示例 :电商购物流程
- 正常场景:登录→选商品→加购物车→结算→支付成功
- 异常场景:登录失败→选商品→库存不足→无法结算
4. 因果图法
分析输入条件的组合与输出结果的因果关系,适用于多条件判断场景。
- 示例 :用户权限判断(条件:角色 = 管理员、状态 = 启用 → 允许访问)
- 因果图:
因 1:角色 = 管理员
因 2:状态 = 启用
果:允许访问 - 用例:
- 角色 = 管理员,状态 = 启用 → 允许访问
- 角色 = 普通用户,状态 = 启用 → 拒绝访问
- 因果图:
5. 错误推测法
基于经验和直觉,推测可能出现的错误场景(如输入特殊字符、重复操作)。
- 示例 :搜索框测试
- 输入
%
、'
等 SQL 注入敏感字符 - 连续点击搜索按钮 10 次
- 输入
三、测试用例编写规范
- 清晰简洁:步骤和预期结果避免歧义(如 "点击'确认'按钮" 而非 "点击按钮")。
- 独立性:每个用例独立执行,不依赖其他用例的状态。
- 可复用性:通用场景的用例可重复使用(如登录用例)。
- 优先级标注:按重要性分级(P0 = 核心功能,P1 = 次要功能,P2 = 边缘功能)。
四、完整测试用例示例
以下是一个完整的电商购物流程测试文档模板,包含测试计划、测试用例、测试报告等核心内容。你可以根据实际项目需求进行调整:
电商购物流程测试用例文档
1.测试计划
测试范围
- 用户注册 / 登录
- 商品浏览 / 搜索
- 购物车管理
- 订单结算 / 支付
- 订单管理 / 物流跟踪
测试目标
- 验证电商购物全流程功能完整性和正确性
- 发现系统缺陷,确保核心业务流程畅通
- 评估系统在高并发下的性能表现
测试方法
- 功能测试:验证各模块功能是否符合需求
- 边界值测试:测试输入参数的边界情况
- 异常处理测试:验证系统对异常情况的处理能力
- 性能测试:评估系统在高并发下的响应时间和吞吐量
测试进度安排
阶段 | 时间周期 | 负责人 |
---|---|---|
测试准备 | 2025-07-03 至 07-05 | 测试经理 |
功能测试 | 2025-07-06 至 07-15 | 测试团队 |
性能测试 | 2025-07-16 至 07-20 | 性能测试工程师 |
缺陷修复验证 | 2025-07-21 至 07-25 | 测试团队 |
测试总结 | 2025-07-26 至 07-28 | 测试经理 |
2.测试用例(部分示例)
用户注册测试用例
测试用例 ID | 测试项目 | 测试标题 | 前置条件 | 测试步骤 | 预期结果 | 测试数据 |
---|---|---|---|---|---|---|
TC-USER-001 | 用户注册 | 正常注册流程验证 | 系统正常运行,数据库连接正常 | 1. 访问注册页面 2. 输入有效用户名、密码、邮箱 3. 点击 "注册" 按钮 | 1. 系统提示注册成功 2. 自动跳转到登录页面 3. 数据库新增用户记录 | username: test001 password: Test1234! email: test001@example.com |
TC-USER-002 | 用户注册 | 重复用户名注册 | 系统中已存在用户 test001 | 1. 访问注册页面 2. 输入已存在的用户名 test001 3. 输入其他有效信息 4. 点击 "注册" 按钮 | 1. 系统提示 "用户名已存在" 2. 注册页面保持当前状态,不跳转 | username: test001 password: Test1234! email: test002@example.com |
商品搜索测试用例
测试用例 ID | 测试项目 | 测试标题 | 前置条件 | 测试步骤 | 预期结果 | 测试数据 |
---|---|---|---|---|---|---|
TC-PROD-001 | 商品搜索 | 精确搜索验证 | 系统中存在商品 "iPhone 14" | 1. 访问首页 2. 在搜索框输入 "iPhone 14" 3. 点击搜索按钮 | 1. 搜索结果页面显示 "iPhone 14" 相关商品 2. 结果数量与数据库匹配 | 搜索关键词: iPhone 14 |
TC-PROD-002 | 商品搜索 | 无结果搜索提示验证 | 系统中不存在商品 "XYZ" | 1. 访问首页 2. 在搜索框输入 "XYZ" 3. 点击搜索按钮 | 1. 搜索结果页面显示 "没有找到匹配的商品" 2. 提供相关推荐或热门搜索词 | 搜索关键词: XYZ |
购物车测试用例
测试用例 ID | 测试项目 | 测试标题 | 前置条件 | 测试步骤 | 预期结果 | 测试数据 |
---|---|---|---|---|---|---|
TC-CART-001 | 购物车管理 | 添加商品到购物车 | 1. 用户已登录 2. 商品详情页存在商品 "iPhone 14" | 1. 访问商品详情页 2. 选择商品规格 3. 点击 "加入购物车" 按钮 | 1. 系统提示 "商品已添加到购物车" 2. 购物车数量 + 1 3. 购物车页面显示该商品 | 商品 ID: 1001 规格: 256G, 黑色 |
TC-CART-002 | 购物车管理 | 修改购物车商品数量 | 1. 用户已登录 2. 购物车中已存在商品 "iPhone 14" | 1. 访问购物车页面 2. 将商品数量从 1 修改为 3 3. 点击 "更新" 按钮 | 1. 商品小计金额更新为单价 ×3 2. 购物车总价更新 | 商品 ID: 1001 原数量: 1 新数量: 3 |
订单结算测试用例
测试用例 ID | 测试项目 | 测试标题 | 前置条件 | 测试步骤 | 预期结果 | 测试数据 |
---|---|---|---|---|---|---|
TC-ORDER-001 | 订单结算 | 正常结算流程验证 | 1. 用户已登录 2. 购物车中存在商品 "iPhone 14" | 1. 访问购物车页面 2. 勾选商品 "iPhone 14" 3. 点击 "结算" 按钮 4. 选择收货地址、支付方式 5. 点击 "提交订单" 按钮 | 1. 系统生成订单号 2. 跳转到支付页面 3. 购物车清空 | 商品 ID: 1001 收货地址 ID: 001 支付方式:支付宝 |
TC-ORDER-002 | 订单结算 | 无收货地址结算验证 | 1. 用户已登录 2. 购物车中存在商品 3. 用户无收货地址 | 1. 访问购物车页面 2. 点击 "结算" 按钮 | 1. 系统提示 "请添加收货地址" 2. 跳转到地址管理页面 | - |
支付测试用例
测试用例 ID | 测试项目 | 测试标题 | 前置条件 | 测试步骤 | 预期结果 | 测试数据 |
---|---|---|---|---|---|---|
TC-PAY-001 | 支付流程 | 支付宝支付成功验证 | 1. 用户已登录 2. 已生成待支付订单 | 1. 访问订单支付页面 2. 选择 "支付宝" 支付方式 3. 点击 "确认支付" 按钮 4. 在模拟支付页面输入正确信息并提交 | 1. 系统提示 "支付成功" 2. 订单状态更新为 "已支付" 3. 跳转到订单成功页面 | 订单 ID: 20250701001 支付金额: 7999.00 |
TC-PAY-002 | 支付流程 | 支付超时处理验证 | 1. 用户已登录 2. 已生成待支付订单 | 1. 访问订单支付页面 2. 选择支付方式 3. 等待 30 分钟(模拟支付超时) 4. 尝试支付 | 1. 系统提示 "订单已超时,请重新下单" 2. 订单状态更新为 "已取消" | 订单 ID: 20250701002 支付金额: 2999.00 |
3.测试报告
1. 测试概述
- 测试时间:2025 年 7 月 3 日 - 2025 年 7 月 28 日
- 测试环境:
- 操作系统:Windows 10、macOS Ventura、iOS 17、Android 14
- 浏览器:Chrome 115、Firefox 114、Safari 17
- 服务器配置:8 核 16G,MySQL 8.0,Redis 7.0
- 测试覆盖范围:用户注册、商品搜索、购物车、订单结算、支付、物流跟踪
2. 测试执行情况
测试类型 | 计划用例数 | 执行用例数 | 通过用例数 | 失败用例数 | 通过率 |
---|---|---|---|---|---|
功能测试 | 256 | 256 | 242 | 14 | 94.5% |
性能测试 | 32 | 32 | 28 | 4 | 87.5% |
安全测试 | 48 | 48 | 45 | 3 | 93.8% |
总计 | 336 | 336 | 315 | 21 | 93.7% |
目规模和需求进行调整和补充。测试过程中应严格记录问题,并及时与开发团队沟通修复。
五、注意事项
- 覆盖全面:用例需覆盖所有需求、边界条件和异常场景。
- 避免冗余:剔除重复或无效用例(如多个用例测试同一功能)。
- 动态更新:需求变更时及时修改或新增用例。