软件质量,软件质量管理体系
六西格玛计算:(1-缺陷数/1000000)*100%
如:某一航班到达时间的5点,一年运营200次,55次超 过5点。合格率就是72.5%。约为2sigma,要达到6sigma, 那么一百万次飞行仅有3.4次晚点,如果航班每天运行一 次,则每805年才出现一次晚点。
第3节 软件质量模型
ISO9126软件质量模型由6个特性,27个子特性组成。这个模型是软件质 量标准的核心,今后的测试工作要从这些特性去测试、评价一个软件。
➢ 容错性——软件防止外部接口错误扩散而导致系统失效的能力(主要是对外错误的隔离,即 外部接口防范)<故意更改登陆用户名及密码>
➢ 易恢复性——系统失效后,重新恢复原有的功能和性能的能力。包含两个方面:A、原有能 力恢复程度;B、原有能力恢复速度。<系统未响应时恢复的能力>
➢ 可靠性的依从性——软件产品遵循与可靠性相关的标准、约定或法规的能力。
第3节 软件质量模型
3.3 易用性
易用性——在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。 ➢ 易理解性——用户在使用软件时,系统交互给用户的信息是否准确、清晰、易懂,能帮助用
户准确理解系统当前真实状态,指导用户进一步操作。(例如宜宾编制不选招标方式和评标 方法时,不能切换到招标文件界面;系统必填项不填时不能生成标书) ➢ 易学性——软件使用户能学习其应用的能力。(例如用户手册是否有中文、帮助文档是否齐 全、控件或图标是否有回显功能等) ➢ 易操作性——软件产品使用户能易于操作和控制它的能力。(快捷键,默认操作,系统安装) ➢ 吸引性——软件产品吸引用户的能力。这主要考虑的是产品的界面等外在美观因素,这也是 一个产品质量很重要的组成部分。(GUI界面测试) ➢ 可靠性的依从性——软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力。
这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等。
第3节 软件质量模型
3.2 可靠性
可靠性——在指定条件下使用时,软件产品维持规定的性能级别的能力。可靠性的性能指标: 平均无故障时间(MTTF)、平均恢复时间(MTTR)、平均失效间隔时间(MTBF)。
➢ 成熟性——软件产品为避免软件内部的错误扩散而导至系统失效的能力(主要是对内错误的 隔离,即内部接口防范),即软件避免自身的错误、自身模块间的错误而导致整个软件的失 效。<如对导入招投标文件及接口文件进行非空检查>。
定位其故障的能力特性,以及在一定时间和成本前提下进行测试设计、测试执行的能力。) ➢ 可维护性的依从性——软件产品遵循与可维护性相关的标准或约定的能力。
第3节 软件质量模型
3.6可移植性
可移植性——软件产品从一种环境迁移到另外一种环境的能力。 ➢ 适应性——软件产品无需作相应变动就能适应不同环境的能力。即软件无需做任何变动就能
适应不同运行环境(操作系统平台、数据库平台、硬件平台)的能力。 ➢ 易安装性——尽可能少的提供选择,方便用户直接安装。如果软件由最终用户安装,那么易
安装性就可能导致对适合性与易操作性的影响。(安装文本界面、图形向导) ➢ 共存性——软件产品在公共环境中与其它软件分享公共资源共存的能力。(杀毒软件测试) ➢ 易替换性——软件产品在同样的环境下,替代另一个相同用途的软件产品的能力。(新旧软
量活动:系统测试) ➢ 使用质量:最终用户在真实环境中运行系统所感受到软件各方面特性与其目标的
符合程度。(测量活动:验收测试)
第3节 软件质量模型
3.1 功能性
功能性——当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。 ➢ 适合性——软件产品为指定的任务和用户目标提供一组适合的功能的能力。即所提供的功能
第1节 软件质量定义
1.2什么决定软件质量
流程、技术、组织是影响软件质量的铁三角,提高软件质量需要从每个 方面进行改进,同时还需要兼顾成本和进度。
流程: 从计划到策略的实现,流程就是按照这种思维方式指导软件开发的,并 且流程来源于成功的经验,可以指导项目少走弯路,从而提高软件质量, 不仅如此,流程还对项目的成本和进度控制有很大的帮助。
第3节 软件质量模型
软件质量模型中“内部质量”和“外部质量”的含义 涉及到软件生命周期的质量有以下几种,相互关系如图所示:
➢ 过程质量:过程设计的完善程度和过程执行的力度。(测量活动:SQA) ➢ 内部质量:软件开发过程中,中间过程产品的质量。(测量活动:需求分析、概
要设计、详细设计、代码评审;单元测试、粒度小的集成测试) ➢ 外部质量:软件系统作为完整的整体运行时所表现出来的各方面质量特征。(测
第1节 软件质量定义
评价实体的质量不能只是从一个角度来说它的质量好还是不好,需要从 所有的角度上来综合进行评价。 如何评价一个软件的质量? ➢ 软件有那些特性组成(功能性、可靠性、易用性、效率、维护性等) ➢ 评价的标准时什么?是需求。 ✓ 显式需求:需求说明书上列出的功能需求。 ✓ 隐式需求:需求说明书上没有列出但在程序运行中不得不处理的需求。 • 如编制系统中控制价字符控制、系统的退出功能等
第1节 软件质量定义
技术: 包括分析技术、设计技术、编码技术、测试技术等,需求是项目的灵魂,良 好的需求分析便是项目成功的关键所在,若是需求分析做不好不可避免的要 出现返工;设计,软件的质量是设计出来的,良好的设计基本上决定了软件 产品的最终质量;编码技术产生正确高效的代码;测试是保证软件的一道防 线。所以各种技术对质量来说都是很重要的。 组织: 好的组织可以有效的促进流程的实施,同时提供员工的发展通道以吸引更多 的人(技术的载体)。
➢ CMMI(Capability Maturity Model Integration)即能力成熟度模型集成,这也是美国国防 部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一 个框架中去。这个框架有两个功能,第一,软件获取方法的改革;第二,建立一种从集成 产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。
质量定义包含三个要素:实体、特性集合、需求。
第1节 软件质量定义
实体:手机、豆浆机、软件系统等 实体特性集合: 如豆浆机:
功能:能够榨豆浆、水果汁(苹果、梨、西瓜……) 性能:榨一公斤黄豆需要多长时间? 耗能:榨一公斤黄豆耗电量多少? 安全性:榨汁过程中有无人体安全防护措施?有无漏电防护? 可靠性:豆浆机能够持续运行多长时间? 易用性:豆浆机的操作是否简单、方便?
件的替换) ➢ 可移植性的依从性——软件产品遵循与可移植性相关的标准或约定的能力。
第4节 软件质量活动
软件质量活动有:软件质量保证、度量和测试。
➢ SQA(软件质量保证)和测试的关系: ✓ SQA从流程方面保证软件的质量; ✓ 测试从技术方面保证软件的质量; ✓ 只进行SQA活动或只进行测试活动不一定产生好的软件质量。
➢ 性能场景设计:
✓ 1、单用户单业务测试
2、多用户单业务测试
3、多用户多业务测试
• 1用户注册请求响应时间、消耗资源 50个用户……
50个用户注册……
•
100个用户…….
50个用户登录……
➢ 效率的依从性——软件产品遵循与效率相关的标准或约定的能力。
第3节 软件质量模型
3.5 可维护性
可维护性——软件产品可被修改的能力。修改可以包括修正、改进或软件对环境、需求和功 能规格说明变化的适应。
打印机完成打印互通;接口调用——网上招标系统与开标系统互操作、标书查看工具) ➢ 保密安全性——软件产品保护信息和数据的能力。主要两个方面:A、防止未得到授权的人
或系统访问相关的信息或数据;B、保证得到授权的人或系统能正常访问相关信息或数据。 ➢ 功能性的依从性——软件产品遵循与功能性相关的标准、约定或法规以及类似规定发能力。
第3节 软件质量模型
3.4 效率
效率——在特定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
➢ 时间特性——在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐 率的能力。即完成用户的某个功能需要的响应时间。<文件下载上传、标书导入时长>
➢ 资源利用性——在规定条件下,软件产品执行其功能时,使用合适的资源数量和类别的能力。 例如完成某个功能需要的CPU占有率、内存占有率、通信宽带等。具体的资源类别和软件产 品相关,一般要考虑CPU、内存、通信宽带、系统内部的队列资源、消息包等资源。
第2节 软件质量管理体系
CMM认证(精髓在于:过程决定质量)
➢ CMM是软件过程能力成熟度模型(Capacity Maturity Model)的简称,是卡内基-梅隆大 学软件工程研究院为了满足美国联邦政府评估软件供应 商能力的要求,于1986年开始研究 的模型,并于1991年正式推出了CMM 1.0 版。CMM自问世以来备受关注,在一些发达国 家和地区得到了广泛应用,成为衡量软件公司软件开发管理水平的重要参考因素和软件过 程改进事实上的工业标准。搜索据了解,美国、印度、日本等国家已有数十家公司通过了 CMM不同等级的认证。
➢ 易分析性——软件提供辅助手段帮助开发人员定位缺陷产生的原因,判断出修改的地方。 (降低定位缺陷的成本)
➢ 易改变性——软件产品使得指定的修改容易实现的能力。(降低修复问题的成本)<要求在设 计上封装性好、高内聚、低耦合,为未来可能的变化留有扩充的余地>
➢ 稳定性——软件产品避免由于软件修改而造成意外结果的能力。 ✓ 上面这三个特性主要是针对开发需要考虑的特性,主要影响软件的内部质量。 ➢ 易测试性——软件提供辅助性手段帮助测试人员实现其测试意图。(软件发现故障并隔离、
是用户需要的,用户需要的功能软件系统已提供。(阐述“有没有”) ➢ 准确性——软件产品提供具有所需精确度的正确或相符的结果或效果的能力。即软件除了所