软件质量管理 - 简介


优质软件是指没有明显错误或缺陷、在指定预算内及时交付、满足要求和/或期望并且可维护的软件。在软件工程背景下,软件质量既反映功能质​​量又反映结构质量

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

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

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

  • 软件质量控制- 软件质量控制(SQC)是一组确保软件产品质量的活动。这些活动的重点是确定实际生产的产品中的缺陷。它涉及以产品为中心的行动。

软件质量挑战

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

产品复杂性

它是产品允许的操作模式的数量。通常,工业产品仅允许少于几千种操作模式及其机器设置的不同组合。然而,软件包提供了数百万种操作可能性。因此,确保所有这些操作可能性的正确性是软件行业面临的重大挑战。

产品知名度

由于工业产品是可见的,其大部分缺陷可以在制造过程中被检测出来。此外,工业产品中是否缺少某个部件也可以在产品中轻松检测到。然而,存储在软盘或CD上的软件产品的缺陷是不可见的。

产品开发及生产流程

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

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

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

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

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

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

特征 软件产品 其他工业产品
复杂 数百万种操作选项 数千个操作选项
产品的可见性 隐形产品很难通过肉眼发现缺陷 可见产品 通过目视有效检测缺陷
开发和生产过程的性质 只能在一个阶段检测缺陷 可以检测以下所有阶段的缺陷
  • 产品开发
  • 产品生产计划
  • 制造业

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