《(经典)软件质量,软件质量管理体系.ppt》由会员分享,可在线阅读,更多相关《(经典)软件质量,软件质量管理体系.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件测试第二讲 软件质量,班文武,2015年8月,内容简介,第1节 软件质量定义 第2节 软件质量管理体系 第3节 软件质量模型 第4节 软件质量活动,第1节 软件质量定义,1.1 什么是软件质量? ISO关于质量的定义表示如下:一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。而质量就是实体基于这些特性满足需求的程度。 质量定义包含三个要素:实体、特性集合、需求。,第1节 软件质量定义,实体:手机、豆浆机、软件系统等 实体特性集合: 如豆浆机: 功能:能够榨豆浆、水果汁(苹果、梨、西瓜) 性能:榨一公斤黄豆需要多长时间? 耗能:榨一公斤黄豆耗电量多少? 安全性:榨汁过程中有无人体安
2、全防护措施?有无漏电防护? 可靠性:豆浆机能够持续运行多长时间? 易用性:豆浆机的操作是否简单、方便?,第1节 软件质量定义,评价实体的质量不能只是从一个角度来说它的质量好还是不好,需要从所有的角度上来综合进行评价。 如何评价一个软件的质量? 软件有那些特性组成(功能性、可靠性、易用性、效率、维护性等) 评价的标准时什么?是需求。 显式需求:需求说明书上列出的功能需求。 隐式需求:需求说明书上没有列出但在程序运行中不得不处理的需求。 如编制系统中控制价字符控制、系统的退出功能等,第1节 软件质量定义,1.2什么决定软件质量 流程、技术、组织是影响软件质量的铁三角,提高软件质量需要从每个方面进行
3、改进,同时还需要兼顾成本和进度。 流程: 从计划到策略的实现,流程就是按照这种思维方式指导软件开发的,并且流程来源于成功的经验,可以指导项目少走弯路,从而提高软件质量,不仅如此,流程还对项目的成本和进度控制有很大的帮助。,技术: 包括分析技术、设计技术、编码技术、测试技术等,需求是项目的灵魂,良好的需求分析便是项目成功的关键所在,若是需求分析做不好不可避免的要出现返工;设计,软件的质量是设计出来的,良好的设计基本上决定了软件产品的最终质量;编码技术产生正确高效的代码;测试是保证软件的一道防线。所以各种技术对质量来说都是很重要的。 组织: 好的组织可以有效的促进流程的实施,同时提供员工的发展通道
4、以吸引更多的人(技术的载体)。,第1节 软件质量定义,第2节 软件质量管理体系,ISO9000:2000版标准 ISO9000不是指一个标准,而是一族标准的统称。 “ISO9000族标准”指由ISO/TC176制定的所有国际标准。TC176即ISO中第176个技术委员会,全称是“质量保证技术委员会”,成立于1979年。1987年更名为“质量管理和质量保证技术委员会”。TC176专门负责制定质量管理和质量保证技术的标准。 ISO9000是ISO/TC176制定的第9000号标准文件。 ISO9000标准即是当前国际国内贸易往来及合作中,被作为相互认可的技术基础和确认质量保证能力的依据。 企业推行
5、ISO9000,可以做到:“人人有职责、事事有程序、作业有标准、体系有监督、不良有纠正”。 ISO不具体针对某个行业的质量标准,是普遍适用的质量管理体系。,第2节 软件质量管理体系,CMM认证(精髓在于:过程决定质量) CMM是软件过程能力成熟度模型(Capacity Maturity Model)的简称,是卡内基梅隆大学软件工程研究院为了满足美国联邦政府评估软件供应 商能力的要求,于1986年开始研究的模型,并于1991年正式推出了CMM 1.0 版。CMM自问世以来备受关注,在一些发达国家和地区得到了广泛应用,成为衡量软件公司软件开发管理水平的重要参考因素和软件过程改进事实上的工业标准。搜
6、索据了解,美国、印度、日本等国家已有数十家公司通过了CMM不同等级的认证。 CMMI(Capability Maturity Model Integration)即能力成熟度模型集成,这也是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件获取方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。 过程能力等级:1.初始级(不可控)、2.可重复级(可以重复以前的过程)、3.已定义级(标准化)、4.已管理级(定量)、5.优化级(改进),第2节 软件质量管理体系,6 Sigma(六西
7、格玛) 六西格玛(Six Sigma,6 Sigma)是一种管理策略,它可以改善企业质量流程管理的技术,以”零缺陷”的完美商业追求,带动质量成本的大幅度降低,最终实现财务成效的提升与企业竞争力的突破。 它是由摩托罗拉提出的。这种策略主要强调制定极高的目标、收集数据以及分析结果,通过这些来减少产品和服务的缺陷。六西格玛背后的原理就是如果你检测到你的项目中有多少缺陷,你就可以找出如何系统地减少缺陷,使你的项目尽量完美的方法。一个企业要想达到六西格玛标准,那么它的出错率不能超过百万分之3.4。,六西格玛计算:(1-缺陷数/1000000)*100% 如:某一航班到达时间的5点,一年运营200次,55
8、次超过5点。合格率就是72.5%。约为2sigma,要达到6sigma,那么一百万次飞行仅有3.4次晚点,如果航班每天运行一次,则每805年才出现一次晚点。,ISO9126软件质量模型由6个特性,27个子特性组成。这个模型是软件质量标准的核心,今后的测试工作要从这些特性去测试、评价一个软件。,第3节 软件质量模型,第3节 软件质量模型,软件质量模型中“内部质量”和“外部质量”的含义 涉及到软件生命周期的质量有以下几种,相互关系如图所示: 过程质量:过程设计的完善程度和过程执行的力度。(测量活动:SQA) 内部质量:软件开发过程中,中间过程产品的质量。(测量活动:需求分析、概要设计、详细设计、代
9、码评审;单元测试、粒度小的集成测试) 外部质量:软件系统作为完整的整体运行时所表现出来的各方面质量特征。(测量活动:系统测试) 使用质量:最终用户在真实环境中运行系统所感受到软件各方面特性与其目标的符合程度。(测量活动:验收测试),3.1 功能性 功能性当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。 适合性软件产品为指定的任务和用户目标提供一组适合的功能的能力。即所提供的功能是用户需要的,用户需要的功能软件系统已提供。(阐述“有没有”) 准确性软件产品提供具有所需精确度的正确或相符的结果或效果的能力。即软件除了所要求的功能外,还要求能正确实现所要求的功能。(阐述“对不对
10、”)(如计算器加法测试) 互操作性软件产品与一个或更多的规定系统进行交换的能力。(例如:PC机中WORD和打印机完成打印互通;接口调用网上招标系统与开标系统互操作、标书查看工具) 保密安全性软件产品保护信息和数据的能力。主要两个方面:A、防止未得到授权的人或系统访问相关的信息或数据;B、保证得到授权的人或系统能正常访问相关信息或数据。 功能性的依从性软件产品遵循与功能性相关的标准、约定或法规以及类似规定发能力。这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等。,第3节 软件质量模型,3.2 可靠性 可靠性在指定条件下使用时,软件产品维持规定的性能级别的能力。可靠性的性能指标:平均无故
11、障时间(MTTF)、平均恢复时间(MTTR)、平均失效间隔时间(MTBF)。 成熟性软件产品为避免软件内部的错误扩散而导至系统失效的能力(主要是对内错误的隔离,即内部接口防范),即软件避免自身的错误、自身模块间的错误而导致整个软件的失效。 容错性软件防止外部接口错误扩散而导致系统失效的能力(主要是对外错误的隔离,即外部接口防范) 易恢复性系统失效后,重新恢复原有的功能和性能的能力。包含两个方面:A、原有能力恢复程度;B、原有能力恢复速度。 可靠性的依从性软件产品遵循与可靠性相关的标准、约定或法规的能力。,第3节 软件质量模型,3.3 易用性 易用性在指定条件下使用时,软件产品被理解、学习、使用
12、和吸引用户的能力。 易理解性用户在使用软件时,系统交互给用户的信息是否准确、清晰、易懂,能帮助用户准确理解系统当前真实状态,指导用户进一步操作。(例如宜宾编制不选招标方式和评标方法时,不能切换到招标文件界面;系统必填项不填时不能生成标书) 易学性软件使用户能学习其应用的能力。(例如用户手册是否有中文、帮助文档是否齐全、控件或图标是否有回显功能等) 易操作性软件产品使用户能易于操作和控制它的能力。(快捷键,默认操作,系统安装) 吸引性软件产品吸引用户的能力。这主要考虑的是产品的界面等外在美观因素,这也是一个产品质量很重要的组成部分。(GUI界面测试) 可靠性的依从性软件产品遵循与易用性相关的标准
13、、约定、风格指南或法规的能力。,第3节 软件质量模型,3.4 效率 效率在特定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。 时间特性在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力。即完成用户的某个功能需要的响应时间。 资源利用性在规定条件下,软件产品执行其功能时,使用合适的资源数量和类别的能力。例如完成某个功能需要的CPU占有率、内存占有率、通信宽带等。具体的资源类别和软件产品相关,一般要考虑CPU、内存、通信宽带、系统内部的队列资源、消息包等资源。 性能场景设计: 1、单用户单业务测试 2、多用户单业务测试 3、多用户多业务测试 1用户注册请求响
14、应时间、消耗资源 50个用户 50个用户注册 100个用户. 50个用户登录 效率的依从性软件产品遵循与效率相关的标准或约定的能力。,第3节 软件质量模型,3.5 可维护性 可维护性软件产品可被修改的能力。修改可以包括修正、改进或软件对环境、需求和功能规格说明变化的适应。 易分析性软件提供辅助手段帮助开发人员定位缺陷产生的原因,判断出修改的地方。 (降低定位缺陷的成本) 易改变性软件产品使得指定的修改容易实现的能力。(降低修复问题的成本) 稳定性软件产品避免由于软件修改而造成意外结果的能力。 上面这三个特性主要是针对开发需要考虑的特性,主要影响软件的内部质量。 易测试性软件提供辅助性手段帮助测
15、试人员实现其测试意图。(软件发现故障并隔离、定位其故障的能力特性,以及在一定时间和成本前提下进行测试设计、测试执行的能力。) 可维护性的依从性软件产品遵循与可维护性相关的标准或约定的能力。,第3节 软件质量模型,3.6可移植性 可移植性软件产品从一种环境迁移到另外一种环境的能力。 适应性软件产品无需作相应变动就能适应不同环境的能力。即软件无需做任何变动就能适应不同运行环境(操作系统平台、数据库平台、硬件平台)的能力。 易安装性尽可能少的提供选择,方便用户直接安装。如果软件由最终用户安装,那么易安装性就可能导致对适合性与易操作性的影响。(安装文本界面、图形向导) 共存性软件产品在公共环境中与其它
16、软件分享公共资源共存的能力。(杀毒软件测试) 易替换性软件产品在同样的环境下,替代另一个相同用途的软件产品的能力。(新旧软件的替换) 可移植性的依从性软件产品遵循与可移植性相关的标准或约定的能力。,第3节 软件质量模型,第4节 软件质量活动,软件质量活动有:软件质量保证、度量和测试。 SQA(软件质量保证)和测试的关系: SQA从流程方面保证软件的质量; 测试从技术方面保证软件的质量; 只进行SQA活动或只进行测试活动不一定产生好的软件质量。 SQA工作范围:1.保证制度体系;2.使用过程改进;3.指导项目实施;4.增加透明度;5.评审项目活动;6.审核工作产品;7.协助问题解决;8.提供决策
17、参考;9.进行缺陷预防;10.实现质量目标。,第4节 软件质量活动,度量 度量的概念: 度量:对事物属性量化表示。 软件度量:对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程。 度量的目的: 提高软件生产率,缩短产品研发周期,降低研发成本和维护成本。 提高软件产品质量,提高用户满意度; 为组织持续改进提供量化的指标和反馈。,第4节 软件质量活动,度量 度量的作用: 作用1:理解 通过度量,获得对过程、产品、资源等的理解,确定以后预测的基线和模型。例如:在某软件项目中,工作量、设计文档页数、缺陷总数、遗留缺陷数等都与代码规模存在一定的关系。 工作量(人天) =30.5KL
18、OC 需求文档规模(页) =4.18KLOC 缺陷总数(个) =22.5KLOC 遗留缺陷数(个) =0.45KLOC KLOC表示软件产品的千行源代码行数。,第4节 软件质量活动,度量 度量的作用: 作用2:预测 通过度量,可以理解过程、产品、项目各要素之间的关系并建立度量模型,预测就是由这些已知的要素推算、估计其他要素,以便合理分配资源、合理制定计划。以前面的项目为例,假设该项目的代码规模为14KLOC,项目组成人员是5人,由此可以预测: 工作量(人天) =30.514=427 进度(天) =4275=85.4 需求文档规模(页) =4.1814=59 缺陷总数(个) =22.514=31
19、5 遗留缺陷数(个) =0.4514=7,第4节 软件质量活动,度量 度量的作用: 作用3:评估 1、开发活动与计划的符合程度。如工作量估计偏差、进度偏差等。 2、产品质量。如软件复杂度、缺陷密度、平均失效时间间隔等。 3、新技术的影响。 作用4:改进 根据得到的量化信息,可与帮助我们识别要因、查找问题的根源,以及提高产品质量和过程效率的其他方法;与以前的量化信息比较,可以验证这些方法是否有效。,第4节 软件质量活动,度量 度量的过程: 1、识别目标:根据管理着的不同要求,分析出度量的工作目标,并根据其优先级和可行性,得到度量活动中的工作列表,并由管理者审核批准。 2、根据度量目标,定义度量过
20、程的如下内容: 收集要素:定义收集活动和分析活动所需数据要素与收集表格的形式; 收集过程:定义数据收集活动的形式、方法、角色及数据的存储和管理; 分析/反馈过程:定义数据的分析方法和分析报告的反馈形式; IT支持体系:定义IT支持的设备和工具,协助数据收集和存储、质量控制、存取控制、初加工、以及生产分析报告。,第4节 软件质量活动,度量 度量的过程: 3、数据收集:从项目中收集数据并存储原始数据,并对数据进行质量检查,生成初步的统计数据;在规定的度量活动完成后,输出汇总数据的初步统计结果。 4、数据分析与反馈:根据汇总数据初步统计结果,按照预定义的分析方法进行数据分析,找到可能的影响质量、进度
21、等属性的要因及可能的改进点;完成规定格式的分析报告,向相关的管理者和项目进行反馈。 5、过程改进:包括软件开发过程开进和软件度量过程改进。前者是根据分析报告,管理者做出决策。后者主要是根据度量活动中所发现的问题,对度量过程做出变更,以提高度量活动的效率,或者更加符合组织的商业目标。,第4节 软件质量活动,度量 度量的四个基本项: 1、规模(size):软件工作产品的大小。 举例:需求(SRS)文档页数;概要设计(HLD)文档页数;详细设计(LLD)文档页数;代码量(KLOC);UT用例数;IT用例数;ST用例数等。 2、工作量(effort):完成个软件产品和活动所用人时(或人天等)。 举例:
22、SRS所用人时数;HLD所用人时数;LLD所用人时数;编码所用人时数;测试(UT、IT、ST)计划所用人时数;测试(UT、IT、ST)方案所用人时数;测试(UT、IT、ST)用例所用人时数;测试(UT、IT、ST)执行所用人时数等。,第4节 软件质量活动,度量 度量的四个基本项: 3、进度(schedule):个软件工作产品、活动开始和结束的时间。 举例:SRS阶段开始时间、结束时间;HLD阶段开始时间、结束时间;LLD阶段开始时间、结束时间;编码阶段开始时间、结束时间;测试计划阶段开始时间、结束时间;测试方案阶段开始时间、结束时间;测试用例阶段开始时间、结束时间;测试执行阶段开始时间、结束时间。 4、缺陷(defect):在个软件工作产品和活动中产生的缺陷数。 举例:SRS评审发现缺陷数;HLD评审发现缺陷数;LLD评审发现缺陷数;编码评审发现缺陷数;UT发现缺陷数;IT发现缺陷数;ST发现缺陷数。,谢谢大家!,