缺陷既指静态存在于软件工作产品(文档、代码)中的错误,也指软件运行时由于这些错误被激发引起的与软件产品预期属性的偏离现象。软件发生错误时将造成灾难性危害或对用户产生各种影响,因此正确地认识软件缺陷并大程度地减少软件缺陷是非常必要的。下面从六个方面来介绍下软件缺陷:

  一、软件缺陷的定义

  软件缺陷,即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。对于软件缺陷的准确定义,通常有以下5条描述:

  1.软件未实现产品说明书要求的功能

  2.软件出现了产品说明书指明不会出现的错误

  3.软件超出实现了产品说明书提到的功能

  4.软件实现了产品说明书虽未明确指出但应该实现的目标

  5.软件难以理解,不易使用,运行缓慢或者终端用户认为不好

  二、软件缺陷的种类

  软件缺陷表现的形式有多种,不仅体现在功能的失效方面,还体现在其他方面。软件缺陷的主要类型有:

  1.文档缺陷:是指对文档的静态检查过程中发现的缺陷,通过测试需求分析、文档审查对被分析或被审查的文档发现的缺陷

  2.代码缺陷:是指对代码进行同行评审、审计或代码走查过程中发现的缺陷

  3.测试缺陷:是指由测试执行过程中发现的被测对象的缺陷

  4.过程缺陷:又称为不符合项问题,是指通过过程审计、过程分析、管理评审、质量评估、质量审核等活动发现的关于过程的缺陷和问题

  三、软件缺陷的级别

  测试人员所发现的问题可能不是那么明显、严重,而是难以觉察的简单而细微的错误,有些是真正的错误,有些则不是。一般来说,问题越严重的,优先级越高,越要得到及时的纠正。不同的公司对缺陷严重性级别的定义也不尽相同,但一般可以概括为如下4种级别:

  1.致命的:致命的错误,造成系统或应用程序崩溃、死机、系统悬挂,或造成数据丢失、主要功能完全丧失等

  2.严重的:严重错误,指功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误声明

  3.一般的:不太严重的错误,这样的软件缺陷虽然不影响系统的基本使用,但没有很好地实现功能,没有达到预期效果。如次要功能丧失,提示信息不太准确,或用户界面差,操作时间长等