欢迎光临
我们一直在努力

软件测试实战:从零开始掌握测试用例设计

📌测试到底做什么?

你可能会问自己一个问题:测试工程师到底每天在做什么?

这不是一个简单的问题。很多人对测试的理解停留在“点点点、找找Bug”。但实际上,一个专业的测试工程师有着清晰的工作流程和方法论。

简单来说,软件测试的六大核心工作内容是:

序号工作内容核心问题产出物
1 掌握需求 要测什么? 需求理解文档
2 测试计划 怎么安排时间? 测试计划Excel
3 测试用例 具体怎么测? 测试用例文档
4 测试执行 实际去测! Bug记录
5 测试报告 测完了怎么说? 测试报告
6 回归测试 改完之后确认没坏? 回归通过确认

本文定位:今天是入职系列的第一篇,我们将学习前三步——掌握需求、测试计划、测试用例编写。重点掌握测试用例的设计方法,特别是边界值和等价类这两个最基础也最重要的技巧。

📌 核心结论:测试不是随便点点,而是有方法、有流程、有产出的专业工作。掌握这些基本功,你就迈出了成为专业测试工程师的第一步。

一、掌握需求(要测什么?)

1.1 新人入职会收到什么?

当你第一天坐在工位上,测试负责人(通常是测试组长)会给你两样东西:

第一样:系统需求说明书

这是一份文档,通常包含:

  • 系统功能描述:这个系统是干什么的?有哪些功能?

  • 原型图:每个页面的样子,按钮在哪里,点击后会怎样

  • 业务规则:什么条件下做什么操作,应该有什么结果

为什么需要这个文档?

你需要先知道“什么是对的”,才能判断“什么是错的”。系统需求说明书就是告诉你“正确的行为应该是什么”。如果你连正确的标准都不知道,就没法判断程序有没有问题。

第二样:Bug管理工具的地址和账户

常用的Bug管理工具有:JIRA、禅道、Tapd等。

Bug管理工具的作用:

  • 记录你发现的所有问题

  • 告诉开发人员“哪里出问题了”

  • 跟踪开发人员有没有修复

  • 你验证修复后关闭Bug

1.2 如何阅读需求文档?

拿到需求文档后,不要急着上手测。先做三件事:

第一步:通读全文,建立整体认知

把整个需求文档从头到尾看一遍,了解:

  • 这个系统是做什么的?(例如:一个电商网站、一个后台管理系统、一个App)

  • 有哪些主要功能模块?(例如:登录注册、商品浏览、购物车、订单支付)

  • 用户的典型使用流程是什么?(例如:打开App→登录→搜索商品→加入购物车→下单→支付)

第二步:逐条理解,找出疑问

逐条阅读需求描述,标出你不太理解的地方。比如:

  • “优惠券可以叠加使用”——最多能叠加几张?

  • “密码强度要求中等”——什么叫中等?具体是什么规则?

第三步:向产品经理或测试负责人确认

不懂就问,不要猜测。需求上的歧义是导致Bug的重要原因之一。提前澄清,比上线后发现要好得多。

✅ 掌握需求的验收标准:

  • 能说出系统的主要功能和核心流程

  • 清楚各功能模块的边界和约束条件

  • 所有疑问已向产品经理确认

二、测试计划(怎么安排时间?)

2.1 什么是测试计划?

掌握需求之后,你需要回答下一个问题:这么多功能,按什么顺序测?每个人测什么?每项任务要花多长时间?

这就是测试计划要解决的事情。

测试计划的核心是一份排期Excel表格,通常由测试负责人制定,然后分配给组员执行。

2.2 测试计划Excel的核心内容

一份标准的测试计划Excel包含以下列:

列名说明示例
模块 功能模块名称 用户管理
子模块 具体功能点 用户注册
任务描述 需要做什么 编写注册功能测试用例
负责人 谁来做 张三
计划开始时间 预计哪天开始 2026-06-03
计划结束时间 预计哪天完成 2026-06-05
实际开始时间 实际哪天开始的 2026-06-03
实际结束时间 实际哪天完成的 2026-06-04
状态 进行中/已完成/延期 已完成

2.3 测试计划的两个作用

作用一:明确任务分工

告诉每个人:你负责哪个模块,什么时候开始,什么时候要完成。避免多人同时测同一个功能造成资源浪费,或者某个功能没人测被遗漏。

作用二:跟踪项目进度

测试负责人可以通过这个表格了解整体进度:哪些模块已完成,哪些模块有延期风险,是否需要协调资源。

💡 新人须知:作为新入职的测试工程师,你通常是“任务的执行者”而不是“计划的制定者”。测试负责人会把分配好的任务告诉你,你按照计划完成即可。但了解测试计划的结构和目的,能帮你更好地理解整个测试工作的节奏。

三、测试用例(具体怎么测?)

3.1 什么是测试用例?

测试负责人把任务分配给你之后,你拿到了一个具体的功能模块(比如“用户注册”)。现在问题来了:这个功能怎么测?

测试用例就是回答这个问题的文档。

测试用例的定义:一组输入数据、操作步骤和预期结果的集合,用于验证某个功能是否按需求正确实现。

一个标准测试用例包含的要素:

要素说明示例
用例编号 唯一标识,方便管理 TC_REG_001
测试标题 一句话说明测什么 验证正确用户名和密码可注册
前置条件 测试前需要准备好的状态 用户名未被注册,网络正常
测试步骤 一步步的操作指令 1.打开注册页 2.输入用户名 3.输入密码 4.点击注册
测试数据 具体输入的值 用户名:test01,密码:123456
预期结果 期望看到的现象 注册成功,跳转到登录页
实际结果 执行后看到的现象(执行时填写) 与预期一致
状态 通过/失败/阻塞 通过

3.2 测试用例的灵魂:等价类划分法

什么是等价类?

你有没有想过:一个用户名输入框,有无数种可能的输入——abcd、Abcd123、12345abcd……你不可能把所有可能的值都测一遍,那样要测到天荒地老。

等价类的核心思想:把无限多的输入,划分成有限的几个“等价类”。每个等价类里的输入,应该产生相同的行为结果。你只需要从每个等价类中选一个代表来测试就够了。

等价类的两种类型:

类型定义示例(用户名要求4-16位字母数字)
有效等价类 符合要求,应该被接受 test01(正常用户名)
无效等价类 不符合要求,应该被拒绝 长度<4:abc、长度>16:abc…太长、含非法字符:test@01

实例演示:测试用户名输入框

假设需求:用户名必须是4-16位字母数字,只能包含字母和数字。

等价类类型具体分类测试数据预期结果
有效等价类 正常合法用户名 test01 通过校验
无效等价类 长度小于4位 ab 提示“用户名长度需4-16位”
无效等价类 长度大于16位 abcdefghijklmnopq 提示“用户名长度需4-16位”
无效等价类 包含非法字符 test@01 提示“只能包含字母数字”
无效等价类 全数字 123456 根据需求(如果需要字母则报错)
无效等价类 全字母 abcdef 根据需求

✅ 等价类的设计步骤:

  • 找出输入条件(如用户名长度、字符类型)

  • 为每个条件划分有效等价类和无效等价类

  • 为每个等价类编号

  • 每个等价类至少设计一个测试用例

  • 3.3 测试用例的利器:边界值分析法

    什么是边界值?

    大量实践证明:程序最容易在边界值上出问题。比如要求“4-16位”,那么4位和16位这两个边界点,以及3位和17位这两个边界附近的点,是最容易出错的地方。

    边界值的五种类型:

    边界点类型说明示例(要求4-16位)
    略小于最小值 min-1 3位
    最小值 min 4位
    正常值 中间任意值 8位
    最大值 max 16位
    略大于最大值 max+1 17位

    为什么不只测边界点,还要测“略小于”和“略大于”?

    因为开发人员在写判断条件时,容易犯边界错误。

    比如有人写成:

    如果不测3位和17位,可能发现不了这个边界错误。

    3.4 完整示例:注册功能测试用例

    需求描述:

    • 用户名:4-16位字母数字组合

    • 密码:6-12位任意字符

    • 两次输入的密码必须一致

    • 用户名不能重复

    测试用例设计:

    用例编号测试点等价类/边界用户名密码确认密码预期结果
    TC_001 正常注册 有效等价类 test01 123456 123456 注册成功
    TC_002 用户名3位 边界(min-1) te 123456 123456 提示用户名长度错误
    TC_003 用户名4位 边界(min) test 123456 123456 注册成功
    TC_004 用户名16位 边界(max) test012345678901 123456 123456 注册成功
    TC_005 用户名17位 边界(max+1) test0123456789012 123456 123456 提示用户名长度错误
    TC_006 用户名含特殊字符 无效等价类 test@01 123456 123456 提示只能包含字母数字
    TC_007 密码5位 边界(min-1) test01 12345 12345 提示密码长度错误
    TC_008 密码6位 边界(min) test01 123456 123456 注册成功
    TC_009 密码12位 边界(max) test01 123456789012 123456789012 注册成功
    TC_010 密码13位 边界(max+1) test01 1234567890123 1234567890123 提示密码长度错误
    TC_011 两次密码不一致 无效等价类 test01 123456 123457 提示两次密码不一致
    TC_012 用户名已存在 无效等价类 test01 123456 123456 提示用户名已被注册

    ⚠️ 编写测试用例的注意事项:

    常见错误正确做法
    步骤不清晰,别人看不懂 按顺序写清楚每一步操作
    预期结果模糊(如“应该正常”) 写具体可验证的结果(如“跳转到首页”)
    用例之间相互依赖 每个用例应该是独立的,不依赖其他用例的执行结果
    只写正向用例,忽略异常 正向和异常的比例建议1:1或1:2

    四、测试用例的执行与管理

    4.1 测试用例的存放位置

    测试用例通常存放在以下地方:

    存放方式适用场景优点
    Excel文档 小型项目、新人练习 简单直观
    测试管理平台 企业级项目(如禅道、TestLink) 便于协作、版本管理
    代码仓库 自动化测试项目 与代码统一管理

    4.2 发现Bug后如何记录?

    当你执行测试用例时发现实际结果与预期结果不符,说明你发现了Bug。需要在Bug管理工具中记录。

    一个标准的Bug记录包含:

    字段说明示例
    标题 一句话概括问题 【注册】用户名4位时注册失败
    严重程度 问题有多严重 严重/一般/轻微
    优先级 多紧急修复 高/中/低
    所属模块 哪个功能模块 用户管理-注册
    环境信息 测试环境 Windows Chrome版本120
    前置条件 怎么达到这个状态 用户名test01未被注册
    复现步骤 一步步操作 1.打开注册页 2.输入test01 3.输入密码 4.点击注册
    预期结果 应该怎样 注册成功
    实际结果 实际怎样 提示“用户名长度需4-16位”
    截图 证据 附上截图

    4.3 Bug的生命周期

    状态含义
    新建 刚发现,还没确认
    已确认 开发确认是Bug
    已修复 开发改完了
    已关闭 你验证修复成功了
    驳回 开发认为不是Bug(需求未定义/重复/用户错误)
    重新打开 验证后发现没修好,重新激活

    📌 本章核心要点总结

    软件测试前三步流程

    等价类划分要点

    要点说明
    有效等价类 符合要求的数据,应该通过
    无效等价类 不符合要求的数据,应该被拒绝
    每个等价类至少1个用例 用代表代替全集

    边界值分析要点

    要点说明
    必测5个点 min-1、min、正常值、max、max+1
    原因 程序员的边界判断容易出错
    与等价类配合 等价类负责“范围”,边界值负责“边界点”

    测试用例编写检查清单

    • 用例编号唯一,便于追溯

    • 测试标题清晰,一看就懂

    • 前置条件完整,别人能复现

    • 测试步骤按顺序写清楚

    • 测试数据具体明确

    • 预期结果可验证

    • 覆盖了等价类和边界值

    今天是软件测试入职系列的第一篇。我们学习了软件测试六大工作内容中的前三步:

  • 掌握需求:读懂需求文档,知道什么是对的

  • 测试计划:明确任务分工和时间安排

  • 测试用例:把“怎么测”写成文档

  • 其中,测试用例编写是本篇的重点。等价类帮你用最少的用例覆盖最多的场景,边界值帮你抓住最容易出错的边界点。这两个方法是测试工程师的基本功,是每一份测试用例都必须用到的技巧。

    赞(0)
    未经允许不得转载:171主机测评 » 软件测试实战:从零开始掌握测试用例设计
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址