04-课程教案.md

《软件测试课程设计》课程教案

课程名称:软件测试课程设计 课程代码:154442008

开课学院(部):计算机学院 制定人:周宇文 审核人:周瑞红

制定时间:2026-09-13 广东金融学院教务处 制

一、课程简介

二、教学目的与教学任务

性质:本课程是软件工程与软件测试交叉的实践性课程,面向软件测试岗位能力培养,是计算机类专业的专业课程。

目的:学生通过对本课程的学习,掌握软件测试的基本理论、方法、技术与常用工具,熟悉软件测试的流程与规范;能够针对具体软件系统开展测试需求分析、测试计划制定、测试用例设计与执行、缺陷跟踪与测试报告撰写;培养规范化、工程化的测试实践能力与团队协作能力,并在课程中融入工程伦理与职业道德教育,培养学生的质量意识、诚信意识、团队精神、社会责任感和科技报国的情怀。

任务:完成软件测试基本理论与方法的学习与实验;以一个具体软件系统为对象完成课程设计项目,包括测试需求分析、测试计划、测试用例设计、测试执行、缺陷报告与测试总结,并进行项目答辩。

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

教学方式:多媒体讲授+案例分析 支撑课程目标:课程目标1

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

以《狮子王》安装失败、Intel 奔腾浮点错误、火星探测器与波音星际客机、骑士资本、AWS S3 宕机、Therac-25 放疗仪等真实事故说明:软件缺陷客观存在,且代价可能极其高昂;测试是发布前的质检关卡。

以国产游戏《血狮》(1997)为例,剖析宣传远超前于被验证的产品所带来的后果:大量用户无法安装运行、兼容性差、功能与宣传不符,最终成为国产软件史上的反面教材。

给出软件测试的权威定义:在指定条件下运行或评审系统与组件,观察或记录结果,对照预期作出评价;并说明测试包含静态测试与动态测试。

介绍测试与 SQA、与开发的关系(并行协作、测试左移)以及 TDD 测试在前、开发在后的基本思想。

  1. 软件测试的必要性:从真实事故说起
  1. 为什么要进行软件测试
  1. 什么是软件测试
  1. 软件测试学科的形成与发展
  1. 测试与质量保证(SQA)
  1. 测试与开发的关系
  1. 测试岗位与能力要求
  1. 课程导学与课程设计任务

案例讨论:结合《血狮》案例讨论:如果当年有规范的测试流程,哪些问题可能被提前发现?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

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

教学方式:多媒体讲授+课堂练习 支撑课程目标:课程目标1、2

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

按是否运行程序可分为静态测试与动态测试:评审、走查、静态分析属于静态测试;执行用例、观察结果属于动态测试。

按对内部结构的了解程度可分为黑盒、白盒与灰盒测试;黑盒关注输入输出与业务规则,白盒关注代码结构与路径覆盖,灰盒兼顾两者。

测试级别包括单元测试、集成测试、系统测试与验收测试,各阶段的对象、目标与执行主体不同,构成完整的测试链。

软件测试工作范畴包括测试分析、测试设计、测试执行、缺陷管理、测试环境与工具建设等,对应不同的岗位分工。

  1. 软件缺陷与软件质量
  1. 软件测试的分类与测试级别
  1. 静态测试与动态测试
  1. 主动测试与被动测试
  1. 黑盒、白盒与灰盒测试
  1. 软件测试工作范畴与岗位分工

案例讨论:同一段代码缺陷:用黑盒视角与白盒视角分别能发现什么?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 3 次课 第3章 软件测试方法(一):基于直觉与经验 2 学时

教学方式:讲授+探索式测试实践 支撑课程目标:课程目标2

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

错误猜测法依赖测试者对易错点的经验判断,快速列出高风险场景,适合时间受限的探索阶段。

探索式测试强调学习、设计、执行同步进行,通过会话(Session)组织,配合时间盒与记录,兼顾灵活性与可追溯性。

缺陷模式把历史缺陷抽象为可识别的模式(如空指针、资源未释放、边界越界),据此设计针对性用例并用于缺陷预防。

  1. 软件测试方法分类框架
  1. 错误猜测法(Error Guessing)
  1. 探索式测试(Exploratory Testing)
  1. 基于缺陷模式的测试(DPBT)

案例讨论:针对“文件上传”功能,用错误猜测法列出 10 个可能的出错点。

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 4 次课 第3章 软件测试方法(二):基于模型与形式 2 学时

教学方式:讲授+建模练习 支撑课程目标:课程目标2

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

基于模型的测试从需求或设计抽取状态机、流程图、决策表等模型,由模型自动或半自动生成覆盖各迁移与条件的用例。

形式化方法以严格的数学语义描述系统行为与测试条件,适用于安全关键系统,代价是建模与验证成本较高。

方法选择应结合需求特点、风险等级、时间与人员能力综合权衡,实际项目常采用多种方法组合。

  1. 基于输入域的测试方法
  1. 基于逻辑覆盖的白盒方法
  1. 基于模型的测试(MBT)
  1. 形式化测试方法
  1. 测试方法的选择与组合

案例讨论:把一个登录—锁定—解锁业务流程画成状态机,并生成覆盖各迁移的用例。

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 5 次课 第4章 软件测试流程和规范 2 学时

教学方式:讲授+流程设计练习 支撑课程目标:课程目标1、4

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

传统测试过程强调阶段划分与文档化,需求、设计、编码、测试依次推进,便于评审与追溯。

敏捷测试强调持续测试、自动化回归与团队共责,测试与开发并行,测试左移、快速反馈。

测试规范明确各阶段的输入输出、评审要求与准入准出条件;测试过程改进用于持续提升测试效能。

  1. 传统的软件测试过程
  1. 敏捷测试过程
  1. 软件测试学派与测试规范
  1. 测试过程改进

案例讨论:同一个需求变更:瀑布流程与敏捷流程下测试工作分别如何组织?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 6 次课 第5章 单元测试与集成测试 2 学时

教学方式:讲授+JUnit 实验 支撑课程目标:课程目标2、3

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

单元测试针对最小可测单元,强调独立、可重复、自动化;通过断言验证结果,通过测试替身隔离外部依赖。

JUnit 提供注解、断言、参数化测试与测试套件,可结合覆盖率工具评估测试充分性。

集成测试关注模块间接口与协作,常见策略有大爆炸、自顶向下、自底向上与三明治集成,需根据依赖关系选择。

将单元测试接入持续集成流水线,可在每次提交后自动回归,快速暴露集成缺陷。

  1. 单元测试的概念与内容
  1. 代码评审与静态分析
  1. 测试框架与单元测试工具
  1. 集成测试策略
  1. 持续集成与持续测试

案例讨论:为什么模块单测都通过,系统仍然出错?结合火星探测器接口案例讨论。

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 7 次课 第6章 系统功能测试 2 学时

教学方式:讲授+接口/UI 测试实验 支撑课程目标:课程目标2、3

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

功能测试从业务流程出发设计端到端用例,覆盖正常流程、异常流程与边界条件。

UI 自动化适合稳定且高频的核心流程;API 自动化执行快、维护成本低,适合作为自动化主体。

回归测试在每次变更后验证既有功能;精准测试通过变更影响分析缩小回归范围,提高效率。

  1. 系统功能测试的目标与过程
  1. 功能测试用例设计
  1. 界面与易用性相关功能验证
  1. 接口测试与自动化

案例讨论:电商下单流程中,哪些环节适合 UI 自动化、哪些更适合 API 自动化?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 8 次课 第7章 专项测试:性能、安全、兼容与易用性 2 学时

教学方式:讲授+JMeter 压测实验 支撑课程目标:课程目标2、3

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

性能测试关注响应时间、吞吐量、并发用户数与资源占用,通过场景设计与监控发现瓶颈。

安全测试关注认证授权、输入校验、敏感数据保护与越权访问,需在法律与授权范围内开展。

兼容性测试覆盖浏览器、操作系统、设备与分辨率差异;可靠性测试关注长时间运行与异常恢复;易用性测试关注用户操作效率与体验。

  1. 性能测试的目标与指标
  1. 性能测试类型与实施
  1. 安全性测试
  1. 兼容性测试
  1. 可靠性与易用性测试

案例讨论:Uber 隐私泄露与 AWS 宕机:分别属于哪类专项测试范围?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 9 次课 第8章 软件本地化测试 2 学时

教学方式:讲授+本地化检查实践 支撑课程目标:课程目标2、3

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

本地化缺陷多与字符编码、字体显示、文本长度与布局方向有关,必须在目标语言环境下验证。

日期、时间、时区、货币与度量单位等区域设置错误,是国际化软件最常见的缺陷来源之一。

本地化测试既包括界面文案与功能验证,也包括数据格式、排序规则与文化适配。

  1. 本地化测试的基本概念
  1. 翻译验证
  1. 数据格式与区域设置验证
  1. 本地化功能测试

案例讨论:把 iPhone 日期设置为 1970-01-01 会变砖,这属于什么类型的缺陷?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 10 次课 第9章 测试自动化及其框架 2 学时

教学方式:讲授+自动化环境搭建 支撑课程目标:课程目标2、3

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

自动化的价值在于可重复执行与快速反馈,适合稳定、高频、结果可判定的场景。

常见框架包括数据驱动、关键字驱动、行为驱动(BDD)与混合框架,分层设计可降低维护成本。

自动化实施需评估投入产出、选择合适工具、建立脚本规范与持续维护机制,避免脚本腐化。

  1. 自动化测试的适用条件
  1. 自动化测试框架的分层
  1. 典型框架与工具链
  1. 自动化测试的设计原则与常见问题

案例讨论:什么情况下不适合做自动化?请举例说明。

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 11 次课 第10章 测试需求分析与测试计划 2 学时

教学方式:讲授+测试计划编写 支撑课程目标:课程目标2、4

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

测试需求分析把业务需求拆解为可验证的测试点,并识别需求歧义、遗漏与不可测之处。

测试计划明确测试范围、策略、资源、进度、风险与交付物,是后续测试工作的基线。

测试估算可采用类比、经验与工作量分解等方法,并结合风险确定优先级与资源分配。

  1. 测试需求分析
  1. 测试目标与测试策略
  1. 测试计划的内容
  1. 测试估算与风险控制

案例讨论:需求文档里“系统应快速响应”如何转化为可测试的指标?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 12 次课 第11章 设计和维护测试用例 2 学时

教学方式:讲授+用例设计与评审 支撑课程目标:课程目标2、4

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

一条完整用例包含编号、标题、前置条件、测试数据、操作步骤与预期结果,缺一不可。

用例设计方法包括等价类、边界值、判定表、场景法等,应结合需求特点组合使用。

用例需要版本管理、评审与定期维护,随需求变更同步更新,避免用例与实际功能脱节。

  1. 测试用例的构成与作用
  1. 测试用例的基本元素与书写标准
  1. 测试用例设计原则与颗粒度
  1. 测试用例的组织与维护

案例讨论:同一个功能,写 5 条用例与写 50 条用例,如何判断哪个更合适?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 13 次课 第12章 部署测试基础设施 2 学时

教学方式:讲授+环境与缺陷流程演练 支撑课程目标:课程目标3、4

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

环境、数据、工具与流水线共同构成测试基础设施;环境不一致是本地能跑、线上不行的根源。

测试数据需要覆盖正常、异常与边界场景,敏感数据必须脱敏,避免隐私与合规风险。

缺陷跟踪流程包括提交、分派、修复、验证与关闭,需与版本管理、需求变更联动,形成可追溯记录。

  1. 测试环境与基础设施
  1. 测试数据准备
  1. 虚拟机与容器技术
  1. 缺陷管理与跟踪

案例讨论:在我机器上是好的——如何用基础设施手段避免这类问题?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 14 次课 第13章 测试执行与结果评估、报告 2 学时

教学方式:讲授+测试报告撰写 支撑课程目标:课程目标3、4

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

测试执行需按计划推进,记录执行结果与阻塞问题,并遵循准入准出条件。

缺陷报告要可复现:环境、前置条件、操作步骤、测试数据、实际结果与预期结果缺一不可。

测试报告汇总用例覆盖率、缺陷分布、遗留风险与质量结论,给出是否可发布的建议,并用数据支撑结论。

  1. 测试执行与结果记录
  1. 缺陷报告与跟踪
  1. 测试进度与质量管理
  1. 测试报告与结果评估

案例讨论:一个偶现缺陷如何写出高质量报告并推动修复?

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 15 次课 第14章 软件测试展望与综合案例 2 学时

教学方式:讲授+案例复盘 支撑课程目标:课程目标1、4

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

自动化、持续测试与智能化测试正在改变测试工作方式,但测试分析与质量判断仍是核心能力。

测试岗位要求兼具测试基础、工具能力、业务理解与沟通协作能力,测试开发与质量保障方向日益细分。

以真实案例复盘:从需求、设计、编码到发布,测试在每个环节可以做什么、应该做什么。

  1. 测试技术的发展趋势
  1. 测试组织与岗位能力
  1. 综合案例复盘

案例讨论:AI 能替代测试人员吗?结合本章案例谈谈你的判断。

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

第 16 次课 综合实践 课程设计项目汇报与答辩 2 学时

教学方式:汇报答辩+教师点评 支撑课程目标:课程目标1–4

本次教学重点:

本次教学难点:

本次课教学内容:

本次课学习目标:

各组按统一模板汇报课程设计成果,重点说明测试策略、用例设计依据与缺陷发现过程。

评分依据包括方案合理性、用例质量、执行严谨性、报告规范性与答辩表现。

通过互评与教师点评,总结共性问题与改进方向,形成课程学习闭环。

案例讨论:互评:如果你是项目经理,是否同意该项目发布?给出理由。

教学组织:

作业布置:

本次课推荐参考文献:

本次课程思政教学设计:

本次课实践教学设计:

课后自我总结分析:根据课堂提问、实验完成情况与作业反馈,记录学生易错点与薄弱环节,作为下次课复习、例题选择与个别辅导的依据。

下载此文件