[精选]Chp1软件质量的概念

上传人:我**** 文档编号:183739743 上传时间:2021-06-12 格式:PPTX 页数:48 大小:160.83KB
返回 下载 相关 举报
[精选]Chp1软件质量的概念_第1页
第1页 / 共48页
[精选]Chp1软件质量的概念_第2页
第2页 / 共48页
[精选]Chp1软件质量的概念_第3页
第3页 / 共48页
[精选]Chp1软件质量的概念_第4页
第4页 / 共48页
[精选]Chp1软件质量的概念_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《[精选]Chp1软件质量的概念》由会员分享,可在线阅读,更多相关《[精选]Chp1软件质量的概念(48页珍藏版)》请在金锄头文库上搜索。

1、第1章 软件质量的概念,1,软件质量保证与测试,内容提要,软件质量的概念 软件质量模型 软件缺陷,2,软件质量保证与测试,什么是软件质量?,质量大师Philip B. Crosby关于质量指出: 质量管理的问题不在于人们不知道什么是质量,问题在于人们认为他们自己知道什么。 软件质量 每个人在某种条件下都需要它,每个人都觉得自己理解它却又不愿意解释它。每个人都认为实现它只需遵从自然趋势。大多数人认为问题都是由他人引起的。 某些开发者认为软件质量是在编码之后才应该开始担心。(错误!),3,软件质量保证与测试,质量的概念,词典对质量的定义是: 典型的或本质的特征; 事物固有的或区别于其他事物的特征或

2、本质; 优良或出色的程度。 世界著名的质量管理专家朱兰(Juran)对“质量”给出的含义:满足使用要求的基础是质量特征,产品的任何特性(性质、属性等)、材料或满足使用要求的过程都是质量特征。 ISO给出的质量定义:产品或服务满足明示或暗示需求能力的特性和特征的集合。,4,软件质量保证与测试,质量的概念,客户概念与质量息息相关。质量和客户两者相对存在。 站在不同层面或角度对质量有不同的理解 先验证观点:质量是产品的一种可以认识但不可定义的性质 基于价值观点:质量依赖于顾客愿意付给产品报酬的数量 产品观点:质量是联结产品固有性质的纽带 生产者观点:质量是产品性能符合规格要求的程度 用户观点:质量是

3、满足使用目的的程度 内部用户和外部用户 外部用户:产品的实际使用者,一般意义上的客户 内部用户:生产环节中下一道工序的接受者,5,软件质量保证与测试,质量的概念,从质量的定义和不同的理解中可以看到,质量是满足客户需求的特征。(核心含义) 质量似乎不是客观的,因为没有什么科学仪器可以直接测出质量来;质量似乎也不是主观的,因为它不仅存在于人们的脑海中。其实,质量应该是客观存在的,但是测度它的方法却是主观的。 软件质量与传统意义上的质量概念并无本质差别,只是针对软件的某些特性进行了调整。,6,软件质量保证与测试,软件质量的内涵,Software Quality Assurance and Measu

4、rement:a Worldwide Perspective:软件产品满足明示或暗示需求能力的特性和特征的集合。 Stephen Kan在Metrics and Models in Software Quality Engineering在质量定义中客户的角色必须明确指出,即:满足客户的需求。,7,软件质量保证与测试,软件质量,Fisher和Light在Definitions in Software Quality Management中的质量定义:(表征)计算机系统卓越程度的所有属性的集合。 在Donald Reifer的State of the Art in Software Qualit

5、y Management一书,有如下定义:软件产品满足明示需求程度的一组属性的集合。,8,软件质量保证与测试,软件质量的概念,定义很抽象,我们可以用“人的健康”来类比解释软件质量。 古时候人们以为长得结实、饭量大就是健康,这显然是不科学的。 现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等。如果上述因素都合格,那么表明这人是健康的。如果某个因素不合格,则表明此人在某个方面不健康,医生会对症下药。,9,软件质量保证与测试,软件质量的概念,通过类比,可以这样理解软件质量: 软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。人们通过改

6、善软件的各种质量属性,从而提高软件的整体质量(否则无从下手)。,10,软件质量保证与测试,软件质量,软件质量(狭义): “无缺陷” 提供用户所需的功能 能够正常工作 软件质量(以顾客为中心的定义): 质量是以顾客的需要为开始,以顾客满意为结束的。 软件质量是软件产品满足使用要求的程度。,11,软件质量保证与测试,软件质量,“运行正确”的程序就是高质量的程序吗? -正确性只是反映软件质量的一个因素而已。,12,软件质量保证与测试,软件质量,人们对软件质量的看法和标准随着计算机硬件和软件技术的不断发展而变化。 早期,计算机内存容量有限,执行速度不高 软件质量强调正确性、程序的效率 随着计算机硬件发

7、展,软件规模与复杂性增加 软件质量强调可靠性、易理解性、可维护性和效率等,即由效率第一转向清晰第一,13,软件质量保证与测试,软件质量,较全面的软件质量评价体系,一般从以下方面考虑: 软件结构方面 内部结构清晰,易于阅读理解,便于修改和维护 外部具有良好的人机界面,方便用户应用 功能与性能方面 能够按照既定要求工作,能够排除非法输入和处理意外事件 开发标准与文档方面 符合明确成文的开发标准,遵循一些软件开发准则 文档资料齐全,(隐含的需求),14,软件质量保证与测试,软件质量,不同的人从各自要求出发,对软件质量有不同的要求。 开发商/管理人员 用户 维护人员 不同性质和用途的软件,可能有不同的

8、质量要求 实时控制软件 常规办公事务软件 ,符合一定标准,在计划的经费和进度范围内实现所需功能,要求使用方便,执行效率高,要求文档资料清晰完整,可靠性,易用性、可移植性,15,软件质量保证与测试,什么是软件质量,软件质量是指软件符合的程度 明确定义的功能和性能需求 明确规定的开发标准和准则 隐含要求的其他特性,16,软件质量保证与测试,软件质量,软件质量反映的三方面问题 1. 软件需求是度量软件质量的基础。 2. 在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就难以得到保证。 3. 往往会有一些隐含的需求没有明确提出来。如果软件只满足

9、那些精确定义了的需求而没有满足这些隐含的需求,软件质量也难以得到保证。,17,软件质量保证与测试,什么是软件质量,高质量的软件 能够按照预期的时间和成本提交给用户,并能够按照预期要求正确工作的软件 Scope Time Cost,18,软件质量保证与测试,软件质量,重要的理念:商业目标决定质量目标。提高软件质量的最终目的是为了赢利,而不是创造完美无缺的产品。因此对于普通商业软件而言,并不是“质量越高越好”,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。,19,软件质量保证与测试,软件质量的不同视角,用户主要感兴趣的是如何使用软件、软件性能和使用软件的效果。 是否具有所需要的

10、功能; 可靠程度如何; 效率如何; 使用是否方便; 环境开放的程度如何(即对环境、平台的限制,与其他软件连接的限制) ,20,软件质量保证与测试,软件质量的不同视角,开发者更关心的是软件产品开发相关的一些属性,而非单纯的软件使应用。 软件是否易于维护 软件是否易于移植 软件组件等是否易于重用 软件产品是否易于测试 ,21,软件质量保证与测试,软件质量模型,从软件质量的定义得知软件质量是通过一定的属性集来表示其满足使用要求的程度,那么这些属性集包含的内容就显得很重要了。 软件的质量属性很多,如正确性、精确性,健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测

11、试性、可维护性、灵活性等。 计算机界对软件质量的属性进行了较多的研究,得到了一些有效的质量模型,包括McCall模型、Boehm模型、ISO9126模型。,22,软件质量保证与测试,McCall质量模型,23,软件质量保证与测试,Boehm分层质量模型(p.6),Boehm模型始于软件的整体效用,从系统交付后涉及不同类型的用户考虑。 第一种用户是初始顾客,系统做了顾客期望的事,顾客对系统非常满意; 第二种用户是要将软件移植到其他软硬件系统下使用的客户; 第三种用户是维护系统的程序员。 三种用户都希望系统是可靠有效的。因此,Boehm模型反映了对软件质量的全过程理解,即软件做了用户要它做的;有效

12、地使用系统资源;易于用户学习和使用;易于测试和维护。,24,软件质量保证与测试,ISO/IEC9126质量模型,外部和内部质量模型,25,软件质量保证与测试,软件质量特性,功能性(正确性):软件所实现的功能满足用户需求的程度。 可靠性:在规定的时间和条件下,维持其性能水准的程度。 易用性:用户掌握软件操作所要付出的时间及努力程度。 效率:软件执行某项功能所需计算机资源(含时间)的有效程度。 易维护性:当环境改变或软件发生错误时,执行修改或恢复所做努力的程度。,26,软件质量保证与测试,软件质量特性,易测试性:对软件测试以保证其无错误和满足其规约的难以程度。 易移植性:将一个程序从一个计算机系统

13、或环境移到另一个计算机系统或环境的容易程度。 完整性:保护软件不被未经同意的存储和使用的能力。 灵活性:当软件操作环境改变或软件发生错误时,执行修改或恢复所做努力的程度。 易复用性:复用一个软件或其部分的难以程度。 互用性:将一个软件系统和其他软件系统组合在一起的难以程度。,27,软件质量保证与测试,使用中质量模型,28,软件质量保证与测试,软件缺陷,软件在它的生命周期内各个阶段都可能发生问题,发生问题的情况和形式是各不相同的,大家都习惯使用“bug软件缺陷”这个词描述这些问题,它包含一些偏差、谬误或错误,更多地表现在功能上的失败(failure)和实际需求的不一致,即矛盾(inconsist

14、ency)。因此,统一对软件缺陷的认识,是测试项目成功的基础。,29,软件质量保证与测试,软件缺陷IEEE标准 729,从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。 软件缺陷是软件在生命周期各个阶段存在的不满足给定需求属性的问题。,30,软件质量保证与测试,软件缺陷,对于软件缺陷的定义,通常有下列5条描述 软件未达到产品描述表明的功能。 软件出现了产品描述指明不会出现的错误。 软件功能超出产品描述指明范围。 软件未达到产品描述虽未指出但应达到的目标。 软件测试人员认为软件难以理解、不易使用、运行速度缓

15、慢,或者最终用户认为不好。,31,软件质量保证与测试,软件失败的术语描述,缺陷(defect) 问题 (problem) 谬误 (fault) 矛盾(inconsistency) 失败(failure) 偏差(variance) 毛病 (incident) 特殊(feature) 异常 (anomaly) 错误 (error) 缺陷(bug),32,软件质量保证与测试,软件失败的术语描述,软件错误(error) 在软件生存期内的不希望或者不可接受的人为错误。 软件缺陷(defect) 存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,Bug是口语化的缺陷。缺陷在没有被激活的状态下

16、,软件可以正常运行,但是一旦在某一触发条件下,缺陷被激活,软件内部就会出现故障。 软件故障(fault) 软件运行过程中出现的一种不希望或不可接受的内部状态。此时,如果没有适当的处理措施的话,软件故障就会导致软件失效。 软件失效(failure) 软件运行时产生的一种不希望或不可接受的外部行为结果。比如死机就是一种严重的软件失效。软件失效是软件用户所能直接感受到的。当软件出现失效时,必然说明软件中存在缺陷。,33,软件质量保证与测试,软件缺陷的特征,“看不到” 软件的特殊性决定了缺陷不易看到 “看到但是抓不到” 发现了缺陷,但不易找到问题发生的原因所在,34,软件质量保证与测试,软件测试是软件工程中的重要环节,软件产品质量是企业的重要目标 软件缺陷不可能避免 软件测试是发现缺陷的手段,35,软件质量保证与测试,软件缺陷被引入的时间,开发阶段 规格说明书 设计环节 编码 修复缺陷时也可能产生新的缺陷 修改代码后一定要进行回归测试!,36,软件质量保证与测试,典型的软件缺陷产生的原因,需求解释有错误; 用户需求定义错误; 需求记录错误; 设计说明有误; 编码说明有误;,程序代码有误; 数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号