图书前言

党的二十大报告指出,教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。

时间如白驹过隙,在本书第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版尽可能确保各章介绍目前流行的测试工具(包括缺陷跟踪、测试管理等工具)。其他一些地方也做了一些改动,包括增加了“TestOracle(测试预言)”、缺陷 PIE模型、图覆盖准则、精准测试等内容介绍。还有一个重要变化是增加了9个实验,从单元测试、系统功能测试、性能测试、安全性测试到自动化测试框架的部署、缺陷跟踪工具的安装、基于 MeterSphere的综合实验等,覆盖了课程教学的关键内容,确保了学生有足够的实践机会。

为便于教学,本书提供丰富的配套资源,包括教学大纲、教学课件、教学进度表、程序源码和综合实验指导书。

在本书第3版使用过程中,得到了不少老师的反馈,在此不一一列举,一并表示深深的谢意。在修改过程中,得到了中科创达测试总监李洁的大力帮助,在第5、9、12章中都给予了大力支持,在此深表感谢! 也要感谢清华大学出版社分社长魏江江对本书的大力支持,感谢同济大学的大力支持,更要感谢家人的大力支持!虽然本书第4版做了较大改动,但仍有不足之处,敬请各位老师多多指正。我们一起把软件测试教学做好,培养更多、更优秀的软件测试人才,助力我国软件产业的发展,助力中华民族的伟大复兴!