软件测试与运行维护
本章重点介绍软件测试的生命周期、测试方法(白盒/黑盒)以及软件维护的类型和性能评估指标。
1. 测试阶段划分
【考试要点解析】 测试阶段和开发阶段是一对好基友,V 模型讲的就是它俩的对应关系。单元测试对应详细设计,就是测一个个函数;集成测试对应概要设计,就是测模块拼起来行不行;系统测试对应需求分析,就是测整个系统是不是用户想要的。最后还有个确认测试,也就是验收,这得拉着用户一起来,分内测(Alpha)和公测(Beta)。
| 测试阶段 | 依据 | 内容 |
|---|---|---|
| 单元测试 | 详细设计 | 模块功能、性能、接口等。 |
| 集成测试 | 概要设计 | 模块间的接口。 |
| 系统测试 | 需求文档 | 功能、性能、验收、压力测试等。 |
| 确认测试 | 需求文档 | 验证软件与需求一致性(内部确认、Alpha、Beta、验收测试)。 |
2. 白盒测试
【考试要点解析】 白盒测试就是把代码盒子打开,看着里面的逻辑去测。考试必考那几个覆盖标准的强弱:语句覆盖最弱,只要每行代码跑一遍就行;判定覆盖稍微强点,真假分支都得走;路径覆盖最强,所有可能的路都得走一遍。基本路径测试是个计算题考点,利用环路复杂度算出最少要走几条路。
根据内部结构和逻辑设计测试用例。主要用于单元测试。
逻辑覆盖标准 (由弱到强):
- 语句覆盖:每条语句至少执行一次。
- 判定覆盖 (分支覆盖):每个判定的真假分支至少执行一次。
- 条件覆盖:每个判定中每个逻辑条件的可能值至少满足一次。
- 判定/条件覆盖:同时满足判定覆盖和条件覆盖。
- 条件组合覆盖:每个判定中条件的各种组合至少出现一次。
- 路径覆盖:覆盖所有可能的路径。
- 基本路径测试:覆盖每一条独立路径 (与环路复杂度相关)。
3. 黑盒测试 (功能测试)
【考试要点解析】 黑盒测试就是把代码当成黑箱子,只管输入输出。等价类划分是把输入分成有效的和无效的,挑代表来测;边界值分析是它的黄金搭档,因为 Bug 最喜欢躲在边界上(比如 0、1、100)。错误推测法全靠老司机的经验,因果图适合逻辑特别复杂的场景。
基于产品功能规格说明书,从用户角度验证功能。不考虑内部逻辑,主要用于集成、确认和系统测试。
常用方法:
- 等价类划分:有效等价类/无效等价类。
- 边界值分析:关注边界值 (如 1<=x<=10,测 0, 1, 10, 11)。
- 错误推测法:依靠经验和直觉。
- 判定表驱动法:适合多逻辑条件组合。
- 因果图法:根据输入输出因果关系设计。
4. 其他软件测试方法
【考试要点解析】 除了常规测试,现在还得会点新花样。AB 测试 (A/B Testing) 就是让一部分用户用 A 版,一部分用 B 版,看谁数据好,这是互联网公司的标配。Web (World Wide Web, 万维网) 测试要关注链接断没断、表单能不能交、Cookies 存没存。回归测试是每次修完 Bug 都得做的,防止按下葫芦浮起瓢。
- AB 测试:多版本对比,收集反馈评估最佳版本(网页优化)。
- Web 测试:包括链接测试(死链、孤立页面)、表单测试(提交完整性)、Cookies 测试等。
- 回归测试:软件变更后,测试变更部分的正确性及对原有功能的影响。
5. 系统维护分类
【考试要点解析】 软件做完了不是结束,维护才是大头。维护分四种:修 Bug 叫正确性维护;换了环境(比如升了系统)叫适应性维护;加新功能叫完善性维护(这个占比最高);为了将来好维护而重构代码叫预防性维护。
- 正确性维护:改正开发/测试阶段未发现的错误。
- 适应性维护:适应环境变化(外部环境、数据环境)。
- 完善性维护:扩充功能和改善性能。
- 预防性维护:主动增加新功能以适应未来变化(如为适应未来报表格式变化而重构)。
6. 软件测试 vs 软件调试
【考试要点解析】 测试是“找茬”,证明你有病;调试是“治病”,找到病根并治好。测试可以有计划、有步骤;调试往往得靠运气和经验,有时候还得用蛮力。
| 维度 | 软件测试 | 软件调试 |
|---|---|---|
| 目的 | 找出存在的错误 | 定位并修正错误 |
| 条件 | 已知条件,预知结果 | 未知条件,结果不可预计 |
| 过程 | 可事先设计,进度可定 | 不能描述过程或持续时间 |
调试方法:蛮力法、回溯法、原因排除法(二分法)。
7. 容错技术对比
【考试要点解析】 系统怎么才能不崩?恢复块就像备胎,主块坏了切备块,还得回滚数据,慢;N 版本程序设计就像多专家会诊,几个人同时算,结果不一样就投票,快但贵,因为得开发好几套。
| 技术 | 恢复块 | N 版本程序设计 |
|---|---|---|
| 环境 | 单机 | 多机 |
| 检测 | 验证测试程序 | 表决 (投票) |
| 策略 | 后向恢复 (回滚) | 前向恢复 (屏蔽错误) |
| 实时性 | 差 | 好 |
8. 性能评估方法
【考试要点解析】 怎么看电脑快不快?光看 CPU (Central Processing Unit, 中央处理器) 主频(时钟频率)或者每秒算多少次(MIPS (Million Instructions Per Second, 每秒百万条指令))是不够的,那太片面。最靠谱的是基准程序法(Benchmark),就是跑一套标准的测试题,像 TPC-C (Transaction Processing Performance Council Benchmark C, 事务处理性能委员会基准C) 那样,实打实地测。
- 时钟频率法:仅 CPU。
- 指令执行速度 (MIPS):仅 CPU。
- 基准程序法 (Benchmark):综合测试,最受认可。
9. 性能指标
【考试要点解析】 吞吐率是系统视角的,一秒能干多少活;响应时间是用户视角的,点一下多久能反应。这两个指标经常打架:为了吞吐率高(比如批处理),可能就会让用户多等一会儿。
- 硬件:主频、吞吐率。
- 网络:带宽、丢包率、延迟。
- 软件:响应时间、并发数、资源利用率。
预览时标签不可点
Close
更多
Name cleared
微信扫一扫赞赏作者
Like the AuthorOther Amount
赞赏后展示我的头像
作品
暂无作品
Like the Author
Other Amount
¥
最低赞赏 ¥0
OK
Back
Other Amount
更多
赞赏金额
¥
最低赞赏 ¥0
1
2
3
4
5
6
7
8
9
0
.
二手架构师杂谈 · 目录
二手架构师杂谈
上一篇软考高级系统架构设计师知识精要-软件架构设计与评估下一篇软考高级系统架构设计师知识精要-数据库与存储架构
Close
更多
搜索「」网络结果
Close
调整当前正文文字大小
更多
100%