我受够了“缺陷”(Defects)这个词

原文地址:http://www.developsense.com/blog/2014/04/ive-had-it-with-defects/

我留在测试行业的时间越长,思考越多,我越相信“缺陷”这个概念是不清楚且无益的。
程序中出现与规格说明不一致的一个编码错误,于是我会说,我已经找到了一个缺陷。另一天,在产品自动更新过程中出现了失败,使产品无法使用。很明显,这也是缺陷。然而,让我们来看看一些其他情况:
  • 我完成了一堆的测试,没有发现任何看起来像一个bug,但在通过检查代码,我看到它是如此混乱,难以维护,未来的变化将是危险的。我发现了一个缺陷吗?有多少个缺陷呢?
  • 我观察到一个程序是近乎完美的coding了,却是按照一个可怕的规格说明。产品有缺陷吗?
  • 一个程序完美按照一个伟大的规格说明进行了coding,然而规格说明的作者也许是按照一组考虑不周的需求来编写的伟大的规格说明,这应该叫产品的缺陷吗?
  • 我们的开发项目即将发布,但是我发现了一个有竞争力的产品,这个竞争者有完全令人信服的功能,使得我们的产品看起来像另外一个可运行的版本。是我们的产品有缺陷吗?
  • 我采访的一半用户说,我们的产品应该这样来做,现在的外表很丑陋,应该变得更容易学习; 另一半说,它应该表那样来做,指出外表并不重要,一旦你已经使用该产品一段时间,就可以快速,高效地使用它。我有没有发现一个缺陷?
  • 该产品不会产生日志文件。但是如果有一个日志文件的话,测试可能会更快,更容易,更可靠。如果产品缺少可测试性,这是否也是缺陷?
  • 我注意到,在用餐使用,当越来越多的人登录到订单时,支持我们的连锁比萨饼店的Web服务明显减慢。我看到这样的一个风险:如果企业变得好多了,网站可能拖垮充分,我们可能会失去一些客户。但此刻,web服务一切都还正常。 这是一个缺陷吗?如果它不是一个“现在的”缺陷,它会在未来“神奇地“地变成一个缺陷吗?
   除此之外,“缺陷”是一堆关于如何衡量测试质量、或者软件的质量的无用的概念的中心,如:“缺陷数”; “缺陷检测率”; “缺陷移除效率”。但是,什么缺陷?如果您访问LinkedIn,你常常能看到一些关于缺陷的学院派的论述。人们谈论缺陷,似乎是指绝对的、无可争议的产品的错误。然而,根据我的经验,问题很少会如此清晰。如果还不清楚什么是,什么不是一个缺陷,那么对其做计数就没有任何意义了。
这就是为什么,作为一个测试人员,我觉得更有助于思考的概念应该是“问题”。“问题”是指“接收到的和所期望的存在的差异”或者“不是预期的情况,这种情况对某些人很重要,或者某些人可以将其解决的,虽然可能有一定的难度”。(参见 这里 。)。问题不是某种一定存在于软件中的某些东西,而是是 相对而言的 ,是软件和某些人之间的关系。问题可能反映为bug(威胁产品的价值)或 问题 Issue的形式(威胁测试的价值,项目的价值,或者商业价值)。

作为测试人员,我不去攻破软件。作为我的实际角色的提醒,我经常使用艾伦·乔根森(Alan Jorgenson)笑话,但它很可能起源于我的同事詹姆斯·巴赫(James Bach):“我没有去攻破软件; 当我得到它时,它已经是破的了”,换句话说,不是去攻破软件,而是发现了如何在那里破掉了。但即使这样,我也觉得不是很正确。我经常发现,我无法描述产品是“破”的: 该产品和某些人之间的关系可能破了。我通过使用及描述oracles去确定和阐明有问题的关系,这是我们在测试过程中识别问题的手段。

Oracles并 不完美 测试人员不是法官 ,所以对我来说,标记某个东西为缺陷,似乎有些放肆的。正如詹姆斯所指出的,“如果我告诉我的妻子,她有一个缺点,多半不是个好做法。如果我说她正在做的东西让我觉得困扰,效果会好很多”。或如杰姆坎那(Cem Kaner)建议的,发布带有已知缺陷的产品意味着发布”有缺陷的软件“,可能会带来合同或其他法律后果(见 这里 这里 ,为例子)。

一方面,我觉得“寻找缺陷”似乎太狭隘,太绝对,太放肆,对我来说很有些风险。另一方面,如果你看一下上面的列表中,所有这些事情,都是值得商榷的缺陷,可以更容易且较少争议地描述为的问题(这些问题会潜在地威胁到产品的价值)。因此,“找问题”为我提供了更广泛的视野,去认识些模糊概念,鼓励认知的谦卑,并承认主观性。也进一步,让我必须我参与自己的游戏,用许多不同的方式对产品进行建模,考虑许多不同的质量标准,不但只想到找功能上的问题,还会考虑任何可能会造成的损失、损害或给相关人员带来烦扰的东西。

此外,拒绝缺陷的概念,可以帮助我们阻止对缺陷进行计数。鉴于“问题”的开放性和不确定性的性质,考虑如何去计数问题听起来非常愚蠢了。但我们可以谈论的问题。这将是朝着解决这些问题,解决什么是应该被接受的,什么是关心它的人想要等重要想法的第一步。

这就是为什么我更喜欢寻找“问题”。上述,就是我对“缺陷”这个概念找到的问题。

你可能感兴趣的:(软件,测试,经验,测试)