前言 近年来,国家针对软件和互联网行业出台了很多鼓励政策,软件和互联网相关行业在我国得到了飞速的发展, 一大批软件企业及互联网公司也在国际中占据了一定的地位。不过我们依然发现,有些公司在重视代码开发的同时,却没有同时注重代码的质量,忽略了测试在整个软件项目工程中的重要意义。 软件中的错误是不可避免的,人们只能根据需要尽可能地减少软件中的错误。而软件测试正是发现软件缺陷、提高软件可信度的重要手段。目前,软件测试已经受到许多软件开发和互联网公司的重视,越来越多的软件开发人员投入到了软件测试的行业中。如何保证软件测试的质量,如何适应软件测试行业的技术需求,软件开发人员如何快速加入软件测试行业,这些都是我们关心的问题。 本书结合实际案例,介绍了软件测试的相关概念、技术、方法和工具等。全书分为3个部分: 理论基础、工具应用和案例实践。 理论基础部分(第1~7章)主要介绍软件测试的基础知识。 第1章介绍软件测试的背景、基本概念、目的和原则、分类以及发展状况等。 第2章介绍软件测试相关的模型方法等。 第3章介绍软件测试的基础方法,包括静态测试和动态测试、白盒测试和黑盒测试等。 第4章介绍软件测试的整体过程,从单元测试到集成测试,再到系统测试和验收测试,在需求发生变更后,还要辅以回归测试等。 第5章介绍软件测试活动的组织与管理,包括计划制订、人员管理、过程控制等整个测试项目的管理。 第6章介绍敏捷项目的管理、敏捷测试以及基于Scrum的敏捷测试流程等。 第7章介绍在与面向对象技术结合后,软件测试在各个方面有哪些新的特点和技术等。 工具应用部分(第8~13章)主要介绍自动化测试的概念、方法以及常用的自动化测试工具和使用方法。 第8章介绍软件测试自动化的相关概念以及如何开展自动化测试、相关方案的选择和工具使用等。 第9章介绍如何开展软件测试中重要的缺陷跟踪环节,并以业界广泛使用的Redmine、Bugzilla、JIRA等工具为例介绍缺陷的跟踪和管理。 第10章介绍如何利用JUnit进行单元测试,以及时下比较流行的测试驱动开发等。 第11章介绍如何进行中后台服务接口的测试,包括可以使用到的工具等。 第12章介绍如何利用LoadRunner进行软件系统的性能测试。 第13章介绍基于Python的Web自动化测试。 案例实践部分(第14~16章)主要介绍Web网站测试、微服务测试以及移动端App测试。 第14章介绍一个完整的Web网站系统的全面测试,包括功能、性能、安全性测试等。 第15章介绍一个完整的后台微服务接口的测试,包括功能覆盖和性能负载等。 第16章介绍一个完整的移动端App的测试,包括不同终端环境下的测试等。 此外,每章的开始部分有本章要点,列出了本章重要内容,方便读者自学和教学选择; 每章的结尾部分附有习题。 除章末列出的习题外,作者还提供了在线练习题,供读者检验学习成果。 本书附录中包含12个实验项目,实验内容包括前端测试分析,使用Fiddler工具测试, 使用Postman、SoapUI、JMeter接口测试工具测试接口服务,使用Selenium IDE录制回放脚本测试,利用pytest测试框架进行Web UI 测试和接口自动化测试,使用Appium测试Android应用以及使用Newman与Jenkins结合进行持续集成测试。 通过实验项目的学习,能够更好地理解本书前面章节中的理论知识,并可以深入理解和认识软件测试工具和软件测试框架,从而更好地帮助学习者积累实战经验。 本书重视实践能力和操作能力的培养,在基础方法的介绍中结合具体的实例进行讲解,在案例实践部分的讲述过程中穿插相关的基础知识和基本理论介绍,做到理论与实践相结合,方法与应用相结合。 相比于软件测试的同类教材,本书具有以下特点。 (1) 循序渐进。本书将内容分为理论基础、工具应用和案例实践3个部分,层次分明,通过循序渐进的讲述,便于读者学习与理解。 (2) 实用性强。本书介绍理论的时候均结合相关案例进行讲解,对不同的测试方法和技术选用不同的案例,做到有所针对,这也使基础知识更加具体形象,同时也更容易被理解和应用。 (3) 实时性强。本书所选案例均是近年来的真实案例,可以代表当代技术特征和需求环境,尤其是在移动互联网浪潮下重点介绍了手机视频播放App测试。本书介绍的工具均是当前常见的软件测试工具,测试方法也是时下流行的测试方法。其中,面向对象测试的内容更是符合软件测试技术的发展方向。 本书配套资源丰富,包括教学大纲、教学课件、电子教案、程序源码、习题答案, 编者还为本书的部分知识点和实验精心录制了视频。 资源下载提示 课件等资源: 扫描封底的“课件下载”二维码,在公众号“书圈”下载。 素材(源码)等资源: 扫描目录上方的二维码下载。 视频资源: 扫描封底刮刮卡中的二维码,再扫描书中相应章节中的二维码,可以在线学习。 在线练习题: 扫描封底作业系统刮刮卡中的二维码,可以在线练习。 本书可作为高等院校计算机、软件工程、软件测试等相关专业软件测试相关课程的 教材或教学参考书,也可以供从事计算机应用开发的各类技术 人员参考。 本书的编者为吕云翔、况金荣、朱涛、杨颖、张禄,曾洪立进行了 部分内容的编写以及素材整理和配套资源制作等。 由于编者能力和水平有限,书中难免存在疏漏之处,恳请各位同仁和广大读者 批评指正,也希望各位读者能将教学和学习过程中的经验和心得与我们交流分享。 编者2021年1月