在这里插入图片描述

文章作者: 当战神遇到编程
文章专栏:测试理论和实践
欢迎大家点赞👍评论📝收藏⭐文章

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

一、软件测试生命周期

软件测试生命周期是贯穿软件全流程的测试步骤,核心是通过有序步骤保障产品质量,各阶段目标与交付物明确:

在这里插入图片描述

各阶段具体内容:

阶段核心工作关注点主要产出
需求分析分析需求是否合理、完整、可测试从用户、技术、测试三个角度判断需求是否存在问题需求评审意见、疑问点、风险点
测试计划制定测试安排明确测试开始时间、结束时间、测试周期、测试范围、测试资源测试计划
测试设计与开发编写测试用例和测试文档参考需求文档、技术文档,设计覆盖业务流程的测试场景测试用例、测试文档
测试执行按测试用例执行测试,发现并提交 BUG尽可能全面验证系统功能、流程、数据、页面和异常场景BUG 单、测试执行记录
测试评估判断本轮测试是否通过分析测试结果、遗留 BUG、风险点,判断是否满足上线条件测试报告
上线将项目发布到线上环境,并进行线上验证确认线上环境功能是否正常,是否存在环境差异问题上线验证结果
运行维护跟踪线上问题,收集用户反馈参与用户培训、试运行支持,及时反馈线上问题用户反馈记录、线上问题跟踪表

二、BUG相关内容

2.1 什么是BUG

BUG 指的是计算机程序中的错误、缺陷、疏忽或故障,这些问题会导致程序无法按照预期正常运行。

更准确地说,可以从两个角度判断 BUG:

1.与规格说明不一致

如果需求规格说明书存在且正确,而程序实现与规格说明不一致,那么这就是 BUG。

例如:

需求要求手机号不能为空,但系统允许用户空手机号提交。

2.不符合用户合理预期

如果需求文档没有明确说明某个功能,但最终用户有合理预期,而程序没有满足,也可以视为软件错误。

例如:

用户点击“保存”按钮后,页面没有任何提示,用户不知道是否保存成功。

2.2 BUG的描述

假设发现某网站登录页二维码被遮挡,可以这样描述:

BUG 标题

登录页二维码被登录模块遮挡,导致扫码失败

问题版本

Chrome 浏览器 123.0.6312.123,64 位

问题环境

Windows 11 家庭中文版

复现步骤

  • 打开 Chrome 浏览器
  • 输入网址并进入首页
  • 等待页面渲染完成
  • 查看登录区域二维码展示效果

预期结果

二维码与登录模块不应发生遮挡,二维码可以正常扫描。

实际结果

二维码被登录模块遮挡,导致无法正常扫码。

2.3 BUG 级别的分类与判断标准

级别关键词判断标准
崩溃用不了系统或核心功能完全不可用
严重影响主流程核心功能异常、数据错误、安全或稳定性问题
一般有缺陷但能用功能不完善,但不影响整体使用
次要体验问题页面、提示、排版、性能优化类问题

2.4 BUG的生命周期

测试人员发现 BUG 后,先提交为 New 状态;
确认是 BUG 后,状态变为 Open,并指派开发处理;
如果开发修复完成,则变为 Fixed;
测试人员进行回归验证,验证通过后关闭为 Closed;
如果验证不通过,则 Reopen,重新交给开发修复;
如果确认不是 BUG,则 Rejected,最终关闭;
如果暂时不修复,则 Delay,后续再重新评估是否修复。

在这里插入图片描述

三、测试与开发的争执处理方法

测试过程中与开发的争执(如开发认为 “不是 bug”“级别太高” 等),可通过以下步骤理性解决:

  • 自查 BUG 描述:确保 BUG 信息(版本、环境、步骤等)完整清晰;若表述模糊,需主动向开发解释说明,避免信息偏差。
  • 站在用户角度沟通:向开发强调 BUG 对用户的影响(如 “如果你是用户,能否接受这个问题?”),推动开发重视修复。
  • BUG 定级有理有据:定级需结合 BUG 级别标准 + 用户视角,说明其对业务流程的实际影响,而非仅依赖测试内部标准。
  • 提升技术与业务能力:不仅提出问题,还可给出解决方案(如建议的修改思路),建立专业权威;但需避免强制开发按自己的方案修改。

四、BUG 评审的流程与角色职责

若友好沟通无法解决争执,需召开 BUG 评审,核心目标是确定 BUG 处理方案 + 分析原因并预防,参与角色及职责如下:

角色关注点
测试代表BUG 表现、严重程度、复现方式、处理建议
开发代表修改难度、影响范围、技术风险、修复方案
产品代表用户价值、版本计划、是否必须当前版本修复

五、测试用例

5.1 什么是测试用例?

测试用例是为了实施测试,向被测系统提供的一组信息集合。

通常包括:

要素说明
用例编号测试用例的唯一标识,便于管理和追踪
用例标题简要描述测试目标或验证点
测试方式执行测试的类型,如功能测试、接口测试、兼容性测试等
测试模块用例所属的功能模块或业务模块
重要性用例的优先级或重要程度,如高、中、低
测试前提执行该用例前必须满足的条件
测试环境执行测试所需的系统、浏览器、设备、版本等环境信息
测试数据执行测试时需要使用的输入数据或准备数据
测试步骤具体的操作流程,需清晰、可执行
预期结果系统应返回或展示的正确结果

5.2 为什么需要测试用例?

不写测试用例也可以测试,但会带来很多问题:

  • 覆盖范围不清楚(不知道功能是否已经测全)。
  • 测试过程不可复现(其他人很难按照同样步骤重新测试)。
  • 回归测试成本高(新版本发布后,无法快速确认旧功能是否仍然正常)。
  • 容易重复测试或遗漏测试(测试效率低,风险也高)。
  • 问题责任难以界定(出现线上问题时,无法准确说明当时是否覆盖过相关场景)。

所以,测试用例的价值不只是“写文档”,而是让测试工作变得可规划、可执行、可衡量、可追踪

5.3 测试用例设计的万能公式

功能测试 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试

测试维度核心关注点设计测试点时怎么想常见测试用例示例
功能测试功能是否符合需求正常流程能否完成;异常输入是否拦截;业务规则是否正确正确输入账号密码能登录;密码错误提示失败;必填项为空提示错误;重复注册提示账号已存在
界面测试页面展示是否正确页面元素是否完整;布局是否合理;文案是否准确;控件是否可操作按钮、输入框、提示语是否显示正确;页面是否错位;错误提示是否清晰
性能测试系统处理能力是否满足要求响应时间是否可接受;高并发是否稳定;大数据量是否卡顿登录接口 2 秒内响应;多人同时访问不崩溃;大文件上传时系统不卡死
兼容性测试不同环境下是否正常运行浏览器、操作系统、设备、分辨率、版本是否兼容Chrome、Edge、Firefox 是否正常;Android/iOS 是否可用;不同屏幕下页面是否适配
易用性测试用户是否容易理解和操作操作流程是否简单;提示是否友好;新用户是否容易上手注册流程是否清晰;错误提示是否能指导用户修改;按钮位置是否明显
安全测试是否存在安全风险敏感信息是否保护;权限是否正确;输入是否有安全校验密码是否密文显示;是否防止 SQL 注入;普通用户不能访问管理员功能;登录失败是否有限制

5.4 常用测试用例设计方法

5.4.1 基于需求设计法

这是最基础、最常用的方法。

步骤如下:

  1. 阅读需求文档。
  2. 提取功能点。
  3. 分析每个功能点的输入、处理逻辑和输出。
  4. 结合测试类型设计测试点。
  5. 编写测试用例。

例如注册功能,可以先提取:

功能点测试方向
账号注册正常注册、重复注册、必填校验
账号登录正常登录、密码错误、账号不存在
验证码正确验证码、错误验证码、验证码过期
协议勾选未勾选协议是否禁止注册

5.4.2 等价类划分法

当输入范围很大,无法穷举测试时,可以使用等价类。

把输入数据划分为若干类,每类选择一个代表值测试。

例如需求:姓名长度为 6 ~ 15 位

类型数据预期
有效等价类8 位字符通过
无效等价类3 位字符不通过
无效等价类20 位字符不通过
无效等价类不通过

等价类可以减少用例数量,但它主要关注输入分类,不能充分覆盖边界问题。

5.4.3 边界值分析法

很多缺陷都出现在边界附近,所以边界值是测试重点。

仍以姓名长度 6 ~ 15 位 为例:

测试数据类型预期
5 位无效边界不通过
6 位有效边界通过
7 位有效范围内通过
14 位有效范围内通过
15 位有效边界通过
16 位无效边界不通过

边界值通常和等价类一起使用。

5.4.4 正交法

当多个输入条件组合较多时,直接排列组合会导致用例爆炸。

例如注册功能有 5 个输入项:

  • 姓名
  • 邮箱
  • 密码
  • 确认密码
  • 验证码

每个字段都有“填写 / 不填写”两种状态,完整组合是:

2⁵ = 32 条用例

1.正交法的目标是:

用较少的用例覆盖主要组合关系,尤其是两两组合。

2.正交法的基础概念

概念含义示例
因素影响测试结果的条件或输入项姓名、邮箱、密码、验证码
水平每个因素的取值状态填写、不填写
正交表用来生成代表性组合的表格L
行数正交表中测试用例的数量4 行表示 4 条用例
列数可以安排的因素数量5 列可放 5 个输入项

正交表结构:以L₄(2³)为例:

  • L:代表正交表;
  • 4:4 行(需执行 4 次用例);
  • 3:3 列(最多安排 3 个因素);
  • 2:因素的水平数(每个因素有 2 个可选值)。

在这里插入图片描述
正交表性质

  • 每列不同数字出现次数相等;
  • 任意两列的数字排列方式齐全且均衡。

3.正交法设计用例的步骤

(1) 打开excel,填写因素和水平(无需保存文件)

在这里插入图片描述

(2) 用工具生成正交表: 以allpairs工具为例:

  • 步骤 1:填写的内容复制粘贴到txt文件中保存,存放在pairs文件夹下
  • 步骤 2:执行命令allpairs.exe [输入文件]>[输出文件]生成正交表。

在这里插入图片描述
在这里插入图片描述

如果使用命令在执行过程中有输出信息,说明test.txt文件格式有问题,需要重新写txt文件

在这里插入图片描述
使用allpairs工具生成的正交表和实际的正交表有出入,不影响用例的设计。

(3) 编写测试用例: 基于生成的正交表,转化为具体用例。
在这里插入图片描述

(4) 补充遗漏用例: 补充正交表未覆盖的重要场景。
在这里插入图片描述

5.4.5 判定表法

当多个条件组合会产生不同结果时,适合使用判定表法。

例如需求:

用户账号包含 admin,或者通过内部注册链接进入注册页,并点击注册按钮,则成为管理员;否则不是管理员。

1.判定表法的设计步骤

  • 确认输入条件与输出条件: 明确需求中的触发条件(输入)和对应的结果(输出);
  • 梳理条件与结果的关系: 分析不同输入组合对应的输出;
  • 绘制判定表: 用表格形式呈现 “输入条件组合→输出结果” 的对应关系;
  • 编写测试用例: 基于判定表转化为具体的测试场景。

2.实操案例(注册管理员身份的需求)

(1) 条件与结果定义

  • 输入条件: 账号包含admin字符(a)、内部注册链接(b)、点击注册按钮(c);
  • 输出条件: 管理员身份(1)、非管理员身份(2)。

(2) 找出输⼊条件和输出条件之间的关系
在这里插入图片描述

(3) 判定表(输入组合→输出结果)
在这里插入图片描述
(4) 根据判定表编写测试⽤例
a. 账号包含admin,⾮内部注册链接,点击注册按钮,为管理员⾝份
b. 账号包含admin,内部注册链接,不点击注册按钮,⾮管理员⾝份
c. 账号不包含admin,内部注册链接,点击注册按钮,为管理员⾝份
d. 账号包含admin,内部注册链接,点击注册按钮,为管理员⾝份
e. 账号包含admin,⾮内部注册链接,不点击注册按钮,⾮管理员⾝份
f. 账号不包含admin,⾮内部注册链接,点击注册按钮,⾮管理员⾝份
g. 账号不包含admin,⾮内部注册链接,不点击注册按钮,⾮管理员⾝份

判定表法的优势是能无遗漏地覆盖复杂逻辑的所有分支,适用于 “条件组合影响结果” 的场景(如权限控制、流程判定等)。

5.4.6 场景法

场景法关注的是完整业务流程。

它通常包含:

类型说明
基本流用户按正常流程完成操作
备选流中途出现其他合理分支

在这里插入图片描述
1.场景法的设计步骤

  1. 确定基本流
  2. 确定备选流
  3. 根据备选流补充测试⽤例
  4. 编写测试用例

以邮箱注册为例:

(1) 确定基本流和备用流

在这里插入图片描述

(2) 编写测试用例

  1. 输入正确账号密码→点击注册→收邮件并 24H 内确认→注册成功;
  2. 不输入账号密码→点击注册→提示重新输入;
  3. 只输入账号(不输密码)→点击注册→提示重新输入;
  4. 输入已注册账号→点击注册→提示账号已存在;
  5. 点击注册后邮件发送失败→系统提示重试;
  6. 24H 内未确认邮件→注册流程失效。

5.4.7 错误猜测法

错误猜测法依赖测试人员经验,推测系统可能出错的位置。

例如注册功能:

猜测点测试方向
特殊字符姓名中输入空格、emoji、特殊符号
大小写问题密码是否区分大小写
明文风险密码是否明文传输或展示
重复提交多次点击注册按钮是否重复创建账号
输入粘贴是否允许复制粘贴特殊格式内容

错误猜测法不够系统,但在实际项目中很有价值,尤其适合补充隐藏缺陷。

5.5 总结

测试用例设计不是简单罗列操作步骤,而是一种系统化分析能力。

可以记住这条主线:

先理解需求,再拆功能点;先覆盖正常流程,再覆盖异常流程;先用通用测试维度扩展,再用具体方法细化。

常见方法可以这样选:

方法适用场景
基于需求设计所有测试的基础
等价类输入范围大,无法穷举
边界值有长度、数量、范围限制
正交法多参数组合过多
判定表法多条件决定不同结果
场景法完整业务流程
错误猜测法基于经验补充潜在缺陷
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐