# 本课程上下文（讲稿写作依据）

## 一、课程信息

- 课程：软件测试课程设计（154442008）｜ 专业选修 ｜ 计算机学院
- 学时学分：32 学时 / 2 学分（理论 16＋实验 16）｜ 第 1–17 周（含实验）
- 任课教师：周宇文（13580390715）｜ 审核人 周瑞红
- 教材：朱少民. 软件测试方法和技术（第 4 版）[M]. 北京：清华大学出版社，2022.
- 考核：考查（过程性考核＋课程设计作品与答辩）
- 课程目标：①掌握软件测试基本概念、理论与方法 ②能开展测试分析、设计测试计划与用例 ③能搭建环境、执行测试、使用自动化工具、规范记录与跟踪缺陷 ④能评估测试结果、撰写报告、具备团队协作与工程表达能力

## 二、第 1、2 次课的教案要点（讲稿必须覆盖）

### 第 1 次课　第1章　课程导学与引论：为什么必须做软件测试（2 学时）

- 教学方式：多媒体讲授＋案例分析 ｜ 支撑：课程目标1
- 学习目标：理解软件缺陷与质量成本的概念；理解软件测试的必要性与价值；掌握软件测试的基本定义；了解本课程的考核方式与课程设计任务
- 教学重点：软件缺陷的代价与质量成本观；软件测试的必要性（真实事故案例）；软件测试的定义与学科形成
- 教学难点：区分测试、调试、质量保证三者的边界；理解测试左移与成本非线性增长
- 案例讨论：结合《血狮》案例讨论：如果当年有规范的测试流程，哪些问题可能被提前发现？
- 实践任务：安装并熟悉课程实验环境（浏览器、截图工具、待测小程序）。；完成第一次测试体验：找出给定小程序中至少 2 个缺陷并截图记录。
- 作业：整理 5 个真实软件缺陷事故，标注缺陷类型（兼容/精度/集成/日期/数据等）。；用自己的话写出软件测试的定义，并说明它与调试、质量保证的区别。
- 思政设计：维度＝家国情怀·职业道德·质量责任；载体＝国外重大事故（Therac-25 放疗仪致死、波音星际客机、骑士资本 4.6 亿美元、AWS S3 宕机）与国产游戏《血狮》的对比案例。；实施＝先让学生估算事故损失量级再给真实数据，讨论“如果没有测试把关，交付给用户的是什么”；引到测试人员的职业底线。；观测点＝能说出测试与公众利益的关系；课堂发言中体现质量责任意识。

### 第 2 次课　第2章　软件测试的基本概念（2 学时）

- 教学方式：多媒体讲授＋课堂练习 ｜ 支撑：课程目标1、2
- 学习目标：掌握软件测试的分类与测试级别；理解静态测试与动态测试的区别；理解黑盒、白盒与灰盒测试；了解软件测试工作范畴与岗位分工
- 教学重点：测试分类与测试级别；静态测试与动态测试；黑盒测试与白盒测试
- 教学难点：不同测试级别的目标与执行主体；黑盒与白盒方法的选择依据
- 案例讨论：同一段代码缺陷：用黑盒视角与白盒视角分别能发现什么？
- 实践任务：使用等价类与边界值思路，为登录功能设计 10 条用例。
- 作业：为“学生选课系统”分别列出适合黑盒与白盒测试的功能点。；画出单元—集成—系统—验收四级测试的关系图。
- 思政设计：维度＝科学精神·质量观·诚信；载体＝软件缺陷与质量成本曲线、ISO/IEC 25010 质量特性、缺陷分类实践。；实施＝用“同一缺陷不同视角”的对比练习训练分类思维；讨论“发现缺陷不报告”对团队与用户的后果。；观测点＝缺陷分类是否准确；是否如实记录缺陷而不隐去不利结果。

## 三、页码锚点（必须与课件页一一对应，一页不漏）

- 第 1 章 引论：共 **61 页**，锚点 `【1.1】`–`【1.61】`（课件页序＝网页页序）
- 第 2 章 软件测试基本概念：共 **87 页**，锚点 `【2.1】`–`【2.87】`

## 四、问题页参考答案口径（讲到该页时照此展开）

### 第 1 章 第 57 页「问题」

问：开发人员测试自己的产品有哪些障碍？TDD 如何克服？
答：①思维盲区——顺着自己的实现思路测，漏掉"没想到"的路径与组合；②心态偏差——倾向证明"我写的是对的"；③独立性与时间不足。TDD 的克服：先把期望写成测试再写实现，迫使从需求与接口出发；测试先行形成自动回归网；用例即"可执行规格"，减少主观判断。

### 第 1 章 第 59 页「提问、思考与练习」

①日常质量问题对应缺陷类型：闪退卡顿→性能与可靠性；数据丢失或计算错误→功能与数据缺陷；界面错位乱码→兼容与易用性；更新后旧功能失效→回归缺陷。
②正反思维：正向思维按规格验证"该做的做到了"；反向思维假设程序有错，专挑边界、异常输入与组合去证伪。
③测试与开发并行协作：需求与设计阶段测试即介入（测试左移），例如需求评审时提出二义性、接口未实现先冻结契约与用例。
④测试与 SQA：SQA 面向过程（规范、评审、度量、过程改进），测试面向产品（验证与确认、提供质量信息），测试是 SQA 的重要手段之一。

### 第 2 章 第 85 页「思考题」

①为何说缺陷是质量的对立面：质量是软件满足规定与隐含需求（期望）的程度，缺陷正是违背需求与期望、导致结果不正确的问题；缺陷越多、越严重，质量越低。
②静态测试与动态测试为何是对立统一体：手段对立（静态不运行程序、动态运行程序），目标统一（发现缺陷、评价质量）且互补（静态查需求二义、设计缺陷与规范；动态验证运行时行为）。
③为什么测试需求分析是测试计划与测试设计的基础：需求分析回答"测什么"（测试项、范围、优先级、可测性），计划据此确定范围、资源、进度与风险，设计据此确定覆盖与判定准则。

## 五、案例素材（第 1 章讲课可用）

- 真实事故：Therac-25 放疗仪致死、Intel 奔腾浮点除法错误回收 CPU（4 亿美元）、火星探测器接口未集成测试坠毁、波音星际客机拆散测试未做端到端、骑士资本 45 分钟亏 4.6 亿美元、AWS S3 四小时宕机、国产游戏《血狮》（1997）宣传远超被验证的产品。
- 教材与参考：朱少民《软件测试方法和技术（第 4 版）》，清华大学出版社 2022。