软件质量管理 - 简介
高质量软件是指一个基本上没有错误或缺陷,按时并在指定预算内交付,满足需求和/或期望,并且可维护的软件。在软件工程的背景下,软件质量既反映了**功能质量**,也反映了**结构质量**。
**软件功能质量** - 它反映了软件根据功能需求或规范满足给定设计的程度。
**软件结构质量** - 它处理支持功能需求交付的非功能需求,例如健壮性或可维护性,以及软件生产的正确程度。
**软件质量保证** - 软件质量保证 (SQA) 是一套活动,旨在确保软件工程过程中的质量,最终产生高质量的软件产品。这些活动建立和评估生产产品的过程。它涉及以过程为中心的行动。
**软件质量控制** - 软件质量控制 (SQC) 是一套活动,旨在确保软件产品的质量。这些活动侧重于确定实际生产产品的缺陷。它涉及以产品为中心的行动。
软件质量的挑战
在软件行业,与其他工业产品制造商通常的做法不同,开发人员永远不会声明软件没有缺陷。这种差异是由于以下原因造成的。
产品复杂性
这是产品允许的操作模式的数量。通常,工业产品只允许少于几千种操作模式,其机器设置组合不同。但是,软件包允许数百万种操作可能性。因此,确保所有这些操作可能性都正确无误是软件行业面临的一项重大挑战。
产品可见性
由于工业产品是可见的,因此大部分缺陷可以在制造过程中检测到。工业产品中零件的缺失也可以很容易地在产品中检测到。然而,存储在磁盘或 CD 上的软件产品的缺陷是不可见的。
产品开发和生产过程
在工业产品中,可以在以下阶段检测到缺陷:
**产品开发** - 在此阶段,设计师和质量保证 (QA) 员工检查和测试产品原型以检测其缺陷。
**产品生产计划** - 在此阶段,设计和准备生产过程和工具。此阶段还提供检查产品的机会,以检测在开发阶段未被注意到的缺陷。
**制造** - 在此阶段,应用 QA 程序来检测产品本身的故障。在制造初期检测到的产品缺陷通常可以通过更改产品的设计或材料或生产工具来纠正,从而消除未来制造的产品中的此类缺陷。
然而,对于软件而言,唯一可以检测到缺陷的阶段是开发阶段。对于软件而言,不需要产品生产计划和制造阶段,因为软件副本的制造和软件手册的印刷是自动进行的。
下表显示了影响软件产品与其他工业产品缺陷检测的因素。
| 特征 | 软件产品 | 其他工业产品 |
|---|---|---|
| 复杂性 | 数百万种操作选项 | 数千种操作选项 |
| 产品可见性 | 不可见产品,难以目测检测缺陷 | 可见产品,有效目测检测缺陷 |
| 开发和生产过程的性质 | 只能在一个阶段检测缺陷 | 可以在所有以下阶段检测缺陷
|
软件的这些特性,如复杂性和不可见性,使得开发软件质量保证方法及其成功实施成为一项极具专业性的挑战。