前言



软件测试是软件工程的一个重要分支,是软件质量保证的重要基础,也是一门动态、交叉性学科,跨越了软件工程的整个领域。目前,很多高校的计算机专业均开设了这门课程,并配有一定学时的实验。本书充分考虑了软件测试贯穿软件项目整个生命周期,需要用到大量测试技术和测试工具,对国内外主流的开源软件测试工具进行了全面的分析、研究和精选,并结合作者近十年的软件测试教学经验,精心设计了本书的理论和实验内容,方便广大读者学习测试技术,提升测试技能,增强就业竞争力。

全书共11章,以软件测试技术为基础,以软件测试流程为主线,以主流的开源软件测试工具为辅助,深入细致地介绍各测试阶段的技术和工具。

第1章软件测试基础,介绍软件质量和软件测试的相关概念,其中包括软件质量和软件测试的定义、软件测试原则、软件测试模型、软件测试流程、软件测试分类和软件测试的自动化。

第2章软件测试过程管理,主要介绍软件测试管理各阶段和测试管理中相关文档的撰写。在测试管理过程中,为便于软件项目相关人员之间的交流和沟通,以及测试流程的管理,一般会引入软件测试管理工具。本章以TestLink为例,详尽介绍了TestLink的安装、配置和使用。

第3章软件缺陷管理,主要介绍缺陷管理的相关知识,包括缺陷相关概念、缺陷管理流程、缺陷度量等。大型软件项目通常离不开缺陷管理系统。本章以Mantis为例,详细介绍了Mantis的安装、配置和使用。

第4章静态测试技术,介绍了静态测试的概念,以及技术评审、代码检查、静态测试工具。针对Java语言,本章介绍了静态测试工具Checkstyle和FindBugs的安装和使用,并以代码为例分析静态测试的过程和方法。

第5章黑盒测试技术,重点介绍了边界值测试、等价类测试、基于判定表的测试、因果图、正交试验法和场景测试法等。

第6章白盒测试技术,重点介绍了逻辑覆盖、路径测试、数据流测试等。

第7章软件单元测试,单元测试是提高软件质量最直接和最重要的测试阶段。本章重点介绍单元测试概述、单元测试内容、单元测试过程和单元测试工具,针对Java语言应用程序的单元测试,介绍了JUnit的技术和应用流程,以及覆盖率测试工具EclEmma,并以案例方式展示JUnit的实施过程。

第8章软件集成测试,重点介绍了集成测试概述、集成测试策略和集成测试过程。集成测试策略包括基于功能分解的集成、基于调用图的集成和基于路径的集成。

第9章软件系统测试,主要介绍了系统测试概述、过程、内容和类型。

第10章软件专项测试,重点介绍了软件功能测试、软件性能测试和Web系统安全性测试,并详细介绍了性能测试工具JMeter的安装和使用过程。

第11章软件测试实验指导,介绍了各实验的内容、步骤和实验要求。

本书最后附有软件测试文档模板、测试工具网址等资料。

本书涉及的软件测试知识范围广泛,实验内容全面、案例丰富、方案完整、步骤详尽、过程清晰,可逐步引导读者深入实践各类测试工具。实验内容覆盖了软件测试全过程所涉及的测试工具,教师可根据教学实际情况进行剪裁或扩充。本书适合学生学习、教师指导实验,以及培训机构开展软件测试实训。

感谢清华大学出版社提供的这次合作机会,使本书能够早日与大家见面。本书的大量内容取材于互联网,由于各种原因无法找到原创者,在参考文献中无法准确标注,在此表示歉意,并对原创者表示感谢。 

由于编者水平和时间的限制,书中难免会出现错误,欢迎读者及各界同仁批评指正。


作者
2023年2月