在我们日常对软件开发进行验证或确认的时候,有时候不大区分所发现的问题属于何种类别,经常用“缺陷”一词作为统一的称谓。可在英语中,却有Bug、Defect、Failure、Error、Fault等词汇表示软件的问题。
那么你能区分开这几个术语的区别是什么吗?
Bug
Bug这个术语的来历很多人都听过,那是古早的计算机设备出现的故障是由一只虫子在经过两个继电器时造成了短路所致。这实际上是硬件故障,后面通过在主机的散热孔那里加装一层更加细密的防止虫子爬进去的金属网得以解决。这个事件被称为Bug,这个名词后来被沿用到了计算机软件故障。
Defect
Defect即缺陷,是存在于软件产品之中的不完美的地方,以静态形式存在于软件内部,可被激活。
在Bug事件中,虫子引发的故障实际上是产品设计缺陷——缺乏安全有效的散热方式导致的,而虫子引发的故障只是这个缺陷导致的故障的其中一种表现形式。也就是说,Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的。
Failure
Failure即失效,是软件运行时产生的异常的外部行为结果,表现为这些结果与用户需求不一致,功能没有正常实现或者根本无法执行,用户没有获得所需要的应用。
Error
Error即错误,指编写的代码本身存在错误,一种是语法错误,另一种是逻辑错误。
Fault
Fault即故障,是软件运行中出现的不正常的状态,故障可引起意外情况,若不加处理,可产生失效(功能异常或终止)。
所以,你知道你说的软件缺陷是什么缺陷?
这正是:
软件问题要深究,五个术语各不同
缺陷错误和故障,引发失效可不行
参考书目:大话软件测试,作者:欧立奇,出版社:电子工业出版社
联系客服