3. 测试用例管理:从设计原则到用例库搭建

测试用例管理,说白了就是给测试工作建一套规矩。我见过太多项目,测试用例写得像天书,要么漏测,要么重复。今天咱们就把这块掰开揉碎了讲。

3.1 测试用例设计原则

设计用例不是拍脑袋。我习惯用两个经典方法打底——等价类和边界值。这两个方法配合使用,基本能覆盖90%的常见场景。

3.1.1 等价类划分法

等价类的核心思想很简单:把输入域分成若干类,每类里取一个代表值测试。如果这个代表值通过了,那整类都应该通过。

举个例子,一个温度采集模块,要求输入范围是 -40°C 到 85°C。我们可以这样划分:

等价类 范围 代表值 预期结果
有效等价类 -40 ~ 85 0 正常采集
无效等价类(下限) < -40 -50 返回错误码
无效等价类(上限) > 85 100 返回错误码
我的经验: 等价类划分时,别忘了考虑空值、NULL、非法字符这些特殊类。我在一个CAN总线项目中,就因为没测空帧,导致现场丢包。

3.1.2 边界值分析法

为什么会单独强调边界值?因为软件出问题,十有八九在边界上。你想想看,程序员写 if (temp >= -40 && temp <= 85) 这种条件时,最容易写错的就是等号。

边界值分析的原则是:取每个边界的两端值。还是温度的例子:

  • 下边界:-41, -40
  • 上边界:85, 86
  • 内点:0(可选)
// 一个典型的边界值测试用例
TestCase: TC_TEMP_001
Input: temp = -41
Expected: ERROR_OUT_OF_RANGE
Actual:  PASS  // 这里如果返回正常值,说明边界判断有bug
注意: 边界值不是只测整数边界。如果输入是浮点数,要考虑精度边界。我曾经遇到一个ADC采样模块,边界值在 3.14159 附近反复跳变,最后发现是浮点比较精度问题。

3.2 用例库搭建

用例设计好了,得有个地方管起来。我个人比较喜欢 TestLink 和 TestRail,各有千秋。

3.2.1 TestLink vs TestRail

特性 TestLink TestRail
开源/商业 开源免费 商业付费
安装部署 需PHP+MySQL,稍复杂 云服务或本地部署,简单
用例组织 测试计划-测试套件-用例 项目-里程碑-测试运行
报告能力 基础统计 丰富图表,可定制
API支持 有REST API 有REST API,更完善

选哪个?我的建议是:小团队、预算有限用 TestLink;大团队、需要快速出报告用 TestRail。我在上一家公司,团队20人,用的 TestLink 自己搭,够用了。

3.2.2 用例库搭建步骤

不管用哪个工具,搭建思路差不多:

  1. 创建项目结构:按产品线或模块分
  2. 定义用例模板:ID、标题、前置条件、步骤、预期结果
  3. 批量导入:用Excel或CSV导入历史用例
  4. 建立关联:用例关联需求、缺陷
  5. 设置权限:谁可以创建、修改、执行
避坑指南: 我曾经一次性导入2000条用例,结果格式不对,全乱了。后来学乖了,先导10条验证格式,再批量操作。

3.3 用例优先级与标签体系

用例多了,得排优先级。不然每次回归测试都跑全量,时间根本不够。

3.3.1 优先级定义

我习惯用P0-P3四级:

优先级 定义 执行频率 举例
P0 冒烟测试,核心功能 每次构建 系统启动、主界面显示
P1 主要功能,高频使用 每日回归 数据采集、通信正常
P2 次要功能,异常场景 每周回归 边界值、错误处理
P3 边缘场景,UI细节 每版本回归 界面布局、提示文字

3.3.2 标签体系

标签比优先级更灵活。我常用的标签分类:

  • 按模块:bootloader、driver、protocol、app
  • 按测试类型:smoke、regression、stress、security
  • 按平台:stm32、esp32、linux、rtos
  • 按阶段:unit、integration、system、acceptance

标签的好处是,你可以快速筛选出“所有STM32平台上的回归测试用例”,或者“所有与CAN通信相关的压力测试用例”。

我的习惯: 每个用例至少打3个标签。比如一个用例可以打上 "driver", "regression", "stm32"。这样组合查询时特别方便。

3.4 知识体系总览

下面这张图,把本章的核心内容串起来了。你可以把它当作测试用例管理的思维导图。

测试用例管理知识体系 测试用例管理 设计原则 等价类 边界值 用例库搭建 TestLink TestRail 优先级与标签 P0-P3 标签体系 核心:等价类 + 边界值 覆盖90%场景 P0-P3优先级 + 标签体系 实现精准回归

嗯,到这里,测试用例管理这块的核心内容就讲完了。记住:设计原则是根基,用例库是载体,优先级和标签是效率工具。三者缺一不可。