简介:这份《测试用例编写指南》面向测试人员与技术管理团队成员,针对用例编写凭惯性思考、颗粒度与详细程度不一、可读性差等常见问题,提供一套可循可依的规范框架,帮助统一编写标准、弥补知识空缺,进而提升测试设计水平与系统投产质量。资源包共1个docx文件,约494KB,内容按目的、适用范围、测试设计依据、编写步骤、编写要素、划分原则、编写要求、测试类型、设计方法、用例维护及风险建议等章节组织,完整覆盖需求分析、业务流程分析、系统设计分析、用例编写与完善五个步骤,并详解标题、前置条件、操作步骤、预期结果等要素,以及等价类划分、边界值分析、状态迁移等设计方法。目前已有553人学习下载,适合需要规范用例模板、梳理设计思路与查漏补缺的测试从业者参考。
1. 一份被当成“模板”的文档,其实是一套测试设计流水线
很多团队把测试用例写成什么样,全看写的人当天状态:有人三行搞定,有人写满两屏,评审时谁也说服不了谁。这份《测试用例编写指南》解决的正是这个老问题——它不是给你一个空模板让你填,而是把“需求分析→业务流程分析→系统设计分析→用例编写→用例完善”五个步骤串成一条可复用的设计流水线,再配上需求划分、用例划分、编写要求、设计方法四层约束。适用对象写得很明确:技术管理团队成员,也就是要拿它去统一团队口径的人。如果你正被“用例颗粒度不一、评审靠吵架、生产漏测复盘找不到根因”折腾,这份文档值得逐节拆开看,它把“用例编写注意点”从口头经验变成了可检查的条目。
2. 五步设计流水线:从需求到检查点怎么落
2.1 需求分析不是抄需求,是拆检查点
指南把第一步的输入定为业务需求说明书,处理动作是“按流程或功能分类”,输出是“整理成测试需求,将每一个需求细节列出,作为检查点”。这句话的关键词是检查点——需求条目本身不是检查点,一条需求往往要拆出多个可验证的细节。常见做法是拿需求文档逐段过,每遇到一个“系统应……”“支持……”“当……时”就停下来问一句:这句话要验证什么?验证它需要看前端、看接口还是看库表?把答案写成一行检查点描述,挂到末级需求下。
这里有个容易翻车的地方:很多人把需求原文复制成需求描述就交差,结果用例写出来全是“功能正常”这种无法执行的预期。指南在划分原则里补了一刀——需求描述应把所有针对末级需求的检查点一一列出,检查点多了就把末级需求继续细分。也就是说,需求分析的产出质量直接决定后面用例的颗粒度,这一步偷懒,后面全歪。
2.2 业务流程分析补的是需求文档的盲区
第二步的输入是业务背景知识和被测系统的业务流程,输出是“业务需求未提及、但需要覆盖验证的检查点”。这一步最容易被跳过,因为需求文档通常只写正常路径,不写备选流程和数据流向。指南要求整理主流程、备选流程、数据流向、关键判断条件,以及完成该操作的(非)必要条件。
举个具体场景:某审批流程需求只写了“经办提交后进入复核”,但实际业务里复核可能拒绝、可能退回、可能超时自动流转,这些分支需求文档未必写全。业务流程分析就是把这些分支补进测试需求。我一般会画一张流程草图(纸上画就行,不进文档),在每个判断节点旁标注“这个条件为假时系统怎么走”,标不出来的就是待确认项,先找开发或业务对齐再写用例,避免用例写完才发现理解错了。
2.3 系统设计分析决定回归范围
第三步输入系统设计、接口设计、数据库设计文档,处理动作是“针对系统为实现业务需求所做的主要改动点及影响范围进行全面分析”,输出是把改动功能支持的所有逻辑和影响范围的回归测试加入检查点。这一步对应的是关联性测试和回归测试的边界划定。
实操上,我会拿变更清单对照三份文档:接口文档看入参出参有没有变、数据库设计看表结构和字段有没有动、概要设计看有没有新增的调用关系。凡是调用链上游或下游被波及的功能,哪怕本次没改代码,也要进回归检查点。指南没有给具体的分析模板,但“主要改动点+影响范围”这个提法已经够用——改动点是确定的,影响范围靠调用关系推,推不出来的地方就是风险点,写进第 11 节的风险清单里。
2.4 用例编写阶段的分支覆盖要求
第四步输入测试需求,输出用例,要求“尽量覆盖生产上的所有业务流程场景和系统逻辑分支,除了正向测试以外,加强对边界、异常等情况的关注”,用例类型要覆盖功能正确性、边界、异常、接口、信息安全等。这一步和后面的设计方法章节是配套的:等价类、边界值、错误推测这些方法在这里落地。
一个可抄的做法是按检查点逐条过,每条检查点至少问三个问题:正常输入下结果对不对?边界值附近结果对不对?非法输入下系统有没有合理提示且不写脏数据?三个问题对应正常、边界、异常三类用例。指南在编写要求里还补了一条硬约束:操作步骤中不能包含检查结果,预期结果中不能包含操作步骤。这条看似琐碎,实际是用例可执行性的底线——步骤和预期混在一起,执行的人分不清哪步是操作哪步是判断,自动化也没法解析。
2.5 用例完善触发条件写成清单
第五步列了四个必须更新维护的场景:评审发现问题、新增功能或需求变更、测试过程中发现设计遗漏、生产问题经分析为测试泄漏。这四条本质上是把“什么时候该回头改用例”从凭感觉变成按事件触发。其中第四条最值得重视——生产问题复盘时如果定性为测试泄漏,必须回到用例层补检查点,而不是只修 bug 了事。否则同一个设计盲区会在下个版本换个地方再漏一次。
3. 划分原则与编写要求:颗粒度和可执行性怎么卡
3.1 需求划分按测试对象分类走
指南第 6.1 节给了一张按测试对象分类的划分表,前端功能、流程类、后台功能、批处理、后台流程、数据埋点、兼容性各有对应的划分方式。核心逻辑是:一级需求到三级需求按“菜单目录→菜单名称→功能名称”或“流程名称→步骤名称”逐层拆,末级需求下挂检查点。
几个补充说明值得单独拎出来:同一功能不同入口可合并编写一个需求;一个功能的正常流程对应一个检查点;一个功能含多个正常场景或异常流程应分别列出多个检查点;同一功能需要多份不同数据时原则上分别列检查点,但如果一次操作要同时处理多份数据,可以列一个组合检查点。这几条解决的是“拆太细维护成本高、拆太粗漏测”的两难,判断标准是检查点能不能被一条用例独立验证。
3.2 用例划分的合并与拆分边界
第 6.2 节按测试对象给了用例划分方式,大部分场景是“一个测试需求检查点对应一条用例”,但留了几个合并口子:后台功能的入参有效性检查、同一检查点对应多种操作步骤时可以合并成一条用例,用例里详细列出所有操作步骤。反过来,自动化用例和功能用例要匹配,自动化覆盖不全时拆成互补用例集。
这里有个实操判断:合并的前提是这些操作共享同一组前置条件和同一类预期结果,合并后执行的人不会混淆判断。比如登录接口的入参有效性校验,空值、超长、特殊字符可以合成一条,预期结果按编号一一对应;但如果某个入参校验失败后系统会锁定账户,那它就有独立的前置和后续影响,必须拆出来。
3.3 编写要求里的硬约束逐条过
第 7 节的编写要求是整份指南最可直接落地检查的部分,挑几条最常被违反的说:
测试名称要简洁到能直接识别测试对象和检查点,不包含操作步骤和逻辑,示例给的是“放款失败-合同冻结”这种格式。前置条件必须完整列出特殊权限、数据准备和前置操作,且用例之间不允许相互依赖——把别的用例当自己的前置条件,执行顺序一变就全乱。操作步骤要写清入口、输入要素、按钮、任务和顺序,步骤与预期结果的分支对应关系用相同编号反映,原则上不允许一对多。预期结果要完整列出检查点,前端操作要包含页面显示、提示信息、后台数据存储、前后端一致性检查,涉及后台数据变更的要明确具体数据表和关键字段取值变化,后台系统测试和信息安全相关的前端操作必须包含日志检查。
优先级分高、中、低三档:高对应基本功能和关键路径,中对应异常流程和异常输入,低对应界面显示和辅助功能。这个分档直接决定执行顺序,评审时如果发现全是“高”,说明分档没做,等于没分。
提示:操作步骤和预期结果的分支对应关系是评审高频争议点。指南给了一张对应关系示例表,覆盖一对一、多对一、多对多、一对多、多对多含多检查点等情形,其中“一对多”和“多个预期结果含多个检查点”明确标注不建议使用,应尽量按预期结果分支拆分。评审前先拿这张表自查一遍,能省一半扯皮时间。
4. 设计方法与测试类型:方法怎么选、类型怎么配
4.1 六类设计方法的适用场景
第 9 节列了功能正确性测试、异常测试、边界值测试、等价划分测试、错误推测、因果图分析六类方法。指南的定位是“供用例编写人员参考”,没有强制绑定场景,但正文里的括号示例已经把适用面点出来了:
功能正确性测试用实际数据验证需求规格,是用例集的底座,至少覆盖需求说明书里的各项功能正常实现。异常测试模拟不了解产品的客户执行任意操作,典型场景是输入框填特殊字符、前端限制长度与数据库字段长度不一致。边界值测试集中在边界附近取合法和非法数据,示例给的是利率浮动比例边界值 0。等价划分把有效和无效输入划成等价类。错误推测靠经验和历史缺陷做同类验证,示例是分页场景和金额四舍五入。因果图分析处理输入条件组合,示例是登录页面的验证码、身份证姓名密码校验组合。
选方法的顺序我一般是这样:先用等价划分把输入域切块,再用边界值在每块边界补点,然后用异常测试覆盖非法输入,最后用错误推测查历史缺陷的同类位置。因果图只在输入条件有明显组合约束时用,否则组合爆炸,写出来的用例没人执行。
4.2 测试类型的覆盖清单
第 8 节列了十二类测试类型:功能测试、接口间测试、信息安全测试、关联性测试、回归测试、数据库测试、压力测试、操作友好性测试、效率测试、兼容性测试、数据移植测试、安装测试。这份清单的价值在于提醒用例集不要只写功能测试——接口间测试关注模块间数据输入输出一致性,数据库测试关注表结构和调用关系,数据移植测试关注迁移前后数据量一致性和迁移后业务逻辑回归,这几类在迭代项目里最容易漏。
实操上,我会在用例集收尾时拿这份清单过一遍,逐类问“本次变更涉及这类测试吗”,涉及就确认有对应用例,不涉及就写一句不涉及的理由。这个动作花不了十分钟,但能挡住“上线后才发现迁移数据对不上”这类事故。
5. 避坑与排查:五条血泪经验
5.1 用例之间互相依赖,执行顺序一变全崩
现象:按顺序执行全过,打乱顺序或单独执行某条用例时失败。原因:把其他用例的执行结果当前置条件,比如“先执行登录用例再执行本用例”。解决:前置条件只写环境、权限、数据准备这类可独立构造的条件,需要的数据用脚本或手工提前造好,不依赖其他用例的副作用。指南明确写了用例之间不允许相互依赖,这条不是建议是红线。
5.2 预期结果只写“操作成功”,漏了库表和日志检查
现象:功能测试全绿,上线后对账不平或排查问题时没有日志可查。原因:预期结果只写了页面提示,没写后台数据存储和日志输出。解决:按指南要求,前端操作成功或失败都要包含页面显示、提示信息、后台数据存储、前后端一致性检查;涉及后台数据变更的明确到具体数据表和关键字段取值;后台系统测试和信息安全相关操作必须检查日志。写预期结果时把“看哪里”写全,执行的人才知道要查库表。
5.3 边界值只测了等于边界,没测刚刚小于和刚刚大于
现象:边界值用例写了,生产上还是在边界附近出问题。原因:只取了等于边界值的数据,没覆盖刚刚小于、稍小于、刚刚大于、稍大于。解决:按指南的边界值方法,在边界附近取一组合法和非法数据,集中覆盖。比如利率浮动比例边界值为 0,就要测 -0.01、0、0.01 这类邻近值,而不是只测 0。
5.4 需求描述复制原文,检查点没拆出来
现象:用例评审时被问“这条需求到底验证什么”答不上来,执行时凭感觉点。原因:需求分析阶段把需求原文当需求描述,没有拆成可验证的检查点。解决:回到第 5 节的要求,需求描述列举针对测试对象的检查点,检查点多了就细分末级需求。一个检查点应该能用一句话说清“验证什么条件下什么结果”,说不清就是没拆到位。
5.5 生产泄漏复盘只修 bug 不补用例
现象:同一个设计盲区在不同版本反复漏测。原因:生产问题定性为测试泄漏后,只修了代码,没回到用例层补检查点。解决:按第 4 节步骤五的触发条件,测试泄漏必须触发用例更新,把遗漏的检查点补进对应末级需求,并在评审时同步给团队。补用例这个动作比修 bug 更重要,bug 修一次,检查点补上能挡一类。
6. 把指南变成可检查的评审清单
这份文档最容易吃灰的用法是“读一遍觉得有道理,然后继续凭惯性写”。要让它真正起作用,得把里面的约束转成评审时能逐条打勾的清单。我的做法是抽三张表:第一张是需求层检查表,每行一个末级需求,列检查点数量、是否覆盖正常/异常/边界、是否标注关联影响范围;第二张是用例层检查表,每行一条用例,列名称是否含操作步骤、前置条件是否独立、步骤与预期分支编号是否对应、预期结果是否含库表和日志检查、优先级是否分档;第三张是类型覆盖表,拿第 8 节的十二类测试类型逐类打勾或写不涉及理由。
三张表过完,用例集的质量基本能兜住。更进一步的用法是把第 7 节的对应关系示例表直接当评审模板——那张表覆盖了一对一、多对一、多对多、不建议使用的一对多等情形,评审时对着表问“这条用例属于哪种对应关系”,答不上来的基本就是要拆或要补的。
还有一个验证方法值得试:挑一个迭代,让两个人独立按指南写同一批需求的用例,然后对比检查点数量和覆盖类型。差异大的地方就是指南理解不一致的地方,把这些差异点补进团队内部的补充说明里,指南才算真正落地成团队口径,而不是一份躺在共享盘里的 docx。
从那以后我每次带新人写用例,都强制先拿这份指南的五步流水线走一遍需求分析和业务流程分析,再动笔写用例——跳过前两步直接写,写出来的东西看着像用例,执行起来全是坑。希望帮到你。
本文还有配套的精品资源,点击获取