软件测试缺陷管理的相关术语有 Bug、缺陷(Defect)、错误(Error)、故障(Fault)和失效(Failure)。 (1)Bug:程序缺陷、计算机系统或者程序中存在的任何一种破坏正常运转能力的问题或者 缺陷,都可以统称为“Bug”,有时也泛指因软件产品内部的缺陷引起的软件产品最终运行时和预 期属性的偏离。 (2)缺陷(Defect):指静态存在于软件工作产品(文档、代码)中的错误,也指软件运行时, 由于这些错误被激发引起的和软件产品预期属性的偏离现象。 (3)错误(Error):指编写错误的代码,一种是语法错误(Syntax Error),另一种是逻辑错误 (Logical Error)。 (4)故障(Fault):软件运行中出现的状态,可引起意外情况,若不加以处理可导致失效, 是一个动态行为。 (5)失效(Failure):软件运行时产生的外部异常行为结果,表现与用户需求不一致,功能能 力终止,用户无法完成所需要的应用。
在测试过程中我们无法保证系统零缺陷发布,任何一个系统不管是简单还是复杂,一个简 单的程序也存在 Bug,一个花费大量人力资源开发的系统发布后也存在 Bug。但是这些 Bug 在客户 端不一定会被激活,也不一定会形成故障,有的功能客户几乎不使用,这样 Bug 被很好地隐藏起 来,很难被客户发现。有时一些 Bug 也可能被激活,但如果其带来的负面影响很少,也不会表 现为故障。
故障一定会导致系统失效吗?答案是否定的,开发工程师在开发系统时会考虑软件在使用期间 可能出现的故障,并针对这些可能出现的故障采取了一系列的预防措施。比如数据库可能出现数据 丢失的问题,为了避免这种失效出现,在开发过程中采用备份的方式来容错,这样当一个数据库出 现异常时,另外一个数据库还可以正常工作。
缺陷不一定会导致故障,故障不一定会导致失效,但故障如果没有得到正确的处理则会导致 失效。