《软件测试》PPT

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章软件测试基础第1章软件测试基础1.1软件质量1.2软件测试1.3软件缺陷1.4测试用例1.5软件测试分类1.6本章小结第1章软件测试基础1.1软件质量1983年,ANSI/IEEESTD729给出了软件质量的定义:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性,包括:(1)软件产品质量满足用户要求的程度;(2)软件各种属性的组合程度;(3)用户对软件产品的综合反映程度;(4)软件在使用过程中满足用户要求的程度。第1章软件测试基础软件的质量需求,从根本上说是为了引导和满足客户的需求,而软件质量具体表现在软件产品固有的特性,如产品的功能性、可靠性、易使用性、效率、可维护性、可移植性和安全性等。对于软件的质量,客户、软件产品开发人员和软件开发企业对产品质量的认识有不同的侧重点,但必须达到一个平衡点。第1章软件测试基础从客户角度看,主要从产品的功能性需求和非功能性需求来看。功能性需求主要通过各种输入完成用户所需要的各项操作,包括数据的输入和结果的输出。同时对于这些功能的使用,要求易用性要高,界面要友好。对于非功能性需求,主要体现在软件产品的性能、有效性、可靠性等方面,对于不同种类的软件其非功能性需求有很大差异,如实时软件在实时性和可靠性上的要求就非常高。从软件产品开发人员的角度来看,除客户所关注的性能外,还要关注产品的可维护性、兼容性、可扩展性和可移植性等。第1章软件测试基础对于软件开发企业来说,除了客户和开发人员所关注的重点外,软件的质量需求更多体现在市场竞争、成本控制等方面。提高软件的质量可以大大降低因质量问题产生的不良成本(如维护成本等),提高企业的利润。因此,对企业而言,质量需求主要体现在软件的功能性和非功能性需求上,如软件的功能、可维护性、可移植性、可扩展性等。第1章软件测试基础综上所述,软件质量必须兼顾客户、软件开发人员和软件开发企业对软件质量的需求。一般来说,高质量软件应具备的特性包括:(1)满足用户的需求。这是最重要的一点,一个软件如果不能够满足用户的需求,设计得再好,采用的技术再先进,也没有任何意义,即应在软件开发中遵循以用户为中心的原则。(2)合理处理进度、成本、功能的关系。一个高质量的软件在开发过程中,项目成员一定能够客观地对待这三个因素,并通过有效的计划、管理、控制,使得三者之间达成一种匹配,保证产出的最大化。第1章软件测试基础(3)具备一定的可扩展性和灵活性,能够适应一定程度的需求变化。有变化或变更就会对软件开发产生冲击,所以一个质量优秀的软件,应该能够在一定程度上适应这种变化,并保持软件的稳定性。(4)具备一定的可靠性,能够有效处理例外的情况,能够承受各种非法情况的冲击。(5)保持成本和性能的平衡。性能往往来源于客户的非功能需求,是软件质量的一个重要的评价因素。但是性能问题在任何地方都存在,所以需要客观地看待它。例如,代码可读性与可靠性之间的平衡。第1章软件测试基础软件的质量主要由项目和项目管理团队或企业专门负责质量的部门来负责,这就需要他们对项目质量有明确的认识,从而在项目执行过程中按照质量计划让项目朝着预先确定的质量目标前进。为达到软件的高质量目标,质量管理的方法、理念被不断提出、完善和创新。目前流行的软件质量管理有全面质量管理、6δ管理等。第1章软件测试基础从1961年菲根堡姆提出全面质量管理的概念开始,世界各国对它进行了全面深入的研究,使全面质量管理的思想、方法、理论在实践中不断得到应用和发展。概括地讲,全面质量管理的发展经历了以下四个阶段:(1)日本从美国引入全面质量管理。1950年戴明博士在日本开展质量管理讲座,日本人从中学习到了这种全新的质量管理的思想和方法。到1970年,质量管理已经逐步渗透到了全日本企业的基层。第1章软件测试基础(2)质量管理中广泛采用统计技术和计算机技术。从20世纪70年代开始,日本企业从质量管理中获得巨大的收益,他们充分认识到了全面质量管理的好处。日本人开始将质量管理当作一门科学来对待,并广泛采用统计技术和计算机技术进行推广和应用,全面质量管理在这一阶段获得了新的发展。第1章软件测试基础(3)全面质量管理的内容和要求得到标准化。随着全面质量管理理念的普及,越来越多的企业开始采用这种管理方法。1986年,国际标准化组织ISO把全面质量管理的内容和要求进行了标准化,并于1987年3月正式颁布了ISO9000系列标准,这是全面质量管理发展的第三个阶段。因此,我们通常所熟悉的ISO9000系列标准实际上是对原来全面质量管理研究成果的标准化。第1章软件测试基础(4)质量管理上升到经营管理层面。随着质量管理思想和方法往更高层次发展,企业的生产管理和质量管理被提升到经营管理的层次。无论是学术界还是企业界,很多知名学者如朱兰、石川馨、久米均等人,都提出了很多有关这个方面的观念和理论,“质量管理是企业经营的生命线”这种观念逐渐被企业所接受。第1章软件测试基础1.1.1软件质量保证质量保证是为了提供信用、证明项目将会达到有关质量标准,而在质量体系中进行的一系列有计划、有组织的工作活动。软件质量保证是由各种任务组成的,这些任务分别与两种不同的参与者紧密相关——进行软件开发的工程师和负责质量保证的计划、监督、记录、分析及报告工作的软件质量保证小组。软件开发工程师通过可靠的技术方法和措施,进行正式的技术评审、执行计划周密的软件测试来考虑质量问题,并保证软件的质量。而软件质量保证小组的职责是辅助软件工程小组得到高质量的最终产品。 美国CMU大学的软件工程研究所推荐了一组有关质量保证中的计划、监督、记录、分析及报告的质量保证活动。这些活动将由一个独立的质量保证小组(SQA)来执行:第1章软件测试基础(1)为项目准备质量保证计划;(2)参与开发该项目的软件过程描述;(3)复审各项软件工程活动,对其是否符合已定义好的软件过程进行核实;(4)审计软件工作产品,对其是否符合定义好的软件过程中的相关部分进行核实;(5)确保软件工作及其工作产品中的偏差已被记录,并按预定流程进行处理;(6)记录所有与相关规范或制度不符合的部分,并报告给高级管理者。第1章软件测试基础软件质量保证的目标是以独立审查方式,从第三方的角度监控软件开发任务的执行,即软件项目是否正遵循已制定的计划、标准和规程,给开发人员和管理层提供反映产品和过程质量的信息和数据,提高项目透明度,同时辅助软件工程组取得高质量的软件产品。软件质量保证的目标主要包括以下四个方面:(1)通过监控软件开发过程来保证产品质量;(2)保证开发出来的软件和软件开发过程符合相应标准与规程;(3)保证软件产品、软件编制过程中存在的与规范或制度不符合的问题得到处理,必要时将问题反映给高级管理者;(4)确保项目组制定的计划、标准和规程不仅适合项目组的需要,同时还满足评审和审计的需要。第1章软件测试基础除了以上四点之外,SQA最好还能作为软件工程过程小组(SEPG)在项目组中的延伸,能够收集项目中好的实施方法和发现实施不利的原因,为修改企业内部软件开发整体规范提供依据,为其他项目组的开发过程提供先进方法和样例。软件企业中的SQA人员既可以由全职人员担任,也可以由企业内具有相关素质、经过SQA培训的人员兼职担任。由此组成的SQA小组可能是一个真正的物理上存在的独立部门,也可以是一个逻辑上存在的平台。但不管是真正的独立部门还是逻辑上的平台,它都需要有一个灵魂人物——SQA小组组长,来组织SQA小组的日常活动。第1章软件测试基础在给一个项目组指派SQA人员时,一定要注意一点:指派的SQA人员不能是该项目组的开发人员、配置管理人员或测试人员,一个项目的SQA除了监控项目过程,完成SQA相关工作以外,不应该参与项目组的其他实质性工作,否则他会与项目组捆绑在一起,很难保持客观性。第1章软件测试基础1.1.2质量成本质量成本包含所有质量工作或者进行与质量有关的活动所导致的成本。质量成本可以划分为预防成本、质量评估成本和缺陷修复成本。预防成本主要包括:(1)质量计划;(2)技术评审/管理评审;(3)测试设备/工具;(4)培训。质量评估成本包括深入了解各个过程中产品的质量而开展的活动,主要包括:(1)过程内和过程间的审查;(2)测试设备,工具的维护;(3)测试。第1章软件测试基础缺陷修复成本是指在开发过程中和将产品交付给客户之后修复发现的缺陷所导致的成本,可以进一步划分为内部修复成本和外部修复成本。内部修复成本指产品交付前发现缺陷而引发的成本,主要由返工、修复和失败模式分析等组成。外部修复成本指产品交付给客户后所发现的缺陷带来的相关成本,如因解决客户的抱怨、退换产品、技术支持和维护等而产生的成本。第1章软件测试基础图1-1-1为Boehm所收集的数据,发现和修复一个缺陷的成本将随着我们从预防成本到质量评估、从内部修复到外部修复工作的开展而急剧增加。大量统计数据表明,质量成本由三部分组成,其预防成本所占比例最低,修复缺陷成本最高。因此,为有效降低质量成本,应将更多的精力和关注点放在质量预防上,其次是质量评估上,采用缺陷修复是不得已而为之。因此有人提出了零缺陷管理方法。质量保证中最有效的办法是预防。预防胜过检查。质量计划、设计和实施是保证项目的关键,不是项目质量出了问题采取检查弥补。预防质量问题的成本要少于纠正质量问题的成本。第1章软件测试基础图1-1-1改正一个缺陷的相对成本示意图修改一个缺陷的成本11010010001倍3~6倍10倍3~6倍15~40倍40~1000倍需求分析设计编码单元测试系统测试客户使用第1章软件测试基础1.2软件测试由于软件缺陷带来的高额修复代价使得人们更注重于规划良好的软件测试,因此软件开发组织将30%~50%的项目精力花在测试上也就不足为奇,对于那些与人的生命有关的软件(如飞行控制和医疗检测软件),在测试上所花的时间往往是其他软件工程活动时间之和的3~5倍。软件测试就好比工厂的质量检验工作,是对软件产品和阶段性工作成果进行质量检验,力求发现其中的各种缺陷,并督促修正缺陷,从而控制和保证软件产品的质量。因此,软件测试是软件公司提高软件产品质量的重要手段之一。第1章软件测试基础软件测试与质量保证的关系:规范的软件测试活动一般包括测试计划创建、测试用例设计、执行测试、更新测试文档等;而软件质量保证的活动主要有协调度量、风险管理、文档检查、促进/协助流程改进、监察测试工作。软件质量保证(SQA)的职能是向管理层提供正确的可视化的信息,从而促进与协助流程改进。SQA还充当测试工作的指导者和监督者,帮助软件测试建立质量标准、测试过程评审方法和测试流程,同时通过跟踪、审计和评审,及时发现软件测试过程中的问题,从而帮助改进测试或整个开发的流程等,因此有了SQA,测试工作就可以被客观地检查与评价,同时也可以协助测试流程的改进。而测试为SQA提供数据和依据,帮助SQA更好地了解质量计划的执行情况、过程质量、产品质量和过程改进进展,从而使SQA更好地做好下一步工作。第1章软件测试基础二者相同点:都是贯穿整个软件开发生命周期的。二者不同点:SQA侧重对流程中各过程的管理与控制,是一项管理工作,侧重于流程和方法。而测试是对流程中各过程管理与控制策略的具体执行与实施,其对象是软件产品(包括阶段性的产品),即测试是对软件产品的检验,是一项技术性的工作。测试,常常被认为是质量控制的最主要手段。第1章软件测试基础1.2.1软件测试的定义1.软件测试1979年,G.J.Myers对软件测试的定义:程序测试是为了发现错误而执行程序的过程。1983年,IEEE对软件测试的定义:使用人工或者自动的手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或者是弄清预期结果与实际运行结果之间的差别。1983年,B.hetzel对软件测试的定义:以评价一个程序或系统的属性为目标的任何一种活动;测试是对软件质量的度量。第1章软件测试基础2002年,测试的定义:使用人工或者自动手段来运行或测试被测试件的过程,其目的在于检验它是否满足规定的需求并弄清预期结果与实际结果之间的差别。它

1 / 65
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功