Day 1 —— 软件测试基础概念
一、什么是软件测试
软件测试:用人工或自动化的手段,运行或检查软件,发现它与预期不符的地方(缺陷),并评估软件质量的过程。
关键理解:测试的目的不是"证明软件没问题",而是尽早发现问题、降低风险。测试只能证明存在缺陷,不能证明没有缺陷。
二、软件质量模型(记 6 个特性)
| 特性 | 通俗理解 |
|---|---|
| 功能性 | 该做的功能做了吗 |
| 性能效率 | 快不快、扛不扛得住 |
| 兼容性 | 换浏览器/系统还能不能用 |
| 易用性 | 好不好用、好不好上手 |
| 可靠性 | 稳不稳定、会不会崩 |
| 安全性 | 数据会不会泄露、能不能被绕过 |
口诀:功性兼易可安(功能、性能、兼容、易用、可靠、安全)。
三、软件测试的根本目的(背熟)
- 发现缺陷,让开发尽早修复
- 评估质量,给"能否上线"提供依据
- 预防缺陷,通过评审提前拦截问题
- 降低项目风险与成本(缺陷发现越晚,修复成本越高)
四、测试 vs 调试
| 对比 | 测试 | 调试 |
|---|---|---|
| 谁做 | 测试人员 | 开发人员 |
| 目的 | 发现缺陷 | 定位并修复缺陷 |
| 方向 | 从现象找问题 | 从代码找原因 |
| 结果 | 提交 Bug | 改好代码 |
五、软件测试的基本原则(7 条)
- 测试显示缺陷存在,但不能证明系统不存在缺陷
- 穷尽测试是不可能的(所以要做风险评估、抓重点)
- 测试尽早介入(需求阶段就能开始)
- 缺陷存在集群现象(80% 缺陷集中在 20% 模块,二八定律)
- 杀虫剂悖论(同一批用例反复跑,发现新 Bug 的能力会下降,要更新用例)
- 测试活动依赖于测试背景(电商和银行测的重点不同)
- 不存在缺陷谬论(没 Bug 不等于用户满意,需求本身就错也不行)
口诀:不能全证、不能穷尽、尽早介入、缺陷集群、杀虫剂、依赖背景、无缺陷谬论。
六、开发模型与测试模型
瀑布模型:需求→设计→编码→测试,测试在最后,问题发现太晚。 V 模型:开发和测试一一对应——需求对应验收测试、设计对应系统测试、编码对应单元测试。测试从需求阶段就介入。 W 模型:V 模型的基础上,开发和测试并行,每个阶段都有对应测试活动(需求评审、设计评审也算测试)。
口诀:V 模型一一对应,W 模型双 V 并行。
七、测试的分类(按阶段)
| 阶段 | 谁做 | 测什么 |
|---|---|---|
| 单元测试 | 开发 | 单个函数/方法 |
| 集成测试 | 开发/测试 | 模块之间的接口 |
| 系统测试 | 测试 | 整个系统功能/性能/安全 |
| 验收测试 | 用户/产品 | 是否符合需求,能否交付 |
按是否看代码分:黑盒(不看代码,只看输入输出)、白盒(看代码逻辑)、灰盒(介于两者)。
📋 小结表(Day 1)
| 主题 | 核心要点 |
|---|---|
| 定义 | 发现缺陷、评估质量的过程 |
| 目的 | 发现、评估、预防、降风险 |
| 质量模型 | 功性兼易可安 |
| 原则 | 7 条,重点:不能穷尽、尽早介入、缺陷集群 |
| 模型 | V 一一对应、W 双 V 并行 |
| 阶段 | 单元→集成→系统→验收 |
| 方法 | 黑盒 / 白盒 / 灰盒 |
🔑 口诀
测试只为找缺陷,不能证明全没有;穷尽不可能,风险要评估;尽早介入省成本,缺陷爱扎堆;V 对应 W 并行,单元集成到验收;黑看输入白看码,灰盒两头都兼顾。
✍️ 练习题(Day 1)
- 判断题:测试通过就说明软件没有缺陷。(对/错?为什么)
- 软件质量模型有哪 6 个特性?
浙公网安备 33010602011771号