软件质量管理 - 简介

优质软件是指软件中没有错误或缺陷,按时交付且在规定的预算内,满足要求和/或期望,并且易于维护。在软件工程环境中,软件质量既反映了功能质量,也反映了结构质量

  • 软件功能质量 − 它反映了软件根据功能要求或规范对给定设计的满足程度。

  • 软件结构质量 − 它涉及处理支持交付功能要求(例如稳健性或可维护性)的非功能性要求,以及软件正确生产的程度。

  • 软件质量保证 −软件质量保证 (SQA) 是一组活动,旨在确保软件工程流程的质量,最终产生高质量的软件产品。这些活动建立并评估生产产品的流程。它涉及以流程为中心的行动。

  • 软件质量控制 − 软件质量控制 (SQC) 是一组活动,旨在确保软件产品质量。这些活动专注于确定实际生产的产品中的缺陷。它涉及以产品为中心的行动。

软件质量挑战

在软件行业,开发人员永远不会宣称软件没有缺陷,而其他工业产品制造商通常不会这样做。这种差异是由于以下原因造成的。

产品复杂性

它是产品允许的操作模式数量。通常,工业产品仅允许不到几千种操作模式,其机器设置的组合各不相同。但是,软件包允许数百万种操作可能性。因此,确保所有这些操作可能性的正确性是软件行业面临的一大挑战。

产品可见性

由于工业产品是可见的,因此其大多数缺陷都可以在制造过程中检测到。此外,工业产品中某个零件的缺失也可以很容易地在产品中检测到。但是,存储在软盘或 CD 上的软件产品中的缺陷是不可见的。

产品开发和生产过程

在工业产品中,可以在以下阶段检测到缺陷 −

  • 产品开发 − 在此阶段,设计师和质量保证 (QA) 人员检查和测试产品原型以检测其缺陷。

  • 产品生产规划 − 在此阶段,设计和准备生产流程和工具。此阶段还提供了检查产品以检测在开发阶段未被发现的缺陷的机会。

  • 制造 − 在此阶段,QA 程序用于检测产品本身的故障。在制造的第一阶段检测到的产品缺陷通常可以通过改变产品的设计或材料或生产工具来纠正,从而消除未来制造的产品中的此类缺陷。

但是,对于软件而言,唯一可以检测到缺陷的阶段是开发阶段。对于软件而言,不需要产品生产规划和制造阶段,因为软件副本的制造和软件手册的印刷都是自动进行的。

下表显示了影响软件产品与其他工业产品缺陷检测的因素。

特点 软件产品 其他工业产品
复杂性 数百万种操作选项 数千种操作选项
产品可见性 不可见产品 难以通过视觉发现缺陷 可见产品 可通过视觉有效发现缺陷
开发和生产过程的性质 仅在一个产品中就能发现缺陷阶段 可以检测以下所有阶段的缺陷
  • 产品开发
  • 产品生产规划
  • 制造

软件的复杂性和不可见性等特性使得软件质量保证方法的开发及其成功实施成为一项高度专业的挑战。