简介:这份《测试用例编写指南》面向软件测试人员与技术管理团队成员,针对测试设计凭惯性思考、用例颗粒度与详细程度不一、可读性差等痛点,提供一套可循可依的规范方法。文档围绕需求分析、业务流程分析、系统设计分析、用例编写与完善五个步骤展开,并系统讲解用例要素、需求与用例划分原则、测试类型及等价类划分、边界值分析、状态迁移等设计方法,同时补充用例维护与风险建议,帮助读者统一编写口径、弥补知识空缺、提升测试设计水平。资源包共1个docx文件,约494KB,内容为完整指南正文,含修订记录与目录结构,便于按章节查阅。目前已有553人学习下载,适合需要规范用例编写流程、提升用例质量与投产保障能力的测试从业者参考。
1. 一份被低估的测试用例编写指南:从“凭感觉写”到“有据可依”
很多测试同学写用例的状态,我太熟了:打开 Excel 或者测试管理平台,对着需求文档扫两眼,脑子里过一遍主流程,然后开始敲“输入正确账号密码,点击登录,登录成功”。写完自己都觉得心虚——边界呢?异常呢?后台数据落库校验呢?下次换个人来写同一个模块,颗粒度能差出三倍。这份《测试用例编写指南》解决的正是这个老问题:它把需求分析、业务流程分析、系统设计分析、用例编写、用例完善五个步骤串成一条线,把测试需求要素、用例要素、划分原则、编写要求、测试类型、设计方法逐条落到可执行的规则上。适合谁?带测试团队的技术管理者、需要统一用例规范的中级测试、以及刚接手复杂业务系统、不知道检查点该拆到多细的新人。它不是一份读完就完的文档,而是一份可以贴在工位上、评审时拿来对标的操作手册。
2. 五步法拆解:从需求文档到可执行用例的完整链路
2.1 需求分析到系统设计分析:三个输入输出别搞混
指南把编写步骤拆成五步,前四步是设计,第五步是维护。很多人写用例质量不稳,根子就在第一步偷懒——只看了业务需求说明书,没做业务流程分析和系统设计分析。指南对每一步都给了明确的输入、处理、输出,这个结构值得照搬。
步骤一需求分析,输入是业务需求说明书,处理是按流程或功能分类,输出是测试需求加检查点。注意这里的关键词是“每一个需求细节列出”,不是把需求文档复制一遍。我一般会要求团队把每条需求拆成“可验证的断言”,比如“用户可注册”要拆成“手机号格式校验、验证码有效期、重复注册拦截、注册成功落库”四个检查点。
步骤二业务流程分析,输入是业务背景和被测系统流程,处理是整理主流程、备选流程、数据流向、关键判断条件,输出是补充检查点。这一步最容易被跳过,但恰恰是生产问题的高发区。业务需求往往只写“正常下单”,但备选流程里的“库存不足回滚”“支付超时关单”才是血泪经验堆出来的地方。
步骤三系统设计分析,输入是概要设计、接口设计、数据库设计文档,处理是分析改动点及影响范围,输出是逻辑分支和回归检查点。这一步决定了你的用例能不能覆盖“改 A 功能把 B 功能带崩”的关联性风险。
步骤四用例编写,输入是测试需求,处理是覆盖所有业务流程场景和系统逻辑分支,输出是功能正确性、边界、异常、接口、信息安全等类型的用例。步骤五是用例完善,触发条件写得很实在:评审发现问题、需求变更、测试过程发现遗漏、生产问题经分析为测试泄漏。这四条触发条件建议直接抄进团队的用例维护规范里。
2.2 测试需求与用例要素:字段定义决定评审能不能过
指南给了测试需求和测试用例两套要素,字段不多,但每个都有明确含义。测试需求侧五个字段:需求路径、需求名称、需求描述、设计人、关联系统。需求路径的格式是“/项目名称/一级需求/二级需求/……/N 级需求”,这个层级结构直接决定了后面用例路径怎么拼。
测试用例侧字段更多:用例路径、测试名称、用例描述、前置条件、操作步骤、预期结果、设计人、优先级、用例类型、用例属性、测试方式、执行次数。其中几个字段的取值规则值得单独拎出来:
| 字段 | 取值规则 | 常见误用 |
|---|---|---|
| 优先级 | 高/中/低三级 | 全标“高”,等于没标 |
| 用例类型 | 流程类、功能点类、报表统计类、界面类、报文接口类、批处理、其他类 | 把接口用例塞进功能点类 |
| 用例属性 | 正常、异常 | 异常用例只写“提示错误”,不写具体提示内容 |
| 测试方式 | 手工、自动化 | 自动化用例和功能用例不匹配,覆盖出现空洞 |
用例路径是在需求路径基础上追加需求名称,即“/项目名称/一级需求/……/N 级需求/需求名称/”。这个设计的好处是需求和用例天然对齐,评审时顺着路径就能查覆盖。前置条件有一条硬规则:用例之间不允许相互依赖,不能把其他用例作为前置条件。这条规则在评审时经常被挑战,但坚持下来能省掉大量“执行顺序一换就挂”的麻烦。
2.3 划分原则:颗粒度粗了漏测,细了维护成本爆炸
指南用了一整节讲划分原则,核心就一句话:降低因颗粒度过粗导致测试点遗漏、或过细引发维护成本高的影响。测试需求划分按测试对象分类走,前端功能新增/修改按“菜单上级目录/菜单名称/功能名称”三级拆,流程类按“全业务流程/流程名称/步骤名称”拆,后台功能按“单功能/接口功能/接口名称/校验类型”拆,批处理按批处理节点拆,后台流程按“全流程/场景/流程名称/步骤分解”拆,数据埋点按“新增埋点/检查/回归”拆,兼容性按测试维度拆。
测试用例划分更具体:前端功能新增菜单,一个测试需求检查点对应一条用例,但表单输入项多的时候可以酌情按输入项或输入分区拆;业务流程一个检查点一条用例;后台功能原则上一个检查点一条用例,但入参有效性检查这类可以合并;批处理和后台流程都是一个检查点一条用例;数据埋点每个页面一条用例;兼容性按指定维度划分,每种维度细分项对应一条用例。
指南还给了几条说明,其中两条特别实用:同一功能不同入口可合并编写一个需求;一个功能中含多个正常场景或异常流程,应分别列出多个检查点。这两条直接解决“同一个功能三个入口要不要写三遍”的日常争论。
3. 编写要求落地:操作步骤与预期结果的对应关系怎么摆
3.1 测试名称、前置条件、操作步骤的硬约束
测试名称的要求是简洁易懂,能直接识别测试对象和检查点,不包含具体操作步骤和逻辑。指南给的示例是“放款失败-合同冻结”,这个格式可以当模板用:现象或场景加对象,中间用短横线连接。前置条件的要求是:有特殊账号权限、需要数据准备或前置操作的必须完整列出,且用例之间不允许相互依赖。
操作步骤有三条硬约束值得逐条对照:操作的入口、与测试点相关的输入要素、按钮、运行的任务以及操作顺序都要清楚描述;操作步骤和预期结果分支存在一对一、多对一、多对多的情况,多对多时通过相同编号反映对应关系;操作步骤中不能包含检查结果。最后这条是高频翻车点——很多人写着写着就在步骤里塞一句“确认页面提示成功”,这属于把预期结果混进了操作步骤,评审时应该打回去。
3.2 预期结果的分支写法:一对一、多对一、多对多怎么编号
预期结果的要求更细:检查点完整列出;前端操作成功或失败要包含页面显示、提示信息、后台数据存储、前后端数据一致性检查;涉及后台数据存储或变更要明确具体数据表记录和关键字段取值变化;提示信息要明确关键检查内容;后台系统测试和涉及信息安全的前端操作必须包含输出日志和后台数据存储结果检查;一个预期结果分支含多步骤时,可先将步骤按序列出,再将检查点与其前置依赖步骤通过编号关联;预期结果中不能包含操作步骤。
指南用一张对照表把分支关系讲透了,我把它压缩成可操作的规则:
- 一种操作对应一个预期结果分支、分支里只有一个检查点:直接写,比如“删除未挂用例的测试执行集,可成功删除”。
- 一个预期结果含多个检查点:用编号列出,比如删除已挂未执行用例的执行集,预期结果分两条——执行集及执行记录删除成功、用例管理列表数据仍存在且有效。
- 多种操作对应一个预期结果分支:操作步骤用编号分列,预期结果写一条共用结论。
- 多种操作对应多个预期结果分支:操作和预期结果都用相同编号一一对应,比如添加分类名称的输入有效性检查,五种输入对应五条预期。
- 多个预期结果中含多个检查点、一组操作一个预期结果多次执行:指南明确写了“不建议使用,尽量将此类用例按预期结果分支进行拆分”。
这条“不建议使用”的标注很有价值,它等于告诉团队:遇到复杂分支别硬塞进一条用例,拆开写。拆开之后单条用例可读性上去了,自动化映射也容易做。
3.3 优先级设置与测试类型覆盖清单
优先级三级规则写得很清楚:高是确保系统基本功能及关键路径,比如正常流程、页面元素正常输入;中是确保系统功能完善,比如异常流程、页面元素异常输入;低是用户体验及其他较少使用或辅助功能,比如页面元素显示测试。实际执行时最常见的毛病是全标高,导致优先级失去排序意义。我的做法是强制分布——高优先级不超过用例总数的三成,超了就退回重标。
测试类型清单覆盖了功能测试、接口间测试、信息安全测试、关联性测试、回归测试、数据库测试、压力测试、操作友好性测试、效率测试、兼容性测试、数据移植测试、安装测试共十二类。这份清单可以直接当检查表用:每轮用例评审时对照一遍,看哪些类型缺了。其中关联性测试和数据移植测试最容易被漏,前者针对不涉及代码改动但与被改动功能有依赖或调用关系的功能,后者关注迁移前后数据量一致性、表结构变化以及迁移后数据的业务逻辑回归。
4. 设计方法与避坑:等价类、边界值之外的那些翻车点
4.1 六种设计方法在真实业务里的用法
指南列了六种设计方法:功能正确性测试、异常测试、边界值测试、等价划分测试、错误推测、因果图分析。功能正确性测试要求首先保证覆盖业务需求说明书中的各项功能正常实现;异常测试的写法很接地气——模拟一名不了解产品操作的客户执行任意操作,比如在所有输入框输入特殊字符,或前端限制长度与数据库字段长度不一致;边界值测试要取刚刚小于、稍小于、等于、刚刚大于、稍大于边界值,示例给的是利率浮动比例值边界值 0;等价划分把有效和无效输入数据划成若干等价类;错误推测参照以往系统出错之处做同类验证,示例提到分页场景和金额四舍五入;因果图分析适合检查输入条件涉及的各种组合,示例是登录页面的验证码、身份证姓名密码校验。
这六种方法不是并列关系,实际写用例时是组合使用的。我的习惯是先等价划分定大类,再边界值补边缘,异常测试兜底非法输入,错误推测查历史缺陷库,因果图处理多条件组合,功能正确性测试保证主流程。指南没有强制顺序,但按这个顺序走,检查点不容易漏。
4.2 常见问题排查:五条踩坑记录
现象一:用例评审时被问“这个检查点对应哪条需求”,答不上来。原因:需求路径没建全,用例路径和需求路径脱节。解决:先补需求层级,用例路径严格按“需求路径加需求名称”拼,评审前用路径做一次覆盖比对。
现象二:执行时发现用例之间互相依赖,换个人换个顺序就挂。原因:前置条件里写了“先执行某某用例”。解决:把依赖数据改成前置条件里独立准备,指南明确要求用例之间不允许相互依赖,这条没有例外。
现象三:操作步骤里混进了检查动作,执行人不知道到底该操作还是该判断。原因:写用例时顺手把验证写进了步骤。解决:步骤只写入口、输入、按钮、任务和顺序,所有判断挪到预期结果,评审时逐条筛。
现象四:预期结果只写“提示错误”,执行时无法判断对错。原因:提示信息没写关键检查内容,后台数据存储没写具体表和字段。解决:按指南要求补齐页面显示、提示信息、后台数据存储、前后端一致性四要素,涉及后台的必须写清数据表和关键字段取值变化。
现象五:生产出了泄漏问题,回头查用例发现压根没这个检查点。原因:系统设计分析这步跳过了,改动点的影响范围没分析。解决:把步骤三的输出强制纳入用例评审材料,关联性测试和回归检查点单独列一节。
5. 把指南变成团队资产:用例维护与覆盖验证的一个具体技巧
指南最后一节讲用例维护,触发条件四条:评审发现问题、系统新增功能或需求变更、测试过程发现遗漏、生产问题经分析为测试泄漏。这四条本身不复杂,难的是让团队真的在触发时去改。我试过一个笨办法但很管用:把四条触发条件做成用例库的四个标签,每次评审、每次需求变更、每次测试复盘、每次生产问题分析,都强制给相关用例打标签,月底统计标签数量。标签为零的月份,要么是真的风平浪静,要么是流程没走——多数时候是后者。
覆盖验证还有一个具体技巧:用需求路径和用例路径做集合运算。需求路径集合减去用例路径集合,差集就是没被任何用例覆盖的需求末级节点;用例路径集合减去需求路径集合,差集就是挂错位置或者需求已删除但用例还在的僵尸用例。这个运算用 Excel 的 COUNTIF 就能做,不需要额外工具。我一般会在每轮用例评审前跑一遍,差集非空就先补再评,省掉评审会上“这条需求谁覆盖的”这种低效追问。
还有一个容易被忽略的点:自动化用例和功能用例的匹配。指南明确要求同一个功能的自动化用例和功能用例应匹配,若自动化用例不能完全覆盖功能用例,则将功能用例和自动化用例拆分成多个互补用例集。实际操作中,我见过太多团队自动化用例单独维护一套、功能用例单独维护一套,两边各写各的,最后谁也不知道覆盖缺口在哪。互补用例集的做法是把两边当成一个整体来设计,功能用例负责手工可验证的检查点,自动化用例负责可脚本化的检查点,两边路径对齐、编号互引,覆盖缺口一目了然。
从那以后我每次带新项目,都会在用例库建好的第一周强制跑一遍路径差集运算,把需求覆盖缺口清零再开始写用例。这个习惯看起来多花半天,但省掉的是后期反复补用例和评审扯皮的时间。希望帮到你。
本文还有配套的精品资源,点击获取