本文大纲

《我的敏捷软件项目管理实践》

编写测试用例-正方

第七章 如何做好测试 / 编写测试用例

输入与输出

输入:

  1. 脑图+功能清单
  2. 产品原型图
  3. 《需求规格说明书》或《产品需求文档》(PRD)
  4. 《概要设计文档》

过程活动:编写测试用例

参与者:测试工程师

输出:《测试用例文档》

干货

  1. 编写高质量的测试用例是确保软件质量和可靠性的关键步骤。通过“5种边界值”等测试思想编写测试使用,可以发现更隐蔽问题。
  2. 开发工程师都需要树立“交付合格代码”的理想信念,之前的“单元测试”保障了这一点。
  3. QA人员不是为了找出开发人员低级的bug,QA人员能够创造更大的价值,他们做探索性测试、创建测试自动化、与产品负责人紧密合作完善需求和验收条件。

1. 明确目标与范围

  • **目标:**测试用例的目标是验证系统功能是否符合需求,覆盖正常场景和异常场景,确保系统的稳定性、性能和安全性。
  • **范围:**根据需求文档和概要设计,确保理解所有功能和非功能需求,明确需要测试的功能模块和接口,避免遗漏或冗余。
  • **功能分解:**将大功能分解为多个小功能点,便于逐一测试。
  • 优先级排序:根据业务重要性和技术复杂度,确定各功能点的优先级。

2. 测试用例的设计原则

  • 明确性:每个测试用例应清晰、简洁,避免歧义。
  • 独立性:测试用例应相互独立,不依赖其他用例的执行结果。
  • 可重复性:在相同条件下,测试用例的执行结果应一致。
  • 高效性:覆盖核心功能和高风险区域,减少冗余。

3. 测试用例结构

一个完整的测试用例应包含以下要素:

要素 描述
用例编号 唯一标识符,便于管理和追踪(如:TC_001)。
用例标题 简洁描述测试内容,突出测试目标(如:“验证登录功能正常”)。
前置条件 执行测试前必须满足的条件(如:“用户已注册且未登录”)。
输入数据 测试时使用的具体输入值(如:“用户名=‘test’,密码=‘123456’”)。
操作步骤 详细的操作流程,确保测试过程可重复执行。
预期结果 测试通过的标准结果(如:“跳转至首页,显示欢迎信息”)。
实际结果 测试执行后的实际结果(用于记录,便于问题追踪)。
优先级 标明测试用例的重要程度(如:高、中、低)。

4. 测试的5种值

为了确保系统在各种情况下都能正常运行,测试用例应覆盖以下场景:

  • 正常值:验证系统在预期条件下的正常工作情况。
  • 空值:测试系统对空输入的处理能力(如:未填写必填字段)。
  • 最大值、最小值:测试边界条件,确保程序能处理极端值。
  • 边界值:测试最大值、最小值及其临界值(如:输入字符长度为1或最大限制)。
  • 错误值:验证系统对无效输入的响应(如:输入非法字符)。

5. 测试用例设计方法

采用科学的方法设计测试用例,可以提高覆盖率和效率:

  • 等价类划分:将输入数据划分为有效和无效等价类,减少冗余测试。
  • 边界值分析:重点测试边界条件,发现潜在问题。
  • 因果图法:分析输入与输出之间的因果关系,生成测试用例。
  • 状态转移法:适用于涉及状态变化的功能模块(如订单状态流转)。
  • 错误推测法:基于经验,推测可能存在的问题并设计针对性测试。

6. 测试用例评审与优化

  • 评审:组织团队成员(开发、测试、产品经理)对测试用例进行评审,确保其完整性和准确性。
  • 优化:根据评审反馈调整测试用例,删除冗余部分,补充遗漏场景。

7. 测试用例的管理

  • 使用工具(如TAPD、JIRA、TestLink)管理测试用例,方便跟踪执行情况。
  • 定期更新测试用例,以适应需求变更和系统迭代。

8. 示例:测试用例模板

image2025-3-15_0-9-17.png

需要模板的读者,请下载附件。

image2025-3-15_0-10-22.png