前言
软件测试是软件工程的一个重要分支,是软件质量保证的重要基础。软件测试是一门动态、交叉性学科,跨越了软件工程的整个领域。软件测试实验性强,软件测试人才培养需要开展全面综合的实践训练,包括测试计划制订、测试用例设计、测试环境搭建、测试用例执行、测试结果评估和测试过程管理等。目前很多高校的计算机类专业均开设了这门课程,并配有一定学时的实验或独立安排软件测试实践课程。本书充分考虑到软件测试贯穿软件项目整个生命周期,需要用到大量测试技术和测试工具,对国内外主流的开源软件测试工具进行全面的分析、研究和精选,并结合作者近十年的软件测试教学经验,精心设计本书的实验内容,方便广大读者动手实践,提升测试技能,增强就业竞争力。
全书共7章,以软件测试流程为主线,以主流的开源软件测试工具应用为基础,深入细致地介绍各测试阶段需要用到的测试工具。
第1章软件测试管理,介绍软件测试管理各阶段和测试管理中相关测试文档的撰写。在测试管理过程中,为便于软件项目相关人员之间的交流和沟通,以及测试流程的管理,会引入软件测试管理工具。本章以TestLink为例,详细介绍了TestLink的安装、配置和使用。
第2章介绍缺陷管理的相关知识,包括缺陷分类、缺陷管理流程、缺陷报告原则。对于大型软件项目,通常离不开缺陷管理系统。本章以Mantis为例,详细介绍Mantis的安装、配置和使用。
第3章围绕代码静态测试展开,介绍了静态测试的概念、静态测试的工具。对于Java语言,分析静态测试工具Checkstyle和FindBugs,并详细地介绍它们的安装和使用,并以代码为例分析静态测试过程和方法。对于C/C++语言,介绍静态测试工具Cppcheck和PClint的安装和使用。
第4章单元测试是提高软件质量最直接和最重要的测试阶段。本章深入分析了白盒测试用例设计的方法和技术,通过典型的单元测试工具详细说明测试的过程。针对Java语言,介绍了JUnit的技术和应用流程,以及覆盖率测试工具EclEmma,并以案例方式展示JUnit实施过程。针对C++语言,介绍了CppUnit的技术、测试环境和测试过程。
第5章功能测试,介绍黑盒测试用例设计技术,分析常用的功能测试工具。针对商用测试工具QuickTest,介绍其测试原理、测试流程,并以博客系统为例介绍QuickTest实施过程。接下来介绍开源测试工具Selenium的环境配置,测试过程,以及通过JUnit和TestNG执行Selenium测试脚本的过程。
第6章以性能测试为主题,阐明性能测试相关概念,详述性能测试指标和计数器。深入细致地介绍了最流行的性能测试工具LoadRunner的功能部件: Virtual User Generator、Controller和Analysis,以博客系统为例分析LoadRunner进行性能测试的实施流程。另外,还介绍了开源的性能测试JMeter的整个使用过程。
第7章针对Web安全测试展开讨论,对Web常见攻击进行分析,阐明Web安全测试的内容和常见的Web安全测试工具。详细介绍安全测试工具AppScan的使用过程,并以博客系统为例,展现应用AppScan进行安全测试的全过程。
本书最后附有软件测试文档模板、测试工具网站等资料。
本书涉及的软件测试知识广泛,实验内容全面、案例丰富、方案完整、步骤翔实、过程清晰,可逐步引导读者深入实践各类测试工具。实验内容覆盖了软件测试全过程所涉及的测试工具,教师可根据教学实际情况进行剪裁或扩充。本书适合学生学习、教师指导实验,以及培训机构开展软件测试实训。
感谢清华大学出版社提供的这次合作机会,使本教程能够早日与读者见面。感谢范勇教授、潘娅副教授和言若金叶的王顺老师为书籍出版所提供的支持和帮助,感谢家人的理解和支持。本书的大量内容取材于互联网,由于各种原因无法找到原创者,在参考文献中无法准确标注,在此表示歉意,并对原创者表示感谢。
由于作者水平和时间的限制,书中难免存在疏漏,欢迎读者及各界同人批评指正。
编者