《软件质量保证基本概念与方法.pptx》由会员分享,可在线阅读,更多相关《软件质量保证基本概念与方法.pptx(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程刘竹松刘竹松欢迎各位同学光临本科生课程第第12章章 软件质量保证软件质量保证本章导读本章导读 质量保证一直是质量保证一直是CMMI和和ISO9000的中心议题,是的中心议题,是微软公司和微软公司和IBM公司的重点课题,同样也是项目管理的公司的重点课题,同样也是项目管理的重要内容。重要内容。 通常,人们将通常,人们将“质量标准、配置管理、测试测量质量标准、配置管理、测试测量”,作为质量管理的三大支柱,而将作为质量管理的三大支柱,而将“SQA计划、计划、SQA进进度、度、SQA评审和审计评审和审计”,作为,作为质量管理三大要素。质量管理三大要素。 本章先论述软件质量保证的基本概念和
2、多种方法,本章先论述软件质量保证的基本概念和多种方法,后介绍后介绍IT企业软件质量保证文档书写的参考指南。企业软件质量保证文档书写的参考指南。 要求要求具体内容具体内容了解了解1) 软件质量及其相关概念的定义软件质量及其相关概念的定义2) 质量管理与控制的三个层次质量管理与控制的三个层次3) 传统软件工程中质量管理的弱点传统软件工程中质量管理的弱点4) 同行评审同行评审5) 软件质量保证管理文档软件质量保证管理文档理解理解1) 从四个方面来改进软件质量从四个方面来改进软件质量2) CMM/CMMI改进软件质量的方法改进软件质量的方法3) 软件组织内部的软件组织内部的“七化原则七化原则”和和“五
3、报一例制五报一例制度度”关注关注1) CMM2的的“软件质量保证软件质量保证SQA”过程过程2) 软件质量保证计划软件质量保证计划的编写方法的编写方法12.1 软件质量基本概念软件质量基本概念 1. 软件质量及相关概念的定义软件质量及相关概念的定义 【定义定义12-1】所谓软件质量,就是供方提供的软件所谓软件质量,就是供方提供的软件产品满足用户产品满足用户明确和隐含明确和隐含需求的能力特性的需求的能力特性的总和总和。 【定义定义12-2】所谓软件产品,就是供方交付给用户所谓软件产品,就是供方交付给用户使用的一套计算机程序、数据以及相关文档。使用的一套计算机程序、数据以及相关文档。 【定义定义1
4、2-3】所谓供方,就是向用户提供产品的组所谓供方,就是向用户提供产品的组织。供方有时又称承包方。织。供方有时又称承包方。 通过上述定义,知道了软件质量是什么,以及意味通过上述定义,知道了软件质量是什么,以及意味着什么。在此之前,可能不知道这么多概念,只知道好着什么。在此之前,可能不知道这么多概念,只知道好的软件的特点是功能强、性能优、易使用、易维护、可的软件的特点是功能强、性能优、易使用、易维护、可移植、可重用。移植、可重用。 什么样的软件是质量好的软件?什么样的软件是质量好的软件? 事实上,不同的人对软件质量有不同的评价和看法:事实上,不同的人对软件质量有不同的评价和看法: (1 1)用户用
5、户认为,功能、性能、接口满足了需求就是好软件。认为,功能、性能、接口满足了需求就是好软件。 (2 2)营销营销人员认为,客户群大且能卖个好价钱就是好软件。人员认为,客户群大且能卖个好价钱就是好软件。 (3 3)管理管理者认为,软件开发的进度、成本、质量(功能者认为,软件开发的进度、成本、质量(功能+ +性性能能+ +接口)在计划的控制范围内就是好软件。接口)在计划的控制范围内就是好软件。 (4 4)开发开发者认为,易维护、可移植、可重用就是好软件。者认为,易维护、可移植、可重用就是好软件。 上述众多观点不无道理,但都是从各自的利益出发的。应当上述众多观点不无道理,但都是从各自的利益出发的。应当
6、说上述评价和看法的说上述评价和看法的汇总汇总,才是货真价实的好软件。,才是货真价实的好软件。 2. 质量管理与控制的三个层次质量管理与控制的三个层次 (1) 事先的事先的预防预防措施:制订软件过程开发措施:制订软件过程开发规范规范和软件和软件产品质量产品质量标准标准,对软件开发和管理人员进行这方面知识,对软件开发和管理人员进行这方面知识和技能的定向培训;和技能的定向培训;(规范是对行为的约束、标准是对规范是对行为的约束、标准是对产品的约束、产品的约束、规程规程是对操作的约束是对操作的约束) (2) 事中的事中的跟踪监控跟踪监控措施:按照措施:按照CMM/CMMI或或ISO9000的过程管理思想
7、,对软件过程和软件产品的质的过程管理思想,对软件过程和软件产品的质量控制提供可视性管理;量控制提供可视性管理; (3) 事后的事后的纠错纠错措施:对软件工作产品和软件产品加措施:对软件工作产品和软件产品加强评审和检测。强评审和检测。评审评审是在宏观上框住您,在微观上挑剔是在宏观上框住您,在微观上挑剔您,找出不符合项。您,找出不符合项。检测检测是为了发现是为了发现Bug,改正错误。,改正错误。 结论:软件质量保证措施,应以提前预防和实时跟结论:软件质量保证措施,应以提前预防和实时跟踪踪为主为主,以事后测试和纠错,以事后测试和纠错为辅为辅。 3. 传统软件工程中质量管理的弱点传统软件工程中质量管理
8、的弱点 在传统在传统软件工程软件工程中,由于没有完全吸收中,由于没有完全吸收CMMI和和ISO9000的质量管理思想,因而对软件质量的定义是的质量管理思想,因而对软件质量的定义是较模糊的,如表较模糊的,如表12-2所示。所示。 按照这些定义,对软件阶段产品和软件最终产品的按照这些定义,对软件阶段产品和软件最终产品的测试、评审和评价,也是较模糊的。因为它主要不是根测试、评审和评价,也是较模糊的。因为它主要不是根据据用户需求报告用户需求报告中,对中,对“功能、性能、接口功能、性能、接口”的具的具体要求,记录并跟踪体要求,记录并跟踪“不符合项不符合项”是否为零,而是考虑是否为零,而是考虑“正确性、健
9、壮性、完整性、可用性、可理解性、可移正确性、健壮性、完整性、可用性、可理解性、可移植性、灵活性植性、灵活性”等抽象指标,往往使测试人员和评审人等抽象指标,往往使测试人员和评审人员感到有点无所事从。员感到有点无所事从。 序号序号质量因素质量因素质量因素的定义质量因素的定义1正确性正确性系统满足规格说明书和用户目标的程度。系统满足规格说明书和用户目标的程度。2健壮性健壮性在意外环境或错误操作下,系统做出适当响应的在意外环境或错误操作下,系统做出适当响应的程度。程度。3完整性完整性对未经授权的人使用系统的企图,系统能够控制对未经授权的人使用系统的企图,系统能够控制的程度。的程度。4可用性可用性系统完
10、成预定的功能时,令人满意的程度。系统完成预定的功能时,令人满意的程度。5可理解性可理解性 系统的理解和使用的容易程度。系统的理解和使用的容易程度。6可维修性可维修性 诊断和改正发现的错误所需的工作量大小。诊断和改正发现的错误所需的工作量大小。7灵活性灵活性修改或改进系统,需要的工作量多少。修改或改进系统,需要的工作量多少。8可测试性可测试性 系统容易测试的程度。系统容易测试的程度。9可移植性可移植性 移植到另一种平台中运行所需资源的多少。移植到另一种平台中运行所需资源的多少。10可再用性可再用性 软件系统的可复用程度。软件系统的可复用程度。11互运行性互运行性 与其他系统集成,所需的工作量多少
11、。与其他系统集成,所需的工作量多少。12.2 软件质量保证方法软件质量保证方法 1. 从四个方面来改进软件质量从四个方面来改进软件质量 (1) 力图从编程语言上实现突破。已经从机器语言、力图从编程语言上实现突破。已经从机器语言、汇编语言、面向过程的语言、面向数据的语言,发展到汇编语言、面向过程的语言、面向数据的语言,发展到面向对象、面向构架的语言。面向对象、面向构架的语言。 (2) 力图从力图从CASE工具上实现突破。这些工具有:工具上实现突破。这些工具有:OracleDesigner,PowerDesigner,ERwin,Rose,San Francisco,北大青鸟系统,分行业的业务基础
12、平,北大青鸟系统,分行业的业务基础平台。台。 (3) 力图从软件过程管上实现突破。如力图从软件过程管上实现突破。如CMMI,ISO9000,微软企业文化,微软企业文化,IBM企业文化。企业文化。 (4) 力图从测试与纠错上实现突破。先后出现了各力图从测试与纠错上实现突破。先后出现了各种测试方法、工具和纠错手段。种测试方法、工具和纠错手段。 2. CMM改进软件质量的方法改进软件质量的方法 CMM认为:它的认为:它的18个关键过程域,每一个都跟质量个关键过程域,每一个都跟质量管理有关,质量管理体现在每一个管理有关,质量管理体现在每一个KPA的验证之中。当的验证之中。当前,针对软件质量进行保证的问
13、题,最有效的办法还是前,针对软件质量进行保证的问题,最有效的办法还是下面五个方法的汇集:下面五个方法的汇集: (1) 面向面向CMM2的的KPA“软件质量保证软件质量保证”(SQA:Software Quality Assurance)方法。方法。 (2) 面向面向CMM3的的KPA“同行评审同行评审”(PR:Peer Reviews)方法。方法。 (3) 面向面向CMM4的的KPA“软件质量管理软件质量管理”(SQM:Software Quality Management)方法。方法。 (4) 面向面向CMM5的的KPA“缺陷预防缺陷预防”(DP:Defect Prevention)方法。方
14、法。 (5) 软件质量保证的其他措施。软件质量保证的其他措施。 3. CMM2的的“软件质量保证软件质量保证SQA”过程过程 (1) 首先,通过监控软件的开发过程,来保证产品的首先,通过监控软件的开发过程,来保证产品的质量;质量; (2) 其次,保证软件产品及软件开发过程,符合相应其次,保证软件产品及软件开发过程,符合相应的标准与规程;的标准与规程; (3) 最后,保证软件产品、软件过程中存在的不符合最后,保证软件产品、软件过程中存在的不符合项问题得到处理,必要时将问题反映给高级管理者。项问题得到处理,必要时将问题反映给高级管理者。 结合这三项内容,结合这三项内容,CMM2的软件质量保证手段主
15、要的软件质量保证手段主要有三项:有三项:“审计、评审和处理不符合项审计、评审和处理不符合项”。审计是检查。审计是检查做没做,做了多少,以及按什么标准和规范做的。评审做没做,做了多少,以及按什么标准和规范做的。评审是检查干得好不好,是否还存在不符合项。处理不符合是检查干得好不好,是否还存在不符合项。处理不符合项是跟踪纠错过程,直至改正为止。项是跟踪纠错过程,直至改正为止。 4. CMM3的软件质量保证手段的软件质量保证手段“同行评审同行评审” 俗话说,隔行如隔山,所以外行不能参与评审。同俗话说,隔行如隔山,所以外行不能参与评审。同行评审是指同行进行软件产品验证的活动,其目的是为行评审是指同行进行
16、软件产品验证的活动,其目的是为了及早和高效地从软件工作产品中识别并消除缺陷。与了及早和高效地从软件工作产品中识别并消除缺陷。与技术评审不同,同行评审的对象一般是部分软件工作产技术评审不同,同行评审的对象一般是部分软件工作产品,重点是发现软件工作产品中的缺陷。品,重点是发现软件工作产品中的缺陷。 所谓同行,是指和开发者在被评审的软件工作产品所谓同行,是指和开发者在被评审的软件工作产品上有相同的开发经验和知识的人员。一般来讲,不建议上有相同的开发经验和知识的人员。一般来讲,不建议管理者作为同行,参与同行评审,也不应使用同行评审管理者作为同行,参与同行评审,也不应使用同行评审的结果去评价产品开发者的
17、功过是非。的结果去评价产品开发者的功过是非。 有人会说:同行是有人会说:同行是“冤家冤家”。没关系,因为同行评。没关系,因为同行评审是挑剔,是找缺陷,审是挑剔,是找缺陷,“冤家冤家”更好。更好。 5. CMM4的软件质量保证手段的软件质量保证手段“软件质量管理软件质量管理” CMM4的的“软件质量管理软件质量管理”目的是:建立对项目的目的是:建立对项目的软件产品质量的定量了解,以便实现特定的质量目标,软件产品质量的定量了解,以便实现特定的质量目标,例如在流程、时间、功能、性能、接口、界面上的特定例如在流程、时间、功能、性能、接口、界面上的特定需求目标。为此,要对软件工作产品,实施内容丰富的需求
18、目标。为此,要对软件工作产品,实施内容丰富的特定测量计划,进行质量的定量管理。特定测量计划,进行质量的定量管理。 6. CMM5的软件质量保证手段的软件质量保证手段“缺陷预防缺陷预防” CMM5的的“缺陷预防缺陷预防”目的是:鉴别缺陷的原因,目的是:鉴别缺陷的原因,并防止它们再次发生。具体做法有:建立项目缺陷分析并防止它们再次发生。具体做法有:建立项目缺陷分析的工程数据库,字段有:的工程数据库,字段有:“缺陷编号、缺陷名称、缺陷缺陷编号、缺陷名称、缺陷类型、缺陷部位、缺陷原因、影响范围、发生频率、发类型、缺陷部位、缺陷原因、影响范围、发生频率、发生时间、所属项目生时间、所属项目”等。将分析结果
19、,尤其是带普遍价等。将分析结果,尤其是带普遍价值的过程更改,通知组织中的其他软件项目组。值的过程更改,通知组织中的其他软件项目组。 7CMMI软件质量保证的措施软件质量保证的措施 CMMI更关注软件质量管理与控制。在更关注软件质量管理与控制。在CMMI的的24个过程域中,直接与质量管理有关的过程域个过程域中,直接与质量管理有关的过程域有有9个:个: (1)需求管理过程域需求管理过程域,目的就是管理项目的产,目的就是管理项目的产品和产品构件的需求,标识需求与项目计划、工品和产品构件的需求,标识需求与项目计划、工作产品之间的不一致性,并解决不一致性问题。作产品之间的不一致性,并解决不一致性问题。
20、(2)度量和分析过程域度量和分析过程域,目的就是开发和维持,目的就是开发和维持用于支持管理信息需要的度量能力。用于支持管理信息需要的度量能力。CMMI软件质量保证的措施软件质量保证的措施(续续) (3)项目计划过程项目计划过程,包括定义度量和度量的内容。度,包括定义度量和度量的内容。度量就是测量,分析就是统计与决策。量就是测量,分析就是统计与决策。 (4)过程和产品质量保证过程域过程和产品质量保证过程域,目的就是对过程及,目的就是对过程及相关工作产品进行客观评价,提供给项目成员和管理部相关工作产品进行客观评价,提供给项目成员和管理部门。强调同行评审与审计,交流和解决不一致问题。门。强调同行评审
21、与审计,交流和解决不一致问题。 (5)验证过程域验证过程域,目的就是保证所选的工作产品符合,目的就是保证所选的工作产品符合特定的需求。验证是个增量过程,它从需求验证开始,特定的需求。验证是个增量过程,它从需求验证开始,经历工作产品的验证,直到最后完整产品的验证。经历工作产品的验证,直到最后完整产品的验证。 (6)确认过程域确认过程域,目的就是证明工作产品和产品构件,目的就是证明工作产品和产品构件,当它们处于其计划的环境中时,能完成其计划的用途。当它们处于其计划的环境中时,能完成其计划的用途。CMMI软件质量保证的措施软件质量保证的措施(续续) (7)组织级过程性能过程域组织级过程性能过程域,目
22、的就是建立和维护组,目的就是建立和维护组织标准过程集性能的定量理解,且提供过程性能数据、织标准过程集性能的定量理解,且提供过程性能数据、基线和模型来定量地管理组织的项目。基线和模型来定量地管理组织的项目。 (8)项目定量管理过程域项目定量管理过程域,目的就是定量地管理项目,目的就是定量地管理项目的已定义过程,从而实现项目已建立的质量和过程性能的已定义过程,从而实现项目已建立的质量和过程性能目标。目标。 (9)因果分析和解决方案过程域因果分析和解决方案过程域,目的就是识别发生,目的就是识别发生缺陷和其他问题的原因,采取行动来预防其将来再次发缺陷和其他问题的原因,采取行动来预防其将来再次发生。生。
23、 结论:质量来源于过程,过程需要改进,改进需求结论:质量来源于过程,过程需要改进,改进需求量模型,改进是无止境的,这就是量模型,改进是无止境的,这就是CMMI精神!精神! CMMI精神万岁!精神万岁! 8. 软件质量保证的其他措施软件质量保证的其他措施 除了除了CMM/CMMI外,为了抓好软件质量管理,软外,为了抓好软件质量管理,软件组织的高层经理和项目经理,还应该大力提倡并严格件组织的高层经理和项目经理,还应该大力提倡并严格执行执行“七化原则七化原则”,即在软件质量管理中,管理人员要,即在软件质量管理中,管理人员要做到:行为规范化,报告制度化,报表统一化,数据标做到:行为规范化,报告制度化,
24、报表统一化,数据标准化,信息网络化,管理可视化,措施及时化。准化,信息网络化,管理可视化,措施及时化。 为了执行好上述为了执行好上述“七化原则七化原则”,在软件组织内部的,在软件组织内部的各个项目中,还要建立各个项目中,还要建立“五报一例制度五报一例制度” :日报表、:日报表、周报表、月报表、里程碑报表、重大事件报表和例会制周报表、月报表、里程碑报表、重大事件报表和例会制度。实行度。实行“高层经理抓月报,部门经理抓周报,项目经高层经理抓月报,部门经理抓周报,项目经验抓日报验抓日报”的上、中、下三层的管理方法。的上、中、下三层的管理方法。12.3 评审在质量保证中的作用评审在质量保证中的作用 从
25、大量的软件实践中得知,正式评审工作被认为是从大量的软件实践中得知,正式评审工作被认为是尽早发现软件缺陷,降低软件成本的最有效手段。尽早发现软件缺陷,降低软件成本的最有效手段。 软件缺陷的发现时间,同缺陷修正的成本呈幂次关软件缺陷的发现时间,同缺陷修正的成本呈幂次关系。根据系。根据IBM的研究结果,假定在分析阶段发现的错误的研究结果,假定在分析阶段发现的错误其改正成本为其改正成本为1个货币单位,那么在测试之前(设计编个货币单位,那么在测试之前(设计编码阶段)发现一个错误的修改成本约为码阶段)发现一个错误的修改成本约为6.5个货币单位,个货币单位,在测试时(集成测试、系统测试和验收测试)发现一个在
26、测试时(集成测试、系统测试和验收测试)发现一个错误的修改成本约为错误的修改成本约为15个货币单位,而在发布之后(已个货币单位,而在发布之后(已经交到用户手上)发现一个错误的修改成本约为经交到用户手上)发现一个错误的修改成本约为60100个货币单位。该比例同样也适用于发现一个错误需个货币单位。该比例同样也适用于发现一个错误需要的时间代价。要的时间代价。评审在质量保证中的作用评审在质量保证中的作用01020304050607080分 析 阶 段 设 计 阶 段 编 码 阶 段 测 试 阶 段 发 布 阶 段单 位 缺 陷 修 改 成 本单 位 缺 陷 发 现 时 间正式评审会议的流程正式评审会议的
27、流程 1. 评审会议的准备评审会议的准备 涉及的角色有:创建者、评审负责人、检查者。涉及的角色有:创建者、评审负责人、检查者。 涉及的文档有:评审检查单。涉及的文档有:评审检查单。 (1)创建者负责陈述评审目标;提交工作产品及其规创建者负责陈述评审目标;提交工作产品及其规范;与评审负责人一起选择检查者,并分配角色。范;与评审负责人一起选择检查者,并分配角色。 (2)评审负责人负责计划、安排和组织评审活动,与评审负责人负责计划、安排和组织评审活动,与创建者一起选择检查者。评审负责人应该从创建者处将创建者一起选择检查者。评审负责人应该从创建者处将评审产品的内容准备齐全,并打包发送给检查者。评审评审
28、产品的内容准备齐全,并打包发送给检查者。评审负责人还要询问每个检查者的准备时间,确定会议准备负责人还要询问每个检查者的准备时间,确定会议准备是否充分,如果不充分,应重新安排会议时间。是否充分,如果不充分,应重新安排会议时间。 (3)检查者:检查工作产品,发现其缺陷,提出问题,检查者:检查工作产品,发现其缺陷,提出问题,并且记录到评审检查单中。并且记录到评审检查单中。正式评审会议的流程正式评审会议的流程(续续) 2. 评审会议的召开评审会议的召开 涉及的新角色有:阅读人和记录人。创建者、评涉及的新角色有:阅读人和记录人。创建者、评审负责人、检查者在此阶段,有新的工作任务。审负责人、检查者在此阶段
29、,有新的工作任务。 涉及的文档有:评审会议记录,记录评审过程中涉及的文档有:评审会议记录,记录评审过程中确定的软件缺陷。确定的软件缺陷。 评审负责人:召开会议,介绍参与者,说明其角评审负责人:召开会议,介绍参与者,说明其角色,陈述评审的目标,指导检查者将精力集中于发色,陈述评审的目标,指导检查者将精力集中于发现缺陷,而不是解决方法。提醒参与者评论要针对现缺陷,而不是解决方法。提醒参与者评论要针对正在评审的工作产品,而不是创建者。正在评审的工作产品,而不是创建者。正式评审会议的流程正式评审会议的流程(续续) 阅读人:向评审小组展示工作产品的各部分。阅读人:向评审小组展示工作产品的各部分。 检查者
30、:提出缺陷检查者:提出缺陷、问题问题、疑问疑问、改进建议。改进建议。 创建者:解答问题,简短回答提出的问题,使检查创建者:解答问题,简短回答提出的问题,使检查者进一步了解工作产品,从而帮助发现缺陷。者进一步了解工作产品,从而帮助发现缺陷。 记录人:详细的记录到问题日志上。记录人:详细的记录到问题日志上。 3. 评审会议的跟踪评审会议的跟踪 涉及的新角色有:审核者。涉及的新角色有:审核者。 涉及的文档有:评审会议跟踪表,由审核者跟踪软涉及的文档有:评审会议跟踪表,由审核者跟踪软件缺陷的修复情况,并详细记录到评审会议跟踪表中。件缺陷的修复情况,并详细记录到评审会议跟踪表中。 审核者:进行跟踪,确定
31、正式评审会议上确定的缺审核者:进行跟踪,确定正式评审会议上确定的缺陷都被按照改进意见修改了,填写评审会议确信跟踪表。陷都被按照改进意见修改了,填写评审会议确信跟踪表。12.4 软件质量保证文档软件质量保证文档12.4.1 质量保证文档质量保证文档12.4.2 质量保证管理文档质量保证管理文档软件质量保证计划任务进度表软件质量保证计划任务进度表是软件质量保证的管理文档。但是软件质量保证的管理文档。但是,最重要的质量管理文档是:是,最重要的质量管理文档是:不符合项跟踪表不符合项跟踪表、软件质软件质量保证活动度量表量保证活动度量表。 不符合项跟踪表不符合项跟踪表,是由,是由SQA成员根据评审记录编制的管成员根据评审记录编制的管理文档,它是为了验证被评审的工作产品的符合性理文档,它是为了验证被评审的工作产品的符合性(正确性正确性),以,以达到跟踪其偏差率的目的:达到跟踪其偏差率的目的: (1) 当偏差率超过当偏差率超过30%时,工作产品要重做;时,工作产品要重做; (2) 当偏差率超过当偏差率超过20%时,工作产品要大改;时,工作产品要大改; (3) 当偏差率超过当偏差率超过10%时,工作产品要小改;时,工作产品要小改; (4) 当偏差率超过当偏差率超过1%时,工作产品要修正;时,工作产品要修正; (5) 只有当偏差率为零时,工作产品评审才通过。只有当偏差率为零时,工作产品评审才通过。
限制150内