1、软件测试与质量保证软件测试与质量保证课件课件第第1章章 软件质量的概念软件质量的概念 软件测试与质量保证软件测试与质量保证课件课件内容提要内容提要本章包含三个方面的内容:本章包含三个方面的内容:1.1 软件质量的概念软件质量的概念 1.2 软件质量模型软件质量模型 1.3 软件缺陷软件缺陷 软件测试与质量保证软件测试与质量保证课件课件1.1 软件质量的内涵软件质量的内涵 v表征计算机系统卓越程度的所有属性的集合。表征计算机系统卓越程度的所有属性的集合。Fisher Fisher和和LightLightv软件产品满足明示需求程度的一组属性的集合。软件产品满足明示需求程度的一组属性的集合。Dona
2、ld Reifer Donald Reiferv软件产品满足使用要求的程度。软件产品满足使用要求的程度。袁玉宇袁玉宇软件测试与质量保证软件测试与质量保证课件课件1.2 软件质量模型软件质量模型 本小节包含三个方面的内容:本小节包含三个方面的内容:1.2.1 McCall模型模型1.2.2 Boehm模型模型1.2.3 ISO9126模型模型软件测试与质量保证软件测试与质量保证课件课件1.2 软件质量模型软件质量模型 概述:概述:计算机界对软件质量的属性进行了较多的研究,计算机界对软件质量的属性进行了较多的研究,得到了一些有效的质量模型,包括得到了一些有效的质量模型,包括McCall模型、模型、
3、Boehm模模型、型、ISO9126模型。模型。软件测试与质量保证软件测试与质量保证课件课件1.2.1 McCall模型模型 正确性正确性完整性完整性可靠性可靠性可用性可用性承受承受可改可改变能变能力力新环境适应能力操作特性可维护性可维护性灵活性灵活性可测试性可测试性可移植性可移植性可重用性可重用性可互操作性可互操作性效率效率软件测试与质量保证软件测试与质量保证课件课件1.2.2 Boehm质量模型质量模型 1、Boehm质量模型见质量模型见P6图图1-22、Boehm质量模型的特点:质量模型的特点:vBoehm质量模型为分层结构。质量模型为分层结构。vBoehm质量模型包含了质量模型包含了M
4、cCall模型中没有的硬件特性。模型中没有的硬件特性。vBoehm质量模型从软件的整体效用,并考虑了系统交付后质量模型从软件的整体效用,并考虑了系统交付后不同类型的用户的需求,因此,不同类型的用户的需求,因此,Boehm模型反映了对软件模型反映了对软件质量的全过程理解,即软件做了用户要它做的;有效地使用质量的全过程理解,即软件做了用户要它做的;有效地使用系统资源;易于用户学习和使用;易于测试和维护。系统资源;易于用户学习和使用;易于测试和维护。软件测试与质量保证软件测试与质量保证课件课件1.2.3 ISO/IEC9126质量模型质量模型 external and internal qualit
5、yfunctionalityreliabilitymaturityfault tolerancerecoverabilityusabilityunderstandabilitylearnabilityoperabilityattractivenessefficiencytime behaviourresource utilisationmaintainabilityanalysabilitychangeabilitystabilitytestabilityportabilityadaptabilityinstallabilityco-existencereplaceabilitysuitabi
6、lityaccuracyinteroperabilitysecurityfunctionality compliancereliability complianceusability complianceefficiency compliancemaintainability complianceportability complianceISO/IEC9126ISO/IEC9126质量模型分为质量模型分为3 3个:内部质量模型,外部质个:内部质量模型,外部质量模型和使用量模型和使用质量质量模型。外部和内部质量模型如下,使用模型。外部和内部质量模型如下,使用中模型见中模型见P7P7图图1-41
7、-4软件测试与质量保证软件测试与质量保证课件课件1.2.3 ISO/IEC9126质量模型质量模型 1 1、内部质量、内部质量内部质量是内部质量是站在站在开发人员和质量保证人员开发人员和质量保证人员的角度,从的角度,从内部观点出发内部观点出发评判评判软件产品软件产品的质量的质量特性。特性。内部质量特征主要包括:可维护性、灵活性、可移植内部质量特征主要包括:可维护性、灵活性、可移植性、可重用性、可读性、可测试性、可理解性。性、可重用性、可读性、可测试性、可理解性。软件测试与质量保证软件测试与质量保证课件课件1.2.3 ISO/IEC9126质量模型质量模型 2 2、外外部质量部质量外部质量是外部
8、质量是站在站在开发人员和质量保证人员开发人员和质量保证人员的角度,从的角度,从外部观点出发评判软件产品的质量特性,外部观点出发评判软件产品的质量特性,即在预定的系统即在预定的系统环境中运行时可能达到的质量水平。环境中运行时可能达到的质量水平。外部质量特征主要包括:正确性、可用性、效率、外部质量特征主要包括:正确性、可用性、效率、可靠性、完整性、适应性、精确性、坚固性。可靠性、完整性、适应性、精确性、坚固性。软件测试与质量保证软件测试与质量保证课件课件1.2.3 ISO/IEC9126质量模型质量模型 3 3、使用使用质量质量使用质量是从用户观点出发,来看待软件产品用于特使用质量是从用户观点出发
9、,来看待软件产品用于特定环境和条件下的质量,反映的是从用户角度看到的软件定环境和条件下的质量,反映的是从用户角度看到的软件产品在适当系统环境下满足其需求的程度。产品在适当系统环境下满足其需求的程度。使用质量用以下质量特征表述使用质量用以下质量特征表述:有效性、生产率、安有效性、生产率、安全性、满意程度等。全性、满意程度等。软件测试与质量保证软件测试与质量保证课件课件1.3 软件缺陷软件缺陷 本小节包含四个方面的内容:本小节包含四个方面的内容:1.3.0 软件缺陷案例软件缺陷案例1.3.1 软件缺陷的定义软件缺陷的定义1.3.2 软件缺陷产生的原因软件缺陷产生的原因1.3.3 软件缺陷的分类软件
10、缺陷的分类软件测试与质量保证软件测试与质量保证课件课件1.3.0 软件缺陷案例软件缺陷案例案例案例1 美国迪斯尼公司的狮子王游戏软件美国迪斯尼公司的狮子王游戏软件bug 案例案例2 美国航天局火星登陆事故美国航天局火星登陆事故 案例案例3 跨世纪跨世纪“千年虫千年虫”问题问题 案例案例4 爱国者导弹防御系统炸死自家人爱国者导弹防御系统炸死自家人 案例案例5 Windows 2000 中文输入法漏洞中文输入法漏洞案例案例6 金山词霸金山词霸bug案例案例7 英特尔奔腾浮点除法缺陷英特尔奔腾浮点除法缺陷软件测试与质量保证软件测试与质量保证课件课件1.3.1 软件缺陷的定义软件缺陷的定义1、IEEE
11、 Standard 729 对软件缺陷的定义:见对软件缺陷的定义:见P82、袁玉宇的定义、袁玉宇的定义:见见P8软件测试与质量保证软件测试与质量保证课件课件1.3.1 软件缺陷的定义软件缺陷的定义3、软件缺陷的判断标准:、软件缺陷的判断标准:(1)软件未实现产品说明书要求的功能。)软件未实现产品说明书要求的功能。(2)软件出现了产品说明书指明不会出现的错误。)软件出现了产品说明书指明不会出现的错误。(3)软件超出实现了产品说明书提到的功能。)软件超出实现了产品说明书提到的功能。(4)软件未实现产品说明书虽未明确指出但应该实现的目标。)软件未实现产品说明书虽未明确指出但应该实现的目标。(5)软件
12、难以理解,不易使用,运行缓慢或者终端用户认为不)软件难以理解,不易使用,运行缓慢或者终端用户认为不好。好。软件测试与质量保证软件测试与质量保证课件课件1.3.2 软件缺陷产生原因软件缺陷产生原因 软件缺陷的产生是不可避免的,通过分析造成软件缺陷的产生是不可避免的,通过分析造成软件缺软件缺陷的原因可以归纳为如下三个方面:陷的原因可以归纳为如下三个方面:软件测试与质量保证软件测试与质量保证课件课件1.3.2 软件缺陷产生原因软件缺陷产生原因(1)技术问题技术问题v算法错误。算法错误。v计算计算和精度问题。和精度问题。v系统结构不合理,造成系统性能问题系统结构不合理,造成系统性能问题。v接口参数不匹
13、配出现问题接口参数不匹配出现问题。软件测试与质量保证软件测试与质量保证课件课件1.3.2 软件缺陷产生原因软件缺陷产生原因(2)团队工作v系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难。v不同阶段的开发人员相互理解不一致,软件设计对需求分析结果的理解偏差,编程人员对系统设计规格说明书中某些内容重视不够,或存在着误解。v设计或编程上的一些假定或依赖性,没有得到充分的沟通。软件测试与质量保证软件测试与质量保证课件课件1.3.2 软件缺陷产生原因软件缺陷产生原因(3)软件本身v文档错误、内容不正确或拼写错误。v数据考虑不周全引起强度或负载问题。v对边界考虑不够周全,漏掉某几个边界条
14、件造成的错误。v对一些实时应用系统,保证精确的时间同步,否则容易引起时间上不 协调、不一致性带来的问题。v没有考虑系统崩溃后在系统安全性、可靠性的隐患。v硬件或系统软件上存在的错误。v软件开发标准或过程上的错误。软件测试与质量保证软件测试与质量保证课件课件1.3.2 软件缺陷产生原因软件缺陷产生原因 软件缺陷的组成 软件缺陷是由很多原因造成的,规格说明书是软件缺陷出现最多的地方,如下图:软件测试与质量保证软件测试与质量保证课件课件1.3.2 软件缺陷产生原因软件缺陷产生原因 软件产品规格说明书为什么是软件缺陷存在最多的地方,主要原因有以下几种。v用户一般是非计算机专业人员,软件开发人员和用户的
15、沟通存在较大困难,对要开发的产品功能理解不一致。v由于软件产品还没有设计、开发、完全靠想象去描述系统的实现结果,所以有些特性还不够清晰。v需求变化的不一致性。用户的需求总是在不断变化的,这些变化如果没有在产品规格说明书中得到正确的描述,容易引起前后文,上下文的矛盾。v对规格说明书不够重视,在规格说明书的设计和写作上投入的人力,时间不足。v没有在整个开发队伍中进行充分沟通,有时只有设计师或项目经理得到比较多的信息。软件测试与质量保证软件测试与质量保证课件课件1.3.3 软件缺陷的分类软件缺陷的分类1.软件缺陷的分类标准(软件缺陷的分类标准(6个):个):以出现相应错误的开发阶段来划分;以出现相应
16、错误的开发阶段来划分;以以造成的危害程度来划分造成的危害程度来划分;以解决难度来划分;以解决难度来划分;以不解决会产生的风险来划分;以不解决会产生的风险来划分;根据异常出现的频率来划分。根据异常出现的频率来划分。以产生的技术类型来分。以产生的技术类型来分。软件测试与质量保证软件测试与质量保证课件课件1.3.3 软件缺陷的分类软件缺陷的分类2、以以造成的危害程度来划分造成的危害程度来划分:见见P113、以产生的技术类型来分:见、以产生的技术类型来分:见P11软件测试与质量保证软件测试与质量保证课件课件补充内容:软件缺陷的特征补充内容:软件缺陷的特征v“看不到看不到”软件的特殊性决定了缺陷不易看到
17、软件的特殊性决定了缺陷不易看到v“看到但是抓不到看到但是抓不到”发现了缺陷,但不易找到问题发生的原因所在发现了缺陷,但不易找到问题发生的原因所在软件测试与质量保证软件测试与质量保证课件课件补充内容:软件测试和缺陷修复的代价补充内容:软件测试和缺陷修复的代价软件在从需求、设计、编码、测试一直到交付用户公开使用后的过软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用缺陷或修复问题的费用呈几何级数增长呈几何级数增长。图1-4 软件缺陷在不同阶段发现时
18、修复的费用示意图0 02020404060608080100100编制说明书编制说明书设计阶段设计阶段编写代码编写代码测试测试发布发布软件测试与质量保证软件测试与质量保证课件课件小结软件测试是提高软件质量的重要手段,软件测试的概念相对于软件质量而软件测试是提高软件质量的重要手段,软件测试的概念相对于软件质量而存在。软件质量是软件产品满足使用要求的程度,满足程度是由软件的特征和存在。软件质量是软件产品满足使用要求的程度,满足程度是由软件的特征和特征集决定的。软件缺陷是软件在生命周期各个阶段存在的一种不满足给定需特征集决定的。软件缺陷是软件在生命周期各个阶段存在的一种不满足给定需求属性的问题。在开发阶段,有三次机会可能引入缺陷,并在开发的其他过程求属性的问题。在开发阶段,有三次机会可能引入缺陷,并在开发的其他过程中将这些缺陷传播演变为其他缺陷。在修复缺陷时,是产生缺陷的又一个机会。中将这些缺陷传播演变为其他缺陷。在修复缺陷时,是产生缺陷的又一个机会。软件规格说明为什么是引入软件缺陷的最多的地方。对软件缺陷进行分类,确软件规格说明为什么是引入软件缺陷的最多的地方。对软件缺陷进行分类,确定软件缺陷修复优先级是节约资源的最佳手段。定软件缺陷修复优先级是节约资源的最佳手段。