第4版前言 时间如白驹过隙,在本书第3版出版8年后,第4版至今才和大家见面,我心中总有一份歉疚和不安。在日新月异的今天,作者应该更频繁地更新教材,2~3年要更新一个版本,希望未来可以做到这点,不辜负读者的厚望。 本书第3版算是一个比较重要的里程碑,不仅获得清华大学出版社近三年的畅销书奖和上海普通高等学校优秀教材奖,而且被评为“十二五”普通高等教育本科国家级规划教材, 本书被300多所大学选为本科“软件测试”课程的教材,获得了良好的社会效益。正是各位老师的厚爱,那份歉疚和不安更加沉重,在倍感压力和挑战中小心翼翼地修订完本教材。 这几年,不仅Web应用、智能手机等移动设备的App应用等得到迅猛发展,大数据、人工智能、云计算等技术及其应用也有很大进展,而且软件开发模式也向敏捷、精益和DevOps等开发模式转型,持续集成(CI)、持续交付(CD)成为主旋律,软件测试也需要顺应时代发展并做出改变,以适应软件产品研发新的需求。本书的第4版正是在这样的背景下对第3版进行了修订,努力和业界的实践保持同步,例如在最后一章细致地讨论大数据的测试、AI系统的测试、AI助力软件测试、软件测试工具的未来和持续测试等。 今天在软件测试行业,一个突出的旋律就是软件测试自动化,一方面体现了测试人员对技术和测试效率的追求,另一方面也是受敏捷、DevOps、CI/CD所迫。没有自动化测试,就很难实现快速迭代,很难实现持续交付。所以,在第4版共有5章(即第5、6、7、9、12章)加强了自动化测试的内容,特别是增加了面向接口(API)、面向Web应用、面向移动应用等自动化测试,以及测试环境的自动部署、自动化测试框架等内容。 我们也需要重新认识测试环境,将它上升到测试基础设施,使之能够和研发无缝集成,能够支持DevOps流水线,助力持续交付。所以,在第12章增加了对容器技术与Docker、集群管理与Kubernetes、应用程序容器化及集群部署、CI/CD流水线等内容的介绍。 今天,软件作为“服务”形式存在胜过作为“产品”形式存在,软件的竞争也比以前更加激烈,用户体验上升到一个新的高度,正如Amazon极度重视用户体验,将它作为核心,由此驱动并产生飞轮效应。所以,我 们需要做好用户体验测试,这其中也包括性能测试、安全性测试、兼容性测试和可靠性测试,为此把之前的非功能性测试一节内容拿出来,补充了一些新的内容(如前端性能测试及其工具、全生命周期的安全开发、用户体验测试、A/B测试),并自成一章——“第7章专项测试”。把原来第7章验收测试的大部分内容(如验收测试、安装测试、文档测试等)删去,虽然这些内容有价值,但不是那么重要,也比较容易掌握,受篇幅所限,就不做介绍了。像验收测试,在敏捷开发中有不同的理解,而且是在研发环境下完成的。在传统的研发模式中,我们只要关注测试环境(包括测试数据)的不同,并加强业务层次的端到端测试,就基本能把握好用户现场的验收测试,而技术方法基本等同于系统测试。 测试工具变化是最快的,所以第4版尽可能确保各章介绍目前流行的测试工具(包括缺陷跟踪、测试管理等工具)。其他一些地方也做了一些改动,包括增加了“Test Oracle(测试预言)”、缺陷PIE模型、图覆盖准则、精准测试等内容介绍。还有一个重要变化是增加了9个实验,从单元测试、系统功能测试、性能测试、安全性测试到自动化测试框架的部署、缺陷跟踪工具的安装、基于MeterSphere的综合实验等,覆盖了课程教学的关键内容,确保了学生有足够的实践机会。 为便于教学,本书提供丰富的配套资源,包括教学大纲、教学课件、教学进度表、程序源码和综合实验指导书。 资源下载提示 课件等资源: 扫描封底的“课件下载”二维码,在公众号“书圈”下载。 源码等资源: 扫描目录上方的二维码下载。 在线作业: 扫描封底的作业系统二维码,登录网站在线做题及查看答案。 视频等资源: 扫描“课件下载”二维码,在课件压缩包中附有视频观看方式。 在本书第3版使用过程中,得到了不少老师的反馈,在此不一一列举,一并表示深深的谢意。在修改过程中,得到了中科创达测试总监李洁的大力帮助,对第5、9、12章的内容提出了很好的建议,在此深表感谢!同时也要感谢清华大学出版社分社长魏江江对本书的大力支持,感谢同济大学的大力支持,更要感谢家人的大力支持! 虽然本书第4版做了较大改动,但仍有不足之处,敬请各位老师多多指正。我们一起把软件测试教学做好,培养更多、更优秀的软件测试人才,助力我国软件产业的发展,助力中华民族的伟大复兴! 朱少民 2022年10月于同济大学 第1~3版前言