别被概念搞蒙了,Bug和它的九大近亲

前言

测试工作中,发现Bug, 报告Bug是工作日常,也免不了和开发因为某个问题是否Bug产生争论。

虽然在Bug认定上,不同的人因视角不同,产生分歧也正常。

但在对一个产品的测试过程中,确实也不能把所有发现和遇到的问题都看作Bug,Bug 其实是一个比较笼统的叫法,有的公司还会把 Bug report 称为 故障单 或者 问题单 ,其实严格说来也不准确。 因为从概念上,Bug 还有不少和它作用和含义相近但实际又有区别的近亲们,本文我们就来梳理澄清一下 Bug 和它的这些近亲们的不同概念,以及和我们工作的关系。

故障(Fault)

故障 在日常工作中,常常被等同于 Bug,但严格来说,故障指的是软件代码或设计中的静态缺陷,比如不正确的步骤、处理过程或是数据定义。

也就是说,它更多是软件的 “内在” 问题,通常是开发者的人为错误在软件中的体现。

因为它更多是静态的,所以故障的发现,通常是在代码审查或静态分析时暴露。

案例

比如下面这段 java 代码,边界值处理时,i>=0 写成了 i>0, 会导致遍历时,第一个元素的遗漏。这就属于一个故障。

for (int i = arr.length - 1; i > 0; i--) {
   
   
	if (arr[i] == target) return i;
}

又或者,对于用户年龄的计算,未考虑闰年2月29日的情况,会导致结果计算错误,这也属于故障。

错误(Error)

错误是指在软件开发过程中,由开发者或其他参与者(如需求分析师、设计师)所犯的人为失误、判断失误或决策偏差。错误通常是后续其他问题的根源,它的发生,主要是人为因素导致的,如需求理解偏差、逻辑失误或是代码笔误造成的。

案例

虽然错误是“人为”的,但发生错误的类型,通常还是可以总结为有限的几种,对于测试人员早期参与来说,也能更好帮助产品识别风险。比如:

  • 逻辑错误: 开发人员在编写代码时,算法或业务逻辑的实现与预期不符。比如算法公式的错误应用。
  • 语法错误: 代码不符合编程语言的语法规则。虽然目前现代IDE都可以捕获大部分语法错误,但有时一些运行时才出现的语法或配置错误还是可能发生。
  • 需求理解错误: 对需求的理解与真实需
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

城下秋草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值