软件测试

Everything is ruled by program except program. Program is ruled by bugs.

软件工程过去的稀缺能力,是 “把想法变成代码”,而 AI 正在快速降低这件事的成本。但是,当软件被生产出来后,我们仍需要回答:它的实现是正确的吗?它在边界情况下会怎么样?它受到攻击时会怎么样?外部服务失败时会怎么样?模型升级后还会正常工作吗?我们掌握了多少证据,才敢把软件产品交给真实用户?

AI 降低了生成软件的成本,却没有对应降低判断软件是否可信的成本,当 “写出来” 变得越来越容易,“如何确保它值得信赖” 则会成为新的瓶颈。在这样一个时代下,软件测试不仅关乎寻找更多的 Bugs,还更在于为机器生成的软件建立合理的信任。

本课程将对现代软件测试方法体系进行系统介绍,聚焦测试何时可以停止(测试充分性准则和测试输入数据生成)软件行为是否正确(测试预期输出判定)等软件测试领域的关键问题和挑战,着重介绍一批广受人们关注和使用的自动化和智能化软件测试方法。通过本课程的学习,期望学生了解软件测试的基本理论,掌握不同测试方法的基本动机、相关技术和优势特色,并进一步提高软件开发的质量意识。

📅 基本信息

  • 上课时间:周二 9-10节 (18:30 - 20:20)
  • 上课地点:仙Ⅱ-111
  • 任课教师吴化尧聂长海
  • 参考教材:软件测试的概念与方法,聂长海 编著,清华大学出版社

📑 考核方式

  • 课程实验 + 平时成绩 (bonus):60%
  • 期末考试:40% (闭卷考试)