《软件测试与质量保证》朱东杰,孙玉山主编|(epub+azw3+mobi+pdf)电子书下载

图书名称:《软件测试与质量保证》

【作 者】朱东杰,孙玉山主编
【丛书名】工业和信息化部“十二五”规划教材
【页 数】 218
【出版社】 哈尔滨:哈尔滨工业大学出版社 , 2017.07
【ISBN号】978-7-5603-5924-3
【价 格】32.00
【分 类】软件-测试-软件质量-质量管理
【参考文献】 朱东杰,孙玉山主编. 软件测试与质量保证. 哈尔滨:哈尔滨工业大学出版社, 2017.07.

图书封面:

图书目录:

《软件测试与质量保证》内容提要:

本书分为两部分:*部分先介绍软件测试的概念,然后按照软件测试过程,分别对单元测试、集成阶段、系统测试、回归测试、验收测试进行介绍,*后介绍自动化测试工具的使用以及与现阶段热门的“互联网”相关的App测试方法和工具的使用方法;第二部分介绍软件质量保证的相关概念,重点介绍关键型软件的质量标准,软件质量保证团队与计划,当代软件质量管理与标准,统计软件质量保证等方面的相关概念与技术。

《软件测试与质量保证》内容试读

第一部分软件测试

第1章

软件测试技术相关概念

1.1软件测试概述

1.1.1软件测试的定义

软件测试(Software Testing)是描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试是软件质量保证(Software Quality

Assurance,SQA)的重要子域。

Glenford J.Myers曾对软件测试的目的提出以下观点:

(1)测试是为了发现程序中的错误而执行程序的过程。

(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

(3)成功的测试是发现了至今为止尚未发现的错误的测试。

(4)测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。

(5)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。

(6)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。

(7)根据测试目的的不同,可分为回归测试、压力测试和性能测试等,分别是为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。

1.1.2软件测试的原则

从不同的角度出发,软件测试会派生出两种不同的测试原则。从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷:从开发者的角度出发,就是希望通过测试能表明软件产品不存在错误,已经正确地实现了用户的需求,因此提出这样一组测试原则:

(1)所有软件测试都应追溯到用户需求。

(2)应当把“尽早和不断地测试”作为开发者的座右铭。

(3)完全测试是不可能的,测试需要终止

(4)制订严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。

(5)应按测试对象所处环境来设计测试用例。

4

软件测试与质量保证

(6)测试错误结果,应按测试对象所处环境进行举一反三,看其具有普遍性还是唯性。

(7)回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。

(8)妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。

(9)测试无法显示软件潜在缺陷

(10)充分注意测试中的群集现象,根据80/20原则,80%的错误与系统20%的程序模块有关。

(11)程序员应避免检查自己的程序。

(12)避免测试的随机性,要有组织、有计划、有步骤地测试。

1.1.3软件测试的目标

软件测试的目标如下:

(1)发现一些可以通过测试避免的开发风险。

(2)实施测试来降低所发现的风险

(3)确定测试何时可以结束

(4)在开发项目过程中将测试看作是一个标准项目。

1.1.4软件测试的过程

软件测试的过程如下:

(1)对要执行测试的产品/项目进行分析,确定测试策略,制订测试计划。该计划被审核批准后转向下一步。测试工作启动前一定要确定正确的测试策略和指导方针,这些是后期工作的基础。只有将本次的测试目标和要求分析清楚,才能决定测试资源的投入。

(2)设计测试用例。要根据测试需求和测试策略来设计测试用例,如果进度压力不大,应进行详细设计:如果进度、成本压力较大,则应保证测试用例覆盖到关键性的测试需求。该用例被批准后转向下一步。

(3)如果满足“启动准则”(Entry Criteria),那么执行测试。执行测试主要是搭建测试环境,执行测试用例。执行测试时要进行进度控制、项目协调等工作。

(4)提交缺陷。进行缺陷审核和验证等工作。

(5)消除软件缺陷。在通常情况下,开发经理需要审核缺陷,并进行缺陷分配。程序员修改自己负责的缺陷。程序员修改完成后,进入到回归测试阶段。如果满足“完成准则"(Exit Criteria),则正常结束测试。

(6)撰写测试报告。对测试进行分析,总结本次的经验教训,在下次工作中进行改进软件测试过程管理主要包括软件测试是什么样的过程,如何评价一个软件测试过程,如何进行配置管理以及测试风险分析与测试成本管理。

1.1.5软件测试的内容

软件测试的内容包括验证(Verification)和确认(Validation)。

第1章软件测试技术相关概念

·5

1.验证

验证是保证软件正确实现一些特定功能的一系列活动,即保证软件以正确的方式做了这个事件(Do it right)。

(1)确定软件生存周期中的一个给定阶段的产品是否达到前阶段所确立的需求的过程。

(2)程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。

(3)评审、审查、测试、检查和审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致,进行判断和提出报告。

2.确认

确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性,即保证软件做了你所期望的事情(Do the right thing)。

(1)静态确认。不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。

(2)动态确认。通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。

软件测试的对象不仅仅是程序测试,还应包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档及详细设计文档。当然,软件测试的主要对象还是源程序。

1.1.6软件测试的分类

软件测试从不同角度考虑,其分类也不同。

按是否关心软件内部结构和具体实现的角度划分为:

(1)白盒测试。

(2)黑盒测试。

(3)灰盒测试

按是否执行程序的角度划分为:

(1)静态测试

(2)动态测试

按软件开发的过程阶段划分为:

(1)单元测试

(2)集成测试。

(3)系统测试。

(4)验收测试

(5)回归测试

(6)测试。

(7)B测试。

具体来说,单元测试是集中对用源代码实现的每个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能:集成测试把已测试过的模块组装起来,主要对与设计相关

6

软件测试与质量保证

的软件体系结构进行测试:系统测试是把已经经过确认的软件纳人实际运行环境中,与其他系统组合在一起进行测试:验收测试是系统开发生命周期方法论的一个阶段,相关的用户和独立测试人员根据测试计划和结果对系统进行测试和接收:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误;α测试是由一个用户在开发环境下进行的测试,也可以是公司内部用户在模拟实际操作环境下进行的受控测

试;B测试是由软件的多个用户在一个或多个实际使用环境下进行的测试,开发者通常不在

现场。

本书将从软件开发过程按阶段划分为读者详细介绍软件测试的方法、过程及相关工具。

1.2软件测试现状

由于软件开发中会出现很多错误或缺陷,而且市场对软件质量重要性的认识逐渐增强,因此软件测试在软件项目实施过程中的重要性日益突出。但现实情况是,与软件编程比较,软件测试的地位和作用还没有真正受到重视,很多人(甚至是软件项目组的技术人员)还存在对软件测试的认识误区,这进一步影响了软件测试活动的开展和软件测试质量的真正提高。

1.误区之一:软件开发完成后进行软件测试

般认为,软件开发要经过以下几个阶段:需求分析、概要设计、详细设计、软件编码、软件测试及软件发布。据此,认为软件测试只是软件开发的一个过程。这是不了解软件测试周期的错误认识。软件测试是一系列过程活动,包括软件测试需求分析、测试计划设计、测试用例设计及执行测试。因此,软件测试贯穿于软件项目的整个生命过程。在软件项目的每个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开发与软件测试应该是交互进行的,例如,单元编码需要单元测试,模块组合阶段需要集成测试。如果等到软件编码结束后才进行测试,那么测试的时间将会很短,测试的覆盖面将很不全面,测试的效果也会大打折扣。更严重的是,如果此时发现软件需求阶段或概要设计阶段出错,要修复该类错误则会耗费大量的时间和人力。

2.误区之二:软件发布后如果发现质量问题,则是软件测试人员的错

这种认识很打击软件测试人员的积极性。软件中的错误可能来自软件项目中的各个过程,软件测试只能确认软件存在错误,不能保证软件没有错误,因为从根本上讲,软件测试不可能发现全部的错误。从软件开发的角度看,软件的高质量不是软件测试人员测出来的,而是靠软件生命周期的各个过程设计出来的。软件出现错误,不能简单地归结为某一个人的责任,有些错误的产生可能不是技术原因,而是来自于混乱的项目管理。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。

3.误区之三:软件测试要求不高,随便找个人做就行

很多人都认为软件测试就是安装和运行程序,点点鼠标、按按键盘的工作,这是由于不了解软件测试的具体技术和方法而造成的。随着软件工程学的发展和软件项目管理经验的提高,软件测试已经形成了一个独立的技术学科,演变成了一个具有巨大市场需求的行业

···试读结束···

阅读剩余
THE END