用例组织与结构:让测试用例不再是一盘散沙

说实话,我见过太多测试团队,用例写了一堆,但真正要用的时候,谁也找不到。就像把螺丝刀、扳手、电钻全扔在一个大箱子里,你要找个十字螺丝刀,得翻半天。

为什么会这样?

因为用例没有组织。没有层级,没有优先级,没有标签。说白了,就是没有结构。

今天我就跟你聊聊,怎么把用例组织得清清楚楚。这是我这些年踩坑踩出来的经验。

一、用例层级结构:模块-功能-用例

我个人习惯,把用例分成三层:模块 → 功能 → 用例。

你想想看,一个大型系统,可能有几十个模块。每个模块下面,又有几十个功能点。每个功能点,又对应着几条甚至几十条用例。

如果不分层,全平铺在一起,那画面太美我不敢看。

第一层:模块

模块就是系统的大功能块。比如一个电商系统,可以分成:

  • 用户模块
  • 商品模块
  • 订单模块
  • 支付模块
  • 物流模块

第二层:功能

每个模块下面,再拆成具体功能。比如「订单模块」下面:

  • 创建订单
  • 取消订单
  • 修改订单
  • 查询订单

第三层:用例

每个功能下面,才是具体的测试用例。比如「创建订单」功能:

  • 正常创建订单(商品库存充足)
  • 创建订单时库存不足
  • 创建订单时用户余额不足
  • 创建订单时商品已下架

关键点:模块和功能是「组织单元」,用例才是「执行单元」。别把用例直接挂在模块下面,那样太粗了。

我在项目中遇到过,有人把用例直接挂在模块下,结果一个模块下面挂了300条用例。找一条用例,得翻5页。后来我强制要求必须分三层,查找效率提升了一倍不止。

二、用例优先级定义:P0/P1/P2/P3

优先级这东西,说白了就是「先测什么,后测什么」。资源永远不够,时间永远紧张,你得学会取舍。

我一般用四级优先级:

优先级 定义 举例 执行策略
P0 核心功能,必须通过 登录、支付、下单 每次回归必跑,失败即阻塞发版
P1 重要功能,尽量通过 搜索、筛选、详情页 每次回归必跑,失败需评估影响
P2 一般功能,可接受小问题 个人中心、消息通知 按需执行,大版本回归时跑
P3 边缘功能,低优先级 帮助中心、意见反馈 有时间再跑,或仅冒烟

注意:P0用例不能太多。我曾经见过一个团队,把一半用例都标成P0。那跟没标有什么区别?P0应该控制在总用例的10%以内。

嗯,这里有个小技巧。我一般定优先级的时候,会问自己一个问题:「这个功能挂了,用户会不会骂娘?」如果会,那就是P0。如果只是皱皱眉,那就是P1。如果根本没人注意到,那就是P3。

三、用例标签与分类:给用例打上「身份证」

层级结构解决了「在哪找」的问题,优先级解决了「先测谁」的问题。但还有一个问题:「怎么筛选」。

比如,我只想看「和数据库相关的用例」,或者「和性能相关的用例」。这时候就需要标签了。

常见的标签分类

  • 按测试类型:功能测试、性能测试、安全测试、兼容性测试
  • 按测试阶段:冒烟测试、回归测试、验收测试
  • 按数据依赖:需要登录、需要管理员权限、需要特定数据
  • 按自动化状态:已自动化、待自动化、不适合自动化
  • 按业务领域:核心交易、用户增长、风控、运营

我的建议:标签不要超过10个。标签太多,等于没有标签。我见过有人给一条用例打了8个标签,那还不如不打。

标签的命名规范

我个人习惯用「前缀:值」的格式。比如:

  • type:functional
  • stage:smoke
  • auth:login_required
  • auto:yes

这样在筛选的时候,可以快速定位。比如我想找「所有需要登录的冒烟测试用例」,直接搜 stage:smoke AND auth:login_required 就行了。

四、知识体系总览

说了这么多,我画了一张图,帮你把整个知识体系串起来。你一看就明白了。

用例组织与结构知识体系 用例层级结构 模块 功能 用例 用例优先级定义 P0 P1 P2 P3 用例标签与分类 测试类型 测试阶段 三者结合:层级结构找位置 + 优先级定顺序 + 标签做筛选 实际应用示例 用例编号:TC-ORD-001 模块:订单模块 → 功能:创建订单 优先级:P0 标签:type:functional | stage:regression | auto:yes 描述:正常创建订单,验证订单状态、库存扣减、金额计算

你看,这三者其实是互补的。层级结构告诉你「在哪」,优先级告诉你「先测谁」,标签告诉你「怎么筛」。三者结合起来,你的用例库就是一个井井有条的图书馆,而不是一个乱糟糟的杂物间。

总结一下:

  • 模块-功能-用例三层结构,别偷懒
  • P0/P1/P2/P3四级优先级,P0别超过10%
  • 标签用「前缀:值」格式,控制在10个以内

我曾经在一个项目里,接手了一个3000条用例的烂摊子。没有层级,没有优先级,没有标签。我花了整整两周,重新梳理了一遍。从那以后,每次新项目开始,我都会先把用例结构定好。磨刀不误砍柴工,真的。

可可精品资料库