软件质量控制

1、软件质量控制的理念

  • 高质量的过程产生高质量的产品。建立好的软件工程过程模型,监督在项目实施过程中与该模型的一致性,通过控制开发过程的质量实现最终的软件质量目标。

  • 质量不是指定给某个人或某个组织的责任,而是软件开发过程中所涉及的每一个人的责任。

  • 软件质量控制的作用就是要求每一个人在履行其职责时都要有质量观念。

2、软件质量的定义

  • ISO8492的定义:
    质量是产品或服务所满足明示或暗示需求能力的特征和特征的集合。
  • ISO9000(2000版)的定义:
    质量是一组固有特性满足要求的程度。
  • IEEE的定义:
    软件产品满足规定和隐含的与需求能力有关的全部特征和特性:
    • 软件产品质量满足用户要求
    • 软件各种属性的组合程度
    • 用户对软件产品的综合反映程度
    • 软件在使用过程中满足用户要求的程度
  • RUP的定义:
    (1)满足或超出认定的一组需求;
    (2)使用经过认可的测评方法和标准来评估;
    (3)使用认定的流程来生产。

3、质量的属性

客户属性:质量是相对客户而存在的,也是质量相对性的一种体现。

成本属性:也可以称为质量的经济性,质量越好的产品,带给社会的损失就越小。

社会属性:质量很多时候体现的是一种理念,它与社会的价值有直接的关系。

可测性:产品的质量好坏将取决于对相应特征的衡量,质量的可测性决定可质量的可控制性。

可预见性:可以预测质量再不同过程中的结果。

4、客户与质量的关系

(1)质量是相对客户而存在的,客户与质量的基本关系是相互依赖的关系,质量服务于客户,因客户而存在,质量由客户判定。

(2)客户是质量的接收者,可以直接观察或感觉到质量的存在。

5、软件缺陷的专业名词

缺点(defect)    偏差(variance)    谬误(fault)    失败(failure)    错误(error)

问题(problem)  矛盾(inconsistency)  毛病(incident)   异常(anomy)

6、软件缺陷的表现形式

  • 功能、特性没有实现或部分实现
  • 设计不合理,存在缺陷
  • 实际运行结果和预期结果不一致
  • 运行出错,包括运行中断、系统崩溃、界面混乱
  • 数据结果不正确、精度不够
  • 用户不能接受的其他问题,如存取时间过长、界面不美观等

7、软件缺陷产生的原因

  • 项目期限的压力
  • 产品的复杂度
  • 沟通不良(开发—客户、开发—领导、领导—客户)
  • 开发人员的疲劳、压力或受到干扰(经常加班,领导给的压力)
  • 缺乏足够的知识、技能和经验(从未涉及过的领域)
  • 不了解客户的需求(客户自己都不理解想要什么)
  • 缺乏动力(需要奖金、加班费等)
  • 技术问题:算法错误,计算和精度问题等等

8、软件质量范围——3A

Accountability(可说明性)—用户可以基于产品或服务的描述和定义进行使用。(用户手册)

Availability(有效性)—产品或服务队友99.999%的客户总是有效的,(性能测试、恢复测试)

Accessibility(易用性)—对于用户,产品或服务非常容易使用并且一定是非常有用的功能(确认测试、用户可用性测试)

9、RUP软件质量的三个维度

(1)功能(Functionality):按照既定意图和要求,执行指定用例的能力。
(2)可靠性(Reliability):软件健壮性(Robust)和可靠性(防故障能力,如防止崩溃、内存丢失等能力)、资源利用率、                                                    代码完整性以及技术兼容性。
(3)性能(Performance):用来衡量系统占用系统资源(CPU时间、内存)和系统响应、表现的状态。

10、高质量的软件

        应该是相对无产品缺陷(Bug Free)或只有极少量的缺陷,它能够准时交付用户并且所用的费用都是在预算内的并且满足客户需求,是可维护的。但是,有关质量的好坏最终评价依赖于用户的反馈。

11、软件质量特性类图

软件质量控制

12、软件过程的质量因素

  • 项目计划过程:和客户的沟通能力、软件产品特性定义的方法、项目计划策略、评审的流程、范围、方式和程度、协同工作流程、合同和用户管理流程和方法、文档编写、管理等的规范和流程。
  • 项目设计过程:软件产品指标的定义和解释、设计流程、设计标准、协同工作流程、文档编写、管理等的规范和流程。
  • 项目实施过程:变更控制流程、执行过程跟踪方法、流程和相适应的系统、缺陷处理流程、文档编写、管理等的规范和流程。
  • 软件维护过程:变更控制流程、用户反馈、相应处理机制、回归测试流程。
  • 软件商业环境过程:软件改进的策略、产品开发模式、市场定位、产品标准等。

13、软件质量方针

        质量方针,是由组织的最高管理者正式发布的、该组织的质量宗旨、目标和质量方向,并形成文件。质量方针是企业经营总方针的组成部分,是企业管理者对质量的指导思想和承诺。建立质量方针和质量目标为组织提供了关注的焦点,在一个质量管理体系中起着关键作用。质量方针应体现软件公司的组织目标、顾客的期望/需求和组织内部质量行为的准则。

14、软件质量控制

        质量控制是一个设定标准(根据质量要求)、测量结果,判定是否达到了预期要求,对质量问题采取措施进行补救并防止再发生的过程,质量控制已不再仅仅是检验,而更多地倾向于确保生产出来的产品满足要求的过程控制。

15、软件质量改进

        质量改进是质量管理的一部分,是不断为改进软件开发过程、产品和服务的持续过程。同时,为确保有效性、效率或可追溯性,组织应注意识别需要改进的项目和关键质量要求,考虑改进所需的过程,以增强组织体系、改进过程和产品并提高满足要求的能力。