软件测试
Everything is ruled by program except program. Program is ruled by bugs.
软件工程过去的稀缺能力,是 “把想法变成代码”,而 AI 正在快速降低这件事的成本。但是,当软件被生产出来后,我们仍需要回答:它的实现是正确的吗?它在边界情况下会怎么样?它受到攻击时会怎么样?外部服务失败时会怎么样?模型升级后还会正常工作吗?我们掌握了多少证据,才敢把软件产品交给真实用户?
AI 降低了生成软件的成本,却没有对应降低判断软件是否可信的成本,当 “写出来” 变得越来越容易,“如何确保它值得信赖” 则会成为新的瓶颈。在这样一个时代下,软件测试不仅关乎寻找更多的 Bugs,还更在于为机器生成的软件建立合理的信任。
本课程将对现代软件测试方法体系进行系统介绍,聚焦测试何时可以停止(测试充分性准则和测试输入数据生成)和软件行为是否正确(测试预期输出判定)等软件测试领域的关键问题和挑战,着重介绍一批广受人们关注和使用的自动化和智能化软件测试方法。通过本课程的学习,期望学生了解软件测试的基本理论,掌握不同测试方法的基本动机、相关技术和优势特色,并进一步提高软件开发的质量意识。
📅 基本信息
📑 考核方式
- 课程实验 + 平时成绩 (bonus):60%
- 期末考试:40% (闭卷考试)