【软考中级 - 软件设计师 - 应用技术】软件工程案例分析之软件测试实践
软件测试是保障软件质量的关键环节,在应用技术考试中占比约 10%-12%(近 5 年真题统计),核心考查 “如何设计有效测试用例”“如何分析缺陷”“如何优化测试流程”。考试题型以 “测试用例补全”“缺陷报告撰写”“测试方案改进” 为主,所有考点均围绕 “黑盒测试”(不看代码,按功能测)展开(白盒测试仅需了解基础概念)。下文紧扣考纲,用 “通俗方法 + 场景案例” 拆解核心考点。
一、软件测试的考试定位与核心分类
先明确考试重点关注的测试类型,避免盲目学习:
测试分类 | 核心思路 | 考试重点程度 |
黑盒测试 | 不看代码,只测功能是否符合需求 | 重点(占测试题 90%),需熟练掌握设计方法 |
白盒测试 | 看代码,测逻辑覆盖(如语句覆盖) | 了解(仅考基础概念,不考复杂计算) |
单元测试 / 集成测试 / 系统测试 | 按测试范围分(测单个模块 / 模块交互 / 整个系统) | 重点(考测试阶段与缺陷的对应关系) |
必记核心原则:测试用例设计的目标是 “用最少的用例覆盖最多的场景”,避免冗余(比如重复测相同功能),同时不遗漏关键场景(比如异常输入)。
二、核心考点 1:黑盒测试用例设计(必考)
黑盒测试的核心是 “模拟用户使用场景”,考试重点考查两种设计方法:等价类划分法(最基础)和边界值分析法(最常用),二者常结合使用。
1. 等价类划分法:把输入分 “有效 / 无效” 两类
核心思路:将大量输入数据按 “是否符合需求” 分成 “有效等价类”(符合需求的输入,比如账号长度 6-12 位)和 “无效等价类”(不符合需求的输入,比如账号长度 < 6 位或 > 12 位),每个等价类选 1 个代表数据做测试用例(不用测所有数据)。
真题级案例:设计 “用户登录账号” 的测试用例
需求:“登录账号为手机号,需满足:11 位数字,不能以 0 开头”。
步骤 1:划分等价类
等价类类型 | 具体条件 | 举例 |
有效等价类 | 11 位数字,且第一位非 0 | 13800138000 |
无效等价类 1 | 长度 < 11 位(数字,第一位非 0) | 1380013800(10 位) |
无效等价类 2 | 长度 > 11 位(数字,第一位非 0) | 138001380000(12 位) |
无效等价类 3 | 11 位,但第一位是 0 | 03800138000 |
无效等价类 4 | 11 位,但包含非数字字符 | 13800138a00 |
步骤 2:设计测试用例(每个等价类 1 个用例)
用例编号 | 输入账号 | 预期结果 | 覆盖等价类 |
TC01 | 13800138000 | 账号格式正确,允许继续输入密码 | 有效等价类 |
TC02 | 1380013800 | 提示 “账号需为 11 位数字” | 无效等价类 1 |
TC03 | 138001380000 | 提示 “账号需为 11 位数字” | 无效等价类 2 |
TC04 | 03800138000 | 提示 “账号不能以 0 开头” | 无效等价类 3 |
TC05 | 13800138a00 | 提示 “账号只能包含数字” | 无效等价类 4 |
关键提醒:
- 有效等价类要覆盖 “所有符合需求的核心场景”(比如手机号的 “11 位” 和 “非 0 开头” 两个条件必须同时满足);
- 无效等价类要覆盖 “所有可能的错误场景”(长度、字符类型、首字符限制等,不能遗漏)。
2. 边界值分析法:重点测 “边界附近的数据”
核心思路:很多缺陷出在 “输入范围的边界”(比如需求 “账号 6-12 位”,缺陷常出在 5 位、6 位、12 位、13 位),所以重点测试 “边界值” 和 “边界附近的值”(通常取 “边界 - 1、边界、边界 + 1”)。
真题级案例:设计 “密码输入” 的测试用例
需求:“密码长度为 6-12 位,可包含字母和数字”。
步骤 1:确定边界
边界值:最小长度 6,最大长度 12;
需测试的边界附近值:5(6-1)、6(边界)、12(边界)、13(12+1)。
步骤 2:设计测试用例(结合等价类,优先测边界)
用例编号 | 输入密码 | 预期结果 | 覆盖场景 |
TC01 | 12345(5 位) | 提示 “密码需 6-12 位” | 边界 - 1(无效) |
TC02 | 123456(6 位) | 密码格式正确 | 最小边界(有效) |
TC03 | 123456789012(12 位) | 密码格式正确 | 最大边界(有效) |
TC04 | 1234567890123(13 位) | 提示 “密码需 6-12 位” | 边界 + 1(无效) |
TC05 | a1b2c3(6 位,字母 + 数字) | 密码格式正确 | 有效边界(字符类型验证) |
关键提醒:
- 边界值法通常和等价类法结合使用(比如用等价类覆盖 “字符类型”,用边界值覆盖 “长度”);
- 若需求是 “整数范围”(比如 “年龄 18-60 岁”),边界值测 17、18、60、61。
三、核心考点 2:缺陷分析与缺陷报告撰写(常考)
考试常给出 “测试过程中发现的问题描述”,让你 “分析缺陷原因” 或 “补全缺陷报告”。缺陷报告是测试的核心输出,需包含 “关键信息”,不能遗漏。
1. 缺陷报告的核心要素(必记)
一份规范的缺陷报告需包含 6 个关键部分,考试常考 “补全缺失部分”:
- 缺陷标题:简洁描述 “哪里错了”(比如 “登录时输入正确账号密码,提示‘账号错误’”);
- 缺陷严重级别:按影响范围分(致命 / 严重 / 一般 / 轻微,考试重点区分前两类);
- 缺陷复现步骤:清晰写 “怎么操作能重现问题”(步骤要完整,别人能跟着做出来);
- 实际结果:测试时看到的错误现象(比如 “提示‘账号错误’”);
- 预期结果:按需求应该出现的正确现象(比如 “提示‘登录成功’”);
- 环境信息:测试用的系统、浏览器等(比如 “Windows10,Chrome110”)。
2. 真题级案例:补全缺陷报告
假设测试 “电商订单支付功能” 时发现问题:“用户下单后,用支付宝支付 100 元,支付成功后,订单状态仍显示‘待支付’”。补全缺陷报告的关键部分:
缺陷报告要素 | 填写内容 |
缺陷标题 | 支付宝支付成功后,订单状态未更新为 “已支付” |
缺陷严重级别 | 严重(影响用户正常使用,订单状态错误可能导致重复支付) |
缺陷复现步骤 | 1. 登录电商系统,选择商品 A(100 元)加入购物车;2. 提交订单,生成订单号 20240501001;3. 选择 “支付宝支付”,跳转后完成支付;4. 返回订单详情页,查看订单状态 |
实际结果 | 订单状态显示 “待支付”,但支付宝已提示支付成功 |
预期结果 | 订单状态更新为 “已支付”,并显示支付宝交易号 |
环境信息 | Windows10,Chrome110,电商系统 V2.0 |
3. 缺陷严重级别判断(考试易错点)
级别 | 判断标准 | 例子 |
致命缺陷 | 导致系统崩溃、无法使用核心功能 | 登录后点击 “订单”,系统直接闪退 |
严重缺陷 | 核心功能能用,但有错误(影响用户操作) | 支付成功后订单状态不更新 |
一般缺陷 | 非核心功能错误(不影响主要使用) | 个人中心 “头像预览” 显示模糊 |
轻微缺陷 | 界面、文案等小问题 | 按钮文字多了一个空格 |
四、核心考点 3:测试流程与测试方案优化(真题场景)
考试常给出 “某项目的测试流程描述”,让你 “找出流程问题” 并 “提出优化方案”。核心是围绕 “测试尽早介入”“测试覆盖全面”“缺陷及时修复” 三个维度分析。
1. 常见测试流程问题(附优化方案)
(1)问题 1:测试介入太晚(需求阶段没参与)
场景描述:“项目开发完成后,测试团队才拿到需求文档,开始设计测试用例,发现很多需求不明确,导致测试用例反复修改”。
问题分析:测试没在 “需求阶段” 介入,没参与需求评审,导致需求理解偏差;
优化方案:测试团队在 “需求分析阶段” 就介入,参与需求评审,提前提出需求模糊点(比如 “账号是否允许特殊字符”),避免后期返工。
(2)问题 2:测试覆盖不全面(只测正常场景,不测异常场景)
场景描述:“测试登录功能时,只测了‘输入正确账号密码’的场景,没测‘账号不存在’‘密码错误’的场景,上线后用户反馈大量错误提示问题”。
问题分析:测试用例只覆盖了 “有效等价类”,遗漏了 “无效等价类”(异常场景);
优化方案:按 “等价类 + 边界值” 设计用例,确保覆盖 “正常场景 + 所有异常场景”,并在测试前做 “用例评审”,检查是否有遗漏。
(3)问题 3:缺陷修复后没回归测试
场景描述:“开发修复了‘支付成功后订单状态不更新’的缺陷,直接上线,结果导致‘订单详情页无法打开’的新问题”。
问题分析:缺陷修复后没做 “回归测试”(验证修复是否正确,且没引入新缺陷);
优化方案:开发修复缺陷后,测试团队先验证 “原缺陷是否修复”(比如支付后订单状态是否更新),再执行 “相关功能的测试用例”(比如查看订单详情、取消订单),确认没有引入新缺陷。
五、备考建议(实战导向)
- 测试用例设计练习:找 5 道真题场景(登录、注册、支付、订单等),用 “等价类 + 边界值” 设计用例,对比参考答案,修正 “场景遗漏” 问题(比如忘记测 “输入为空” 的场景);
- 缺陷报告撰写:熟记缺陷报告的 6 个要素,找 3 个缺陷场景(比如 “搜索功能输入特殊字符报错”),练习完整撰写报告,重点注意 “复现步骤要清晰”;
- 流程优化总结:把 “测试介入晚”“覆盖不全”“没回归测试” 等问题整理成 “问题 - 原因 - 方案” 表格,做题时直接对号入座,快速定位优化点。
下一篇【应用技术】专栏将讲解 “数据库设计案例分析”,聚焦 “E-R 图设计”“SQL 语句编写”“数据库优化” 等高频考点,这些内容与软件测试直接关联(比如测试数据需要数据库支持),建议提前回顾数据库基础知识(如关系模型、SQL 语法)。