当前位置: 首页 > news >正文

【软考中级 - 软件设计师 - 应用技术】软件工程案例分析之软件测试实践

软件测试是保障软件质量的关键环节,在应用技术考试中占比约 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 个关键部分,考试常考 “补全缺失部分”:​

  1. 缺陷标题:简洁描述 “哪里错了”(比如 “登录时输入正确账号密码,提示‘账号错误’”);​
  2. 缺陷严重级别:按影响范围分(致命 / 严重 / 一般 / 轻微,考试重点区分前两类);​
  3. 缺陷复现步骤:清晰写 “怎么操作能重现问题”(步骤要完整,别人能跟着做出来);​
  4. 实际结果:测试时看到的错误现象(比如 “提示‘账号错误’”);​
  5. 预期结果:按需求应该出现的正确现象(比如 “提示‘登录成功’”);​
  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:缺陷修复后没回归测试​

场景描述:“开发修复了‘支付成功后订单状态不更新’的缺陷,直接上线,结果导致‘订单详情页无法打开’的新问题”。​

问题分析:缺陷修复后没做 “回归测试”(验证修复是否正确,且没引入新缺陷);​

优化方案:开发修复缺陷后,测试团队先验证 “原缺陷是否修复”(比如支付后订单状态是否更新),再执行 “相关功能的测试用例”(比如查看订单详情、取消订单),确认没有引入新缺陷。​

五、备考建议(实战导向)​

  1. 测试用例设计练习:找 5 道真题场景(登录、注册、支付、订单等),用 “等价类 + 边界值” 设计用例,对比参考答案,修正 “场景遗漏” 问题(比如忘记测 “输入为空” 的场景);​
  2. 缺陷报告撰写:熟记缺陷报告的 6 个要素,找 3 个缺陷场景(比如 “搜索功能输入特殊字符报错”),练习完整撰写报告,重点注意 “复现步骤要清晰”;​
  3. 流程优化总结:把 “测试介入晚”“覆盖不全”“没回归测试” 等问题整理成 “问题 - 原因 - 方案” 表格,做题时直接对号入座,快速定位优化点。​

下一篇【应用技术】专栏将讲解 “数据库设计案例分析”,聚焦 “E-R 图设计”“SQL 语句编写”“数据库优化” 等高频考点,这些内容与软件测试直接关联(比如测试数据需要数据库支持),建议提前回顾数据库基础知识(如关系模型、SQL 语法)。

http://www.dtcms.com/a/393733.html

相关文章:

  • AI:读《老人与海》有感
  • 定制开发开源AI智能名片S2B2C商城小程序:产业互联网时代的创新商业模式
  • .env与.gitignore:现代软件开发中的环境管理与版本控制防护
  • 理解重参数化
  • css 给文本添加任务图片背景
  • CSS中的选择器、引入方式和样式属性
  • CSS 入门与常用属性详解
  • Linux 下 PostgreSQL 安装与常用操作指南
  • 【Linux】CentOS7网络服务配置
  • 使用C++编写的一款射击五彩敌人的游戏
  • 【LeetCode hot100|Week3】数组,矩阵
  • linux-环境配置-指令-记录
  • 自学嵌入式第四十四天:汇编
  • RTX 4090助力深度学习:从PyTorch到生产环境的完整实践指南——模型部署与性能优化
  • PythonOCC 在二维平面上实现圆角(Fillet)
  • Unity 性能优化 之 实战场景简化(LOD策略 | 遮挡剔除 | 光影剔除 | 渲染流程的精简与优化 | Terrain地形优化 | 主光源级联阴影优化)
  • [GXYCTF2019]禁止套娃1
  • 【论文阅读】-《Triangle Attack: A Query-efficient Decision-based Adversarial Attack》
  • 云微短剧小程序系统开发:赋能短剧生态,打造全链路数字化解决方案
  • 《从延迟300ms到80ms:GitHub Copilot X+Snyk重构手游跨服社交系统实录》
  • 力扣2132. 用邮票贴满网格图
  • Halcon学习--视觉深度学习
  • LeetCode:40.二叉树的直径
  • dplyr 是 R 语言中一个革命性的数据操作包,它的名字是 “data plier“ 的缩写,意为“数据折叠器“或“数据操作器“
  • 使用Node.js和PostgreSQL构建数据库应用
  • 设计模式(C++)详解—享元模式(1)
  • C++线程池学习 Day08
  • VALUER倾角传感器坐标系的选择
  • 解决 win+R 运行处以及文件资源管理器处无法使用 wt、wsl 命令打开终端
  • R语言 生物分析 CEL 文件是 **Affymetrix 基因芯片的原始扫描文件**,全称 **Cell Intensity File**。