现在,国内许多高校的计算机科学与技术、软件工程及其相关专业纷纷开设软件质量保证和软件测试相关课程,以培养更多的软件人才。为了适应当前教学的需要,编者查阅了大量国内外有关软件质量和测试方面的著作和文献,并结合自己多年的从业和教学经验编写了本书。本书的特点是技术介绍全面,实践和理论并重,实例多。
本书着重介绍软件质量和测试及管理技术理论中*重要、*精华的部分,注重知识点的融会贯通;而不是面面俱到,没有重点和特色。本书中既有整体框架,又有重点理论和技术。
全书分两篇,共12章。*篇软件质量包括第1~5章: 第1章软件质量概述,第2章软件质量度量和配置管理,第3章软件质量标准,第4章软件全面质量管理,第5章软件评审;第二篇软件测试包括第6~12章:第6章软件测试基础,第7章白盒测试,第8章黑盒测试,第9章集成测试,第10章系统测试,第11章软件测试自动化,第12章软件测试管理。
本书可以作为高校计算机科学与技术专业、软件工程专业及其相关专业本科生或研究生的教材,也可以作为软件开发人员、软件质量保证人员和软件测试人员的参考书,还适合广大计算机用户阅读。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
本书重点介绍软件质量和软件测试技术中*精华内容,注重知识点的融会贯通。本书适应教学需求,同时兼顾软件质量保证和软件测试技术。本书可以作为高校计算机科学与技术专业、软件工程专业的教学用书,也可以作为软件开发和软件测试人员的参考用书。
前言
随着信息技术的发展,软件已经渗透到人们生活的各个领域,成为人们生活中不可缺少的一部分。伴随软件的广泛使用,人们对软件质量的要求越来越高;同时由于软件系统变得越来越复杂,如何提高软件质量是广大计算机技术人员所关注的,这使软件开发人员和软件测试人员面临着巨大挑战。
软件质量和测试行业的理论、技术、管理和工具等都在不断更新和发展。与此同时,软件质量管理和软件测试方面的书籍也涌现出来,但将二者很好的结合的书籍却十分有限。本书是供此专业领域的学生以及软件质量管理人员和软件测试人员学习的一本很好的专业用书。本书力争做到二者兼顾: 一是兼顾了相关技术和理论知识的介绍;二是兼顾了实践的培养和自动化工具的使用。另外,本书对软件开发各个阶段的软件质量保证活动的理论、方法和应用等进行了详细的阐述,同时对软件测试的方法、测试工具和软件测试的全过程等内容进行了全面的介绍。
本书分两篇,第一篇软件质量部分的主要内容如下。
第1章软件质量概述,首先介绍了软件和软件工程,接着重点阐述了软件质量的含义以及软件质量保证和软件质量模型,最后介绍了软件缺陷的含义、产生的原因,软件缺陷的严重性、优先级、构成、预防和修复等。
第2章软件质量度量和配置管理,分别讲述了软件质量度量和软件配置管理的含义、内容和常见问题。
第3章软件质量标准,首先概述了软件质量标准,其次详细讲述了CMM和CMMI的含义、基本内容和二者的区别等内容,然后介绍了ISO 9000软件质量标准,最后介绍了其他质量标准。
第4章软件全面质量管理,讲述了软件全面质量管理的含义、步骤和评审、软件全面质量管理中的团队和质量控制。
第5章软件评审,介绍了软件评审的含义和主要内容,以及软件评审的几个阶段:需求评审、概要设计评审、详细设计评审、测试评审等内容,然后介绍了如何避免进入评审误区,最后讲述了软件评审中的角色和职能。
第二篇软件测试部分的主要内容如下。
第6章软件测试基础,从软件开发的过程入手,通过介绍软件缺陷造成的重大损失和灾难,阐述了软件测试的定义、软件测试的过程,介绍了软件测试的原则与误区,以及软件测试的发展等。第7章白盒测试,介绍了白盒测试的基本概念,详细阐述了逻辑驱动覆盖测试的几种覆盖标准: 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖和修订的条件/判定覆盖等白盒测试的方法,还介绍了其他几种白盒测试方法和代码检查方法。
第8章黑盒测试,介绍黑盒测试的基本概念,常用的黑盒测试方法,包括等价类划分、边界值分析法、因果图法、决策表法、正交实验设计法,以及其他黑盒测试方法等。
第9章集成测试,介绍了集成测试的概念、方法,集成测试用例设计,集成测试过程等。
第10章系统测试,详细阐述了系统测试方法,包括性能测试、压力测试、容量测试、健壮性测试、安全性测试、可靠性测试、兼容性测试、可用性测试、安装性测试、容错性测试、冒烟测试、GUI软件测试、文档测试、网站测试、恢复测试、协议测试、验收测试等。
第11章软件测试自动化,介绍了软件测试自动化基础,包括软件测试自动化的含义和软件测试自动化的特点,以及软件测试自动化的实施和软件测试自动化工具的选择与比较,比较详细地介绍了几款国内外著名的测试工具,即LoadRunner、WinRunner和AutoRunner。
第12章软件测试管理,介绍了如何建立软件测试管理、软件测试管理的基本内容和常用的软件测试管理工具等。
本书由傅兵撰写和统稿,韩冬、韩秉霖也参与了编写。
在本书编写过程中,参阅了很多国内外同行的著作和论文等文献资料,在此对这些资料的作者表示衷心的感谢。同时也感谢清华大学出版社给予的帮助和支持。
由于编者的水平有限,加之时间仓促,书中难免存在疏漏之处,希望专家、同行和广大读者批评指正。
编者
2017年7月前言
随着信息技术的发展,软件已经渗透到人们生活的各个领域,成为人们生活中不可缺少的一部分。伴随软件的广泛使用,人们对软件质量的要求越来越高;同时由于软件系统变得越来越复杂,如何提高软件质量是广大计算机技术人员所关注的,这使软件开发人员和软件测试人员面临着巨大挑战。
软件质量和测试行业的理论、技术、管理和工具等都在不断更新和发展。与此同时,软件质量管理和软件测试方面的书籍也涌现出来,但将二者很好的结合的书籍却十分有限。本书是供此专业领域的学生以及软件质量管理人员和软件测试人员学习的一本很好的专业用书。本书力争做到二者兼顾: 一是兼顾了相关技术和理论知识的介绍;二是兼顾了实践的培养和自动化工具的使用。另外,本书对软件开发各个阶段的软件质量保证活动的理论、方法和应用等进行了详细的阐述,同时对软件测试的方法、测试工具和软件测试的全过程等内容进行了全面的介绍。
本书分两篇,第一篇软件质量部分的主要内容如下。
第1章软件质量概述,首先介绍了软件和软件工程,接着重点阐述了软件质量的含义以及软件质量保证和软件质量模型,最后介绍了软件缺陷的含义、产生的原因,软件缺陷的严重性、优先级、构成、预防和修复等。
第2章软件质量度量和配置管理,分别讲述了软件质量度量和软件配置管理的含义、内容和常见问题。
第3章软件质量标准,首先概述了软件质量标准,其次详细讲述了CMM和CMMI的含义、基本内容和二者的区别等内容,然后介绍了ISO 9000软件质量标准,最后介绍了其他质量标准。
第4章软件全面质量管理,讲述了软件全面质量管理的含义、步骤和评审、软件全面质量管理中的团队和质量控制。
第5章软件评审,介绍了软件评审的含义和主要内容,以及软件评审的几个阶段:需求评审、概要设计评审、详细设计评审、测试评审等内容,然后介绍了如何避免进入评审误区,最后讲述了软件评审中的角色和职能。
第二篇软件测试部分的主要内容如下。
第6章软件测试基础,从软件开发的过程入手,通过介绍软件缺陷造成的重大损失和灾难,阐述了软件测试的定义、软件测试的过程,介绍了软件测试的原则与误区,以及软件测试的发展等。第7章白盒测试,介绍了白盒测试的基本概念,详细阐述了逻辑驱动覆盖测试的几种覆盖标准: 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖和修订的条件/判定覆盖等白盒测试的方法,还介绍了其他几种白盒测试方法和代码检查方法。
第8章黑盒测试,介绍黑盒测试的基本概念,常用的黑盒测试方法,包括等价类划分、边界值分析法、因果图法、决策表法、正交实验设计法,以及其他黑盒测试方法等。
第9章集成测试,介绍了集成测试的概念、方法,集成测试用例设计,集成测试过程等。
第10章系统测试,详细阐述了系统测试方法,包括性能测试、压力测试、容量测试、健壮性测试、安全性测试、可靠性测试、兼容性测试、可用性测试、安装性测试、容错性测试、冒烟测试、GUI软件测试、文档测试、网站测试、恢复测试、协议测试、验收测试等。
第11章软件测试自动化,介绍了软件测试自动化基础,包括软件测试自动化的含义和软件测试自动化的特点,以及软件测试自动化的实施和软件测试自动化工具的选择与比较,比较详细地介绍了几款国内外著名的测试工具,即LoadRunner、WinRunner和AutoRunner。
第12章软件测试管理,介绍了如何建立软件测试管理、软件测试管理的基本内容和常用的软件测试管理工具等。
本书由傅兵撰写和统稿,韩冬、韩秉霖也参与了编写。
在本书编写过程中,参阅了很多国内外同行的著作和论文等文献资料,在此对这些资料的作者表示衷心的感谢。同时也感谢清华大学出版社给予的帮助和支持。
由于编者的水平有限,加之时间仓促,书中难免存在疏漏之处,希望专家、同行和广大读者批评指正。
编者
2017年7月