# 课程简介

| 项目 | 内容 |
|---|---|
| 课程名称 | 软件测试课程设计（Software Testing Course Design） |
| 课程代码 | 154442008 |
| 课程性质 | 专业选修 |
| 总学时 / 学分 | 32 学时 / 2 学分（理论 16 ＋ 实践 16） |
| 开课学院 | 计算机学院 |
| 适用专业 | 计算机科学与技术、软件工程、数据科学与大数据技术 |
| 授课对象 | 2024/2025 级计算机类相关专业本科生（以教务选课名单为准） |
| 任课教师 | 周宇文（电话/微信：13580390715） |
| 开设目的 | 学生通过对本课程的学习，掌握软件测试的基本理论、方法、技术与常用工具，熟悉软件测试的流程与规范；能够针对具体软件系统开展测试需求分析、测试计划制定、测试用例设计与执行、缺陷跟踪与测试报告撰写；培养规范化、工程化的测试实践能力与团队协作能力，并在课程中融入工程伦理与职业道德教育，培养学生的质量意识、诚信意识、团队精神、社会责任感和科技报国的情怀。 |
| 修读条件 | 要求学生先修程序设计基础、软件工程、数据库原理等课程，具备一定的编程与调试能力，了解软件开发生命周期。 |
| 主要内容 | 1. 软件测试基础：软件测试的必要性、基本概念、学科形成、正反思维与测试定义，测试与质量保证、与开发的关系； 2. 软件测试方法与流程：基于直觉与经验的测试、基于模型与形式的测试，传统测试过程与敏捷测试过程、测试规范与过程改进； 3. 软件测试技术：单元测试与集成测试、系统功能测试、专项测试（性能/安全/兼容/可靠性/易用性）、软件本地化测试； 4. 测试自动化与工程化：测试自动化原理与框架、测试需求分析与测试计划、测试用例设计与维护、测试基础设施与缺陷跟踪、测试执行与测试报告； 5. 课程设计项目实践：以一个具体软件系统为对象，完成从测试分析、用例设计、测试执行到缺陷报告与测试总结的完整实践，并进行项目答辩。 |
| 教材 | 朱少民. 软件测试方法和技术（第 4 版）[M]. 北京：清华大学出版社，2022. |
| 参考书 | 朱少民. 全程软件测试（第 3 版）[M]. 北京：人民邮电出版社，2019. 朱少民. 致命 Bug——软件缺陷的灾难与启示[M]. 北京：人民邮电出版社，2016. 朱少民. 软件测试知识地图[Z]. 2022. 陈能技. 软件测试技术大全：测试基础、流行工具、项目实战[M]. 北京：人民邮电出版社，2008. Myers G J, Sandler C, Badgett T. The Art of Software Testing[M]. 3rd ed. Hoboken: John Wiley & Sons, 2011. Kaner C, Bach J, Pettichord B. Lessons Learned in Software Testing[M]. New York: John Wiley & Sons, 2001. Crispin L, Gregory J. Agile Testing: A Practical Guide for Testers and Agile Teams[M]. Boston: Addison-Wesley, 2008. Meszaros G. xUnit Test Patterns: Refactoring Test Code[M]. Boston: Addison-Wesley, 2007. Whittaker J A. Exploratory Software Testing[M]. Boston: Addison-Wesley, 2009. Beck K. Test-Driven Development: By Example[M]. Boston: Addison-Wesley, 2002. Humble J, Farley D. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation[M]. Boston: Addison-Wesley, 2010. Fowler M. 重构：改善既有代码的设计（第 2 版）[M]. 北京：人民邮电出版社，2019. |
| 考核方式 | 考查（过程性考核＋课程设计作品与答辩） |

## 一、课程性质与目的

《软件测试课程设计》是面向计算机类专业开设的专业选修课程，共 32 学时、2 学分，安排在第 1–17 周（含实验）。课程以软件测试方法与技术为主线，采用讲授与实验相结合的方式，围绕会设计、会执行、会分析、会报告组织教学，边学边练。

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

## 二、修读条件

要求学生先修程序设计基础、软件工程、数据库原理等课程，具备一定的编程与调试能力，了解软件开发生命周期。

## 三、主要内容
- 1. 软件测试基础：软件测试的必要性、基本概念、学科形成、正反思维与测试定义，测试与质量保证、与开发的关系；
- 2. 软件测试方法与流程：基于直觉与经验的测试、基于模型与形式的测试，传统测试过程与敏捷测试过程、测试规范与过程改进；
- 3. 软件测试技术：单元测试与集成测试、系统功能测试、专项测试（性能/安全/兼容/可靠性/易用性）、软件本地化测试；
- 4. 测试自动化与工程化：测试自动化原理与框架、测试需求分析与测试计划、测试用例设计与维护、测试基础设施与缺陷跟踪、测试执行与测试报告；
- 5. 课程设计项目实践：以一个具体软件系统为对象，完成从测试分析、用例设计、测试执行到缺陷报告与测试总结的完整实践，并进行项目答辩。

## 四、教材与参考书
- 使用教材：朱少民. 软件测试方法和技术（第 4 版）[M]. 北京：清华大学出版社，2022.
- 参考书：朱少民. 全程软件测试（第 3 版）[M]. 北京：人民邮电出版社，2019.
- 参考书：朱少民. 致命 Bug——软件缺陷的灾难与启示[M]. 北京：人民邮电出版社，2016.
- 参考书：朱少民. 软件测试知识地图[Z]. 2022.
- 参考书：陈能技. 软件测试技术大全：测试基础、流行工具、项目实战[M]. 北京：人民邮电出版社，2008.
- 参考书：Myers G J, Sandler C, Badgett T. The Art of Software Testing[M]. 3rd ed. Hoboken: John Wiley & Sons, 2011.
- 参考书：Kaner C, Bach J, Pettichord B. Lessons Learned in Software Testing[M]. New York: John Wiley & Sons, 2001.
- 参考书：Crispin L, Gregory J. Agile Testing: A Practical Guide for Testers and Agile Teams[M]. Boston: Addison-Wesley, 2008.
- 参考书：Meszaros G. xUnit Test Patterns: Refactoring Test Code[M]. Boston: Addison-Wesley, 2007.
- 参考书：Whittaker J A. Exploratory Software Testing[M]. Boston: Addison-Wesley, 2009.
- 参考书：Beck K. Test-Driven Development: By Example[M]. Boston: Addison-Wesley, 2002.
- 参考书：Humble J, Farley D. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation[M]. Boston: Addison-Wesley, 2010.
- 参考书：Fowler M. 重构：改善既有代码的设计（第 2 版）[M]. 北京：人民邮电出版社，2019.
- 参考书：Koomen T, Pol M. TMap NEXT: for Result-driven Testing[M]. Den Bosch: UTN Publishers, 2006.
- 参考书：ISO/IEC/IEEE 29119 Software and Systems Engineering — Software Testing[S]. Geneva: ISO, 2013—2021.
- 参考书：GB/T 15532—2008 计算机软件测试规范[S]. 北京：中国标准出版社，2008.
- 参考书：GB/T 25000.10—2016 系统与软件工程 系统与软件质量要求和评价（SQuaRE）第 10 部分：系统与软件质量模型[S]. 北京：中国标准出版社，2016.
- 参考书：中国证券监督管理委员会. 证券期货业软件测试规范[S]，2020.
- 参考书：2021 年国内软件质量调查报告[R]. 2021.
- 参考书：ISTQB. Certified Tester Foundation Level Syllabus[EB/OL]. https://www.istqb.org/.
- 参考书：Apache JMeter 官方文档[EB/OL]. https://jmeter.apache.org/.
- 参考书：Postman 官方学习中心[EB/OL]. https://learning.postman.com/.
- 参考书：Playwright 官方文档[EB/OL]. https://playwright.dev/.
- 参考书：Selenium 官方文档[EB/OL]. https://www.selenium.dev/documentation/.
- 参考书：TestLink 官方文档[EB/OL]. https://testlink.org/.
- 参考书：SonarQube 官方文档[EB/OL]. https://docs.sonarsource.com/sonarqube/.

## 五、考核方式

本课程为考查类课程，总评成绩由过程性考核与课程设计成果构成：考勤与课堂表现 10%、实验与阶段任务 40%、课程设计作品与答辩 50%。具体见《课程考核方案》。

## 六、学习建议

软件测试是一门实践性很强的课程。建议课前预习对应章节，课上跟随案例动手分析，课后按周完成实验任务，并把课程设计项目贯穿全学期，边学边测、持续改进。
