软件质量保证-概述

  • 软件质量不等于符合需求规格说明书。

  • 质量维度:FURPS

    • 功能测试:验证系统执行预期要求的用例场景
    • 易用性测试:从用户角度关注美学、UI、用户文档等
    • 可支持性测试:验证软件系统能否按预期正确配置。包括安装测试、卸载配置、配置测试。
    • 可靠性测试:验证应用能可靠的执行,在执行过程中不易失效(宕机、挂起、内存泄漏),包括完整、结构、压力、竞争、容积测试等
    • 性能测试:正常负载情况下能否正确可靠工作。包括benchmark测试、负载测试、性能配置测试。
  • 更细致的质量划分:
    软件质量保证-概述

    • 统称为服务质量QoS/非功能性需求。
  • 软件质量的定义:软件质量保证-概述

软件质量模型

  • McCall质量模型:
    • 产品操作:正确性、可靠性、有效性、完整性、易用性
    • 产品修复:可维护性、易测试性、适应性
    • 产品转变:可移植性、可重用性、互操作性
  • 产品操作质量因子:
    软件质量保证-概述
    软件质量保证-概述
  • 质量标准:
    软件质量保证-概述
    • 改进所有质量因子不可行
    • 质量因子并非完全独立
    • 有些是负相关关系
    • 有些正相关关系
  • ISO/IEC 9126质量模型:
    • 软件质量保证-概述
  • 质量子特性:
    • 软件质量保证-概述
  • 不同:
    • 前关注内部质量,后强调对用户可见的属性。
    • 11质量因子。6质量特征
    • 前多对多。后一对多
    • 不同特性高低层级不同

软件质量保证(Software Quality Assurance, SQA)

  • 定义:确保软件产品自诞生起到消亡止的全生周期的质量活动,即确定、达到和维护所需要的软件质量而进行的所有有计划的系统性管理活动。
  • 目标:
    • 保证软件开发及其维护符合功能与技术需求;
    • 保证软件开及其维护符管理需求;
    • 为实现前两个目标,组织一些活动来改进软件开发效率和维护效率。
  • 软件质量保证活动:
    • 项目前活动:
      • 合同评审:确保用户需求清断、确保项目规划和源需求估计合理、对参与项目的专业员工的能力进行评审、评估客户能否正常履行合同、并对开发风险进行评估。
      • 制定开发计划:开发进度及人员安排进行规划,明确所需要的硬件资源、开发工具、过程管理方式,确定与合作伙伴的分工与协作。
      • 制定质量计划:明确质量目标、并将质量目标分解为多个可量化的子目标,明确每个阶段开始和结束的质量标准,给出较为详细的评审、测试、验证及确认活动的安排。
    • 软件生命周期中的质量活动
      • 开发阶段和运维阶段:主要活动包括各种评审、听取专家意见、进行软件测试、执行软件维护、保证合作伙伴的工作质量等。
    • 基础设施方面:
      • 过程和工作指导
      • 纠正措施
      • 提供的各种模板和检查清单
      • 配置管理
      • 对员工的培训和能力认证
      • 各类文档管理
      • 预防措施
    • 管理方面的质量活动:
      • 进度管理
      • 人员管理
      • 成本管理
      • 维护合同控制
      • 软件质量度量
      • 软件质量成本
    • 软件质量标准:主要目标是使用国际专业知识,改进与其它组织质量系统的协调,对质量系统进行客观、专业的评估与度量。
      • 质量管理标准:
        • CMM度量标准
        • ISO9001标准
      • 项目过程标准
        • IEEE1012标准
        • ISO/IEC12207标准
    • SQA自身的考虑
      • 开发一些工具来支持SQA的顺利实施
      • 不断检查SQA活动是否达到预期
      • 对于采用的SQA活动给出改进的建议
  • SQA与软件测试的比较
    • 软件质量保证(SQA)
      • 面向过程
      • 注重減少开发过程中的错误法
      • 过程:怎样做事情
    • 软件测试
      • 面向产品
      • 注重发现产品中的缺陷
      • 产品:过程的最终结果