错误、缺陷和失效
马均飞 郑文强
在日常的软件测试过程中,经常会碰到软件相关的问题,不同的人对问题的称呼也不同,比如错误(mistake或者error)、缺陷(defect)、失效/失败(fail或failure)等。这些不同的术语,虽然在平时讨论的时候,可能含义基本上是一样的,都是指软件中存在的一些问题。但是它们的具体含义和定义是不一样的。根据IEEE 1990中对这些术语的定义,可以帮助我们更好的理解它们的真正含义和它们之间的相互关系:
· 错误(mistake):产生不正确结果的人为行为。人为的原因导致一个不正确的结果。它可以是程序内的内部错误,也可能是文档内的错误。甚至是环境方面的问题。
· 错误(error):计算机计算得到的、观察到的、测量到的数值或者条件和理论上得到的正确的数值或者条件之间存在的差异。
· 缺陷(defect):程序或者软件中不正确的步骤、过程或者数据定义等。比如错误的语句或者错误的标量定义等。缺陷是错误的具体表现,可以是不正确的文档、程序段以及指令或者数据定义。