质量软件是指一种合理的错误或无缺陷的软件,及时交付并在指定的预算范围内交付,符合要求和/或期望,并且是可维护的.在软件工程环境中,软件质量反映了功能质量以及结构质量.
软件功能质量 : 它反映了它根据功能要求或规格满足给定设计的程度.
软件结构质量 : 它涉及处理支持功能需求交付的非功能性需求,例如健壮性或可维护性,以及软件正确生成的程度.
软件质量保证 : 软件质量保证(SQA)是一系列活动,旨在确保软件工程流程的质量,最终产生高质量的软件产品.这些活动建立并评估生产产品的过程.它涉及以流程为中心的行动.
软件质量控制 : 软件质量控制(SQC)是一套确保软件产品质量的活动.这些活动的重点是确定实际产品的缺陷.它涉及以产品为中心的行动.
软件质量挑战
在软件行业,与其他工业产品制造商通常不同,开发人员永远不会宣称该软件没有缺陷.这种差异是由于以下原因造成的.
产品复杂性
这是产品允许的操作模式数.通常,工业产品只允许少于几千种操作模式,并且具有不同的机器设置组合.但是,软件包允许数百万的操作可能性.因此,正确确保所有这些操作可能性是软件行业面临的主要挑战.
产品可视性
由于工业产品可见,大多数在制造过程中可以检测到其缺陷.此外,在产品中可以容易地检测到工业产品中没有部件.但是,存储在磁盘或CD上的软件产品的缺陷是不可见的.
产品开发和生产过程
在工业产品中,缺陷可以在以下阶段检测并减去;
产品开发 : 在此阶段,设计人员和质量保证(QA)人员检查并测试产品原型以检测其缺陷.
产品生产计划 : 在此阶段,设计和准备生产过程和工具.此阶段还提供了检查产品以检测在开发阶段未被注意到的缺陷的机会.
制造 : 在此阶段,QA程序适用于检测产品本身的故障.在制造的第一个阶段检测到的产品缺陷通常可以通过改变产品的设计或材料或生产工具来纠正,从而消除将来生产的产品中的这些缺陷.
然而,就软件而言,可以检测到缺陷的唯一阶段是开发阶段.在软件的情况下,不需要产品生产计划和制造阶段,因为软件副本的制造和软件手册的打印是自动进行的.
影响软件缺陷检测的因素产品与其他工业产品的比较如下表所示.
特性 | 软件产品 | 其他工业产品 |
---|---|---|
复杂性 | 数以百万计的运营选择 | 一千个操作选项 |
产品的可见性 | 不可见产品很难通过视觉检测缺陷 | 可见产品通过视觉有效检测缺陷 |
开发和生产过程的性质 | 只能在一个阶段中缺陷缺陷 | 可以检测以下所有阶段的缺陷
|
软件的这些特性,如复杂性和隐形性,使软件质量保证方法的开发及其成功实施成为一项非常专业的挑战.