测试用例设计(一)
文章目录
前言
在软件测试领域,测试用例作为系统化验证软件功能、性能、安全性等是否符合需求的核心工具,其完整性和规范性直接决定测试效率与质量。
基于行业标准(如 ISO/IEC/IEEE 29119 软件测试标准)及实战经验,完整的测试用例需覆盖基础信息、执行条件、测试过程、验证标准、管理信息及扩展要素六大模块,各模块既相互独立又协同支撑,确保测试活动可追溯、可复现、可管理。
以下将对各核心要素进行详细拆解,并结合登录功能测试用例示例,展示要素的落地应用与优化思路。
一、基础信息:构建用例的 “身份标识”
基础信息是测试用例的 “第一印象”,用于快速定位、分类和管理用例,确保每个用例具备唯一性和可识别性,是团队协作(如评审、缺陷关联)的基础。
1.1 用例编号
- 定义:为每个测试用例分配的唯一标识符,需遵循统一编码规则,便于在测试管理工具(如 JIRA、TestRail)中追踪、检索和版本管理。
- 设计要点:
- 编码规则:建议包含 “项目标识 + 模块标识 + 用例类型 + 日期 / 版本 + 序号”,确保逻辑清晰。例如:“PROJ-ECOM-LOGIN-FUNC-2025V1-001”,其中 “PROJ-ECOM” 代表电商项目,“LOGIN” 代表登录模块,“FUNC” 代表功能测试类型,“2025V1” 代表 2025 年 V1 版本,“001” 为序号。
- 唯一性:同一项目内不可重复,若用例作废或修改,需标注版本(如 “TC-LOGIN-001-V2”),避免历史用例混淆。
- 注意事项:编码规则需在项目启动时确定并同步给所有测试人员,避免因个人习惯导致编码混乱,影响用例检索效率。
1.2 用例名称 / 标题
- 定义:简明扼要描述测试用例的核心测试目的与场景,需让测试人员、开发人员、产品人员快速理解用例意图,无需查看详细步骤即可把握核心。
- 设计要点:
- 命名公式:遵循 “场景 / 条件 + 操作 + 验证目标” 原则,避免模糊表述。例如:“验证输入已注册手机号 + 正确密码 + 有效验证码时登录成功”(明确场景与验证目标),而非 “登录功能测试”(模糊且无针对性)。
- 简洁性:控制在 50 字以内,突出关键信息,若场景复杂可通过 “备注” 补充,避免标题冗长。
- 注意事项:避免使用 “测试 XX 功能”“检查 XX 模块” 等无明确验证结果的表述,确保标题与预期结果强关联。
1.3 优先级
- 定义:根据软件功能的业务影响程度、缺陷发生概率及测试资源投入,定义用例的执行顺序,确保核心功能优先验证,降低上线风险。
- 设计要点:
- 分级标准:行业常用四级分级法,便于统一认知:
- P0(核心必测):覆盖软件核心业务流程或致命缺陷场景,如电商平台 “订单支付”、社交软件 “消息发送”,若此类用例失败,软件无法正常交付。
- P1(高优先级):覆盖重要功能但非核心流程,如 “个人资料修改”“收货地址管理”,缺陷会影响用户体验但不阻断核心业务。
- P2(中优先级):覆盖次要功能,如 “软件通知设置”“历史记录查询”,缺陷对用户影响较小。
- P3(低优先级):覆盖边缘场景或优化类功能,如 “软件皮肤切换”“字体大小调整”,可在测试后期或资源充足时执行。
- 分级依据:结合 “业务权重(如功能使用频率)+ 风险等级(如缺陷导致的损失)”,而非仅凭个人经验。例如:登录功能中,“正确账号密码登录” 为 P0,“密码找回时验证码过期处理” 为 P1。
- 分级标准:行业常用四级分级法,便于统一认知:
- 注意事项:优先级需与产品、开发团队共同评审确认,避免测试团队单方面定义导致与业务目标脱节。
二、执行条件:明确用例的 “前置保障”
执行条件是确保测试用例可复现的关键,明确 “测试前需满足什么状态”“在什么环境下执行”,避免因环境差异或前置状态缺失导致测试结果不准确。
2.1 前置条件
- 定义:执行测试用例前必须满足的系统状态、数据准备或业务前提,若不满足则用例无法正常执行。
- 设计要点:
- 分类梳理:
- 系统状态:如 “测试系统服务已启动,数据库连接正常”“服务器 CPU 利用率≤50%(性能测试场景)”。
- 数据准备:如 “测试用户已注册(账号:test001,密码:Aa123456)”“商品库存已初始化(商品 ID:SP001,库存数量:100)”。
- 业务前提:如 “用户已完成实名认证(金融类 APP 场景)”“已加入商品到购物车(结算功能场景)”。
- 可验证性:前置条件需可量化、可检查,避免 “系统正常运行”“数据准备完成” 等模糊表述,应明确 “如何验证”,例如 “通过访问系统监控页面(http://monitor.test.com)确认服务状态为‘运行中’”。
- 分类梳理:
- 注意事项:若前置条件较多,可分点列出并标注优先级(如 “必须满足:1、2;建议满足:3”),确保核心前置条件优先保障。
2.2 测试环境
- 定义:执行测试用例所需的硬件、软件、网络、工具等环境的集合,需与生产环境尽可能一致(或明确差异点),确保测试结果具备参考价值。
- 设计要点:
- 硬件环境:
服务器:CPU 型号(如 Intel Xeon E5-2680 v4)、内存(如 32GB DDR4)、硬盘(如 1TB SSD)、操作系统(如 CentOS 7.9)。
客户端:PC(如 Windows 11 专业版,i7-13700H,16GB 内存)、移动端(如 iPhone 15 iOS 18.0,华为 Mate 60 Pro Android 14)、外设(如打印机、扫码枪,若涉及)。 - 软件环境:
基础软件:浏览器(如 Chrome 126.0.6478.127,Firefox 127.0.1)、数据库(如 MySQL 8.0.36,Redis 6.2.6)、中间件(如 Tomcat 9.0.85,Nginx 1.24.0)。
测试工具:功能测试(如 Postman 10.24.0,Selenium 4.12.0)、性能测试(如 JMeter 5.6,LoadRunner 2023)、缺陷管理(如 JIRA 9.15.0)。 - 网络环境:
网络类型:有线(如千兆以太网)、无线(如 Wi-Fi 6)、移动网络(如 5G,4G)。
网络参数:带宽(如 100Mbps,10Mbps 弱网)、延迟(如正常网络≤50ms,高延迟场景 200ms)、丢包率(如正常 0%,异常场景 5%)。 - 环境标识:明确环境类型(如 “测试环境 TEST-ENV-01”“预生产环境 UAT-ENV-01”),避免在错误环境执行用例(如在开发环境执行性能测试)。
- 硬件环境:
- 注意事项:若测试场景涉及多环境(如 PC 端 + 移动端),需分别列出各环境参数,或标注 “通用环境 + 差异化参数”,例如 “通用环境:数据库 MySQL 8.0;PC 端:Chrome 126;移动端:iOS 18”。
三、测试过程:规范用例的 “执行步骤”
测试过程是用例的核心执行流程,需明确 “输入什么数据”“执行什么操作”,确保不同测试人员按步骤执行可得到一致结果,降低操作误差。
3.1 输入数据
- 定义:执行测试步骤时需输入到系统中的具体数据(如文本、数值、文件),需覆盖正常、异常、边界等场景,确保数据的代表性和有效性。
- 设计要点:
- 数据分类:
- 正常数据:符合业务规则的合法数据,用于验证功能正确性。例如:登录场景中 “手机号:13800138000(已注册),密码:Aa123456(符合密码规则:8-20 位字母 + 数字 + 特殊字符)”。
- 异常数据:不符合业务规则的非法数据,用于验证系统容错能力。例如:“手机号:12345(位数不足),密码:123456(纯数字,不符合密码规则)”。
- 边界数据:输入条件的临界值,用于验证系统边界处理能力。例如:密码长度要求 8-20 位,则边界数据为 “7 位(8-1):Aa12345;8 位(下限):Aa123456;20 位(上限):Aa12345678901234567890;21 位(20+1):Aa123456789012345678901”。
- 特殊数据:含特殊字符、空值、重复值等场景。例如:“手机号:13800138000(重复注册),验证码:null(空值),备注:@#$%^&*(特殊字符)”。
- 数据来源:若数据涉及隐私(如真实手机号),需使用测试专用数据(如 “13800000000-13800009999” 为测试号段),避免泄露真实信息;接口测试中需明确参数格式(如 JSON、XML)和必填项(标 “*”)。
- 数据分类:
- 注意事项:复杂场景(如多接口联动)需标注数据关联关系,例如 “步骤 3 使用的‘订单 ID’为步骤 2 创建订单返回的‘orderId:ORD20250823001’”。
3.2 操作步骤
- 定义:从测试准备到执行完成的详细操作流程,需按逻辑顺序编号,明确 “操作对象”“操作动作”“操作时机”,确保可复现。
- 设计要点:
- 步骤规范:
- 明确操作对象:避免 “点击按钮”“输入文本” 等模糊表述,需标注位置或标识,例如 “点击登录页面右上角的‘忘记密码’按钮(蓝色,位于‘登录’按钮右侧)”“在‘手机号’输入框( placeholder 为‘请输入 11 位手机号’)中输入数据”。
- 细化操作动作:包含鼠标操作(点击、双击、右键)、键盘操作(回车、删除、快捷键)、等待时间(如 “等待 3 秒,观察验证码发送状态”),例如 “在地址栏输入 URL 后,按下‘Enter’键(而非‘访问页面’)”“点击‘提交’按钮后,等待 2 秒(直至页面加载完成)”。
- 分步拆分:复杂操作需拆分为多个小步骤,避免一步涵盖多个动作。例如:“登录操作” 拆分为 “打开浏览器→输入 URL→进入登录页→输入账号→输入密码→输入验证码→点击登录”,而非 “输入账号密码登录系统”。
- 步骤关联:若步骤之间存在依赖(如 “步骤 5 需在步骤 4 执行成功后操作”),需明确标注;若涉及多模块切换(如 “从登录页跳转至注册页”),需说明跳转路径。
- 步骤规范:
- 注意事项:自动化测试用例的步骤需更精细化(如定位元素的 XPath 或 ID),例如 “通过 XPath‘//*[@id=“loginBtn”]’定位‘登录’按钮并点击”,便于自动化脚本开发。
四、验证标准:明确用例的 “判断依据”
验证标准是判断测试结果 “通过 / 失败” 的核心,需明确 “期望得到什么结果”“实际得到什么结果”,避免主观判断导致的争议。
4.1 预期结果
- 定义:在指定测试环境下,按步骤执行后系统应呈现的正确输出或状态,需与需求文档(PRD)一致,具备可验证性。
- 设计要点:
- 结果分类:
- 页面状态:如 “页面跳转至用户主页(URL 为https://test.com/user/home)”“登录按钮变为‘已登录’状态(灰色不可点击)”。
- 数据展示:如 “用户信息栏显示‘用户名:test001,手机号:138****8000’(手机号中间 4 位脱敏)”“订单列表显示最近 30 天的订单,按创建时间降序排列”。
- 系统反馈:如 “输入错误密码时,弹出红色提示框(内容:‘账号或密码错误,请重试’)”“验证码发送成功后,按钮显示‘60 秒后重发’并倒计时”。
- 性能指标:如 “登录响应时间≤2 秒(通过 F12 开发者工具‘Network’面板查看)”“页面加载完成时间≤3 秒,无资源加载失败(Status Code 均为 200)”。
- 表述原则:避免 “可能”“大概”“应该” 等模糊词,使用 “必须”“应”“显示”“返回” 等明确表述。例如:“点击登录按钮后,必须跳转至用户主页”(而非 “点击登录按钮后,应该能进入主页”)。
- 结果分类:
- 注意事项:多结果场景需分点列出,标注优先级(如 “核心结果:1;次要结果:2、3”),例如登录成功的预期结果:“1. 页面跳转至用户主页;2. 顶部显示‘欢迎回来,test001’;3. 左侧菜单显示‘我的订单’‘个人中心’等选项”。
4.2 实际结果
- 定义:测试人员按步骤执行后,系统实际呈现的输出或状态,需在测试执行时实时记录,确保真实、客观。
- 设计要点:
- 记录规范:
- 结果匹配:直接对比预期结果,标注 “通过(PASS)”“失败(FAIL)”“阻塞(BLOCK)”“跳过(SKIP)”,例如 “预期结果 1:页面跳转至用户主页;实际结果:页面停留在登录页,提示‘验证码错误’→结果:FAIL”。
- 缺陷描述:若结果失败,需补充缺陷细节,如 “错误提示框文字为‘验证码错误’(预期为‘验证码已过期’)”“响应时间为 5 秒(预期≤2 秒)”,并关联缺陷编号(如 “缺陷 ID:BUG-20250823-001”)。
- 截图 / 日志:复杂场景需附上截图(标注截图时间、位置)或日志(如接口返回的错误码、服务器日志片段),例如 “截图:20250823-1430-login-fail.png(显示错误提示框);接口日志:Response Code:400,Message:‘captcha expired’”。
- 记录时机:需在测试执行时同步记录,避免事后回忆导致遗漏;若测试中断(如系统崩溃),需记录中断节点和现场状态(如 “执行步骤 5 时,系统闪退,未返回任何提示”)。
- 记录规范:
- 注意事项:实际结果需与测试环境、执行时间绑定,例如 “执行环境:TEST-ENV-01;执行时间:2025-08-23 14:30:00;实际结果:PASS”,便于后续追溯。
五、管理信息:支撑用例的 “全生命周期追踪”
管理信息主要用于测试用例的版本管理、责任追溯和过程监控,通常在测试管理工具中维护,设计用例时无需详细编写,但需明确记录维度。
5.1 创建 / 执行人员
- 定义:记录用例的设计人员(创建人)和执行人员,明确责任归属,便于问题追溯。
- 设计要点:在工具中关联人员账号(如 JIRA 中的用户名),例如 “创建人:张三(zhangsan);执行人:李四(lisi)”,避免使用昵称或简称导致混淆。
5.2 执行时间
- 定义:记录用例的创建时间、首次执行时间、最后执行时间,便于跟踪测试进度和版本迭代。
- 设计要点:使用 “YYYY-MM-DD HH:MM:SS” 格式,例如 “创建时间:2025-08-20 10:00:00;最后执行时间:2025-08-23 15:00:00”,工具可自动生成,无需手动填写。
5.3 备注
- 定义:记录用例的特殊说明、异常情况或优化建议,补充核心要素未覆盖的信息。
- 设计要点:
- 特殊说明:如 “本用例需在每日凌晨 2-4 点执行(避开业务高峰期)”“测试数据需在执行后清理(避免影响其他用例)”。
- 异常记录:如 “2025-08-23 执行时,系统临时维护,用例跳过,计划次日重试”“接口偶尔返回 503 错误,需多次执行验证”。
- 优化建议:如 “建议新增‘密码强度实时提示’的验证点(当前需求未明确,待确认)”“步骤 3 可优化为‘自动填充验证码’,提升执行效率”。
- 注意事项:备注需简洁明了,避免与其他要素重复(如 “测试环境要求” 不应写在备注中)。
六、扩展要素:适配项目的 “个性化需求”
扩展要素根据项目类型(如电商、金融、医疗)、测试类型(如功能、性能、安全)或行业标准(如医疗行业的 FDA 认证、金融行业的等保合规)灵活添加,确保用例满足专项需求。
6.1 关联需求编号
- 定义:关联用例对应的需求文档编号,实现 “需求 - 用例 - 缺陷” 的全链路追溯,确保需求 100% 覆盖。
- 设计要点:关联需求管理工具中的编号(如 JIRA 需求 ID、Axure 原型编号),例如 “关联需求:REQ-ECOM-USER-002(用户认证需求:支持手机号 + 密码登录)”“关联原型:AX-ECOM-LOGIN-001(登录页面原型 V1.0)”,便于验证需求是否全部转化为用例。
6.2 自动化标记
- 定义:标注用例是否适合自动化、自动化实现状态,支撑自动化测试计划的制定。
- 设计要点:
- 标记类型:“Y(已实现自动化,脚本 ID:AUT-LOGIN-001)”“N(不适合自动化,原因:需人工验证验证码图片)”“P(计划实现自动化,优先级:高)”。
- 自动化工具:标注使用的自动化框架,如 “Selenium(Web 端)”“Appium(移动端)”“Postman Newman(接口)”,便于自动化团队维护脚本。
- 注意事项:自动化标记需结合用例稳定性(如频繁变更的功能不适合自动化)、执行频率(如回归测试高频用例优先自动化)判断。
6.3 后置条件
- 定义:测试执行完成后,系统应恢复的状态或需执行的清理操作,避免影响后续用例执行。
- 设计要点:
- 状态恢复:如 “执行完成后,退出当前登录账号,返回登录页面”“删除测试创建的订单(订单 ID:ORD20250823001),恢复库存至初始值”。
- 环境清理:如 “清除浏览器缓存(Chrome:设置→隐私和安全→清除浏览数据)”“停止性能测试工具(JMeter),释放服务器资源”。
- 注意事项:涉及数据修改的用例(如注册、下单)必须添加后置条件,确保测试环境 “干净”。
6.4 附件
- 定义:附加测试所需的参考文档、截图、日志、脚本等,为用例执行和缺陷定位提供支撑。
- 设计要点:
- 附件类型:需求文档(如 “REQ-USER-002.pdf”)、测试数据文件(如 “login-test-data.xlsx”)、截图(如 “登录页面原型图.png”)、自动化脚本(如 “login-auto-test.py”)。
- 附件路径:在工具中添加附件链接或本地路径(如 “附件:/test/docs/REQ-USER-002.pdf”),确保团队成员可访问。
- 注意事项:附件需标注版本(如 “V1.0”),避免使用过时文档。
七、优化后的登录功能测试用例示例
基于上述要素,以下为电商平台 “正常登录功能验证” 测试用例的优化示例,覆盖核心要素与扩展需求,贴合实战场景:
7.1 基础信息
用例编号:PROJ-ECOM-LOGIN-FUNC-2025V1-001
用例名称:验证输入已注册手机号 + 正确密码 + 有效验证码时登录成功优先级:
P0(核心功能,影响用户登录核心流程)
7.2 执行条件
前置条件:
1. 测试用户已注册(账号:test001,手机号:13800138000,密码:Aa123456@;通过 SQL 验证:SELECT * FROM user WHERE phone='13800138000' → 状态为 “正常”)
2. 测试系统服务正常(访问监控页http://monitor.test.com,服务状态:运行中,数据库连接:正常)
3. 验证码服务可用(调用验证码接口http://test.com/sms/send,返回 Code:200)
测试环境:
1. 硬件:PC(Windows 11 专业版,i7-13700H,16GB 内存)
2. 软件:Chrome 126.0.6478.127,MySQL 8.0.363. 网络:100Mbps 有线网络(延迟≤50ms,丢包率 0%)
3. 环境标识:TEST-ENV-01(测试环境)
7.3 测试过程
输入数据:
1. 手机号:13800138000(已注册,11 位数字,以 138 开头)
2. 密码:Aa123456@(符合规则:8-20 位,含字母、数字、特殊字符 @)
3. 验证码:654321(有效,6 位数字,通过接口http://test.com/sms/get获取,有效期 5 分钟)
操作步骤:
1. 打开 Chrome 浏览器,点击地址栏(位于浏览器顶部,placeholder 为 “搜索 Google 或输入网址”)
2. 在地址栏输入 URL:https://192.168.100.1:8443,按下 “Enter” 键,等待 2 秒,观察页面加载状态(预期结果 1)
3. 进入登录页面后,点击 “手机号” 输入框(placeholder 为 “请输入 11 位手机号”,位于页面左侧中部),输入 “13800138000”4. 点击 “密码” 输入框(位于手机号输入框下方,placeholder 为 “请输入 8-20 位密码(含字母、数字、特殊字符)”),输入 “Aa123456@”,观察密码是否隐藏显示(预期结果 2)
4. 点击 “获取验证码” 按钮(蓝色,位于密码输入框右侧),等待 3 秒,接收短信验证码 “654321”
5. 点击 “验证码” 输入框(位于获取验证码按钮下方,placeholder 为 “请输入 6 位验证码”),输入 “654321”
6. 点击 “登录” 按钮(红色,位于页面底部中央,文字为白色),等待 2 秒,观察页面跳转状态(预期结果 3)
7.4 验收标准
预期结果:
1. 步骤 2:页面成功加载,显示登录页面(含 “电商平台登录” 标题、手机号 / 密码 / 验证码输入框、登录按钮),无资源加载失败(F12 Network 面板 Status Code 均为 200)
2. 步骤 4:密码输入后显示为 “・・・・・・・・”(隐藏状态),无明文泄露
3. 步骤 7: a. 页面跳转至用户主页(URL:https://192.168.100.1:8443/user/home) b. 顶部导航栏显示 “欢迎回来,test001”(用户名),右侧显示 “退出登录” 按钮(灰色,可点击) c. 左侧菜单显示 “我的订单”“个人中心”“收货地址” 等选项 d. 登录响应时间≤2 秒(F12 Network 面板查看 “login” 接口耗时:1.2 秒)
实际结果:□ PASS □ FAIL □ BLOCK □ SKIP(执行后填写,示例:PASS,所有预期结果均满足;若 FAIL,需补充:如步骤 7d 响应时间为 5 秒,超出预期,缺陷 ID:BUG-20250823-001)
7.5 管理信息
创建人:张三(zhangsan)
执行人:李四(lisi)
创建时间:2025-08-20 10:00:00最后执行时间:2025-08-23 15:00:00
备注:
1. 每日回归测试需执行此用例;
2. 若验证码接收延迟,可重试 1-2 次;
3. 执行后需退出登录,清理 Cookie(Chrome:设置→隐私和安全→清除浏览数据→勾选 “Cookie 和其他网站数据”→清除)
八、不同领域测试用例的要素适配建议
测试用例的要素需结合领域特性调整,核心要素保持一致,扩展要素按需补充,以下为典型领域的适配建议:
领域 | 核心要素调整重点 | 扩展要素补充建议 |
---|---|---|
电商平台 | 1. 测试环境需覆盖多终端(PC、APP、小程序)2. 输入数据需含订单、支付、库存等业务数据3. 预期结果需含金额计算、订单状态流转 | 1. 关联订单编号、支付流水号(便于追溯交易链路)2. 性能指标(如高峰期并发登录响应时间)3. 安全要素(如支付密码加密、防刷单验证) |
金融 APP | 1. 测试环境需模拟生产级安全配置(如 HTTPS、加密传输)2. 输入数据需含身份证、银行卡等敏感测试数据(需脱敏)3. 预期结果需含风控规则验证 | 1. 合规标识(如符合等保 2.0 三级要求)2. 异常场景(如密码输错 3 次锁定、异地登录验证)3. 审计日志(记录每步操作的账号、时间、IP) |
医疗系统 | 1. 测试环境需符合医疗数据隐私标准(如 HIPAA、等保)2. 输入数据需含患者 ID、病历号等合规数据3. 预期结果需含医疗流程合规性验证 | 1. 认证标识(如 FDA 认证、NMPA 注册要求)2. 数据溯源(关联患者病历编号、诊疗记录 ID)3. 容错机制(如系统崩溃时数据自动备份) |
工业软件 | 1. 测试环境需对接真实设备(如传感器、PLC)2. 操作步骤需含设备启停、参数配置等物理操作3. 预期结果需含设备状态、数据采集精度 | 1. 硬件接口信息(如 RS485、以太网接口参数)2. 实时性指标(如数据采集延迟≤100ms)3. 故障模拟(如设备断电、网络中断恢复) |
通过以上适配,可确保测试用例既符合行业标准,又贴合项目实际需求,真正发挥 “验证软件质量、降低上线风险” 的核心作用。
总结
上文围绕完整测试用例设计展开,以行业标准和实战经验为基础,系统拆解了基础信息、执行条件、测试过程、验证标准、管理信息、扩展要素六大核心模块,每个模块下又细分关键要点并结合设计原则与注意事项。同时,通过电商平台登录功能测试用例示例,直观展示各要素落地应用,还针对电商、金融、医疗、工业软件等不同领域,给出测试用例要素适配建议,整体内容兼具规范性与实用性,为测试人员设计高质量测试用例提供全面指导。