在某种程度上,Bug漏测是测试人员最糟糕的噩梦之一。为什么这么说呢,软件测试人员或许知道存在这样一种误解,认为测试人员应该发现系统的所有bug。测试人员常常被看作是守门员,一旦任何bug泄露给客户并导致损失,如销售,公司声誉,潜在客户等等,通常是测试人员背锅。如果一个团队习惯指责错误,那么这种情况会更严重。Bug漏测有其背后的原因,这篇文章指出了导致漏测的5个常见原因,以及如何防止它再次发生。
#1:你错过了bug,因为你没有测试它
这是显而易见的。
如果你没有测试一个特性,一个组件或测试用例,那么bug很可能会被客户发现。当然,你可能会忘记测试一个功能或你的测试设计不好,但更常见的的原因是:
(1)你可能不知道开发人员做出的“秘密”更改。开发人员可能会故意隐藏,或他们只是认为这些更改很小不需要测试新;
(2)你可能不知道特性已经变更了。
你能做些什么来防止这种情况?
(1)注意每次构建版本中系统中可能存在的任何更改,特别是关键组件的更改或最后一分钟更改。询问更改并指出缺乏测试的更改可能带来风险;
(2)要求进行透明的沟通。这里传达的关键信息是,沟通不透明会带来更多的风险,影响系统的质量。
#2:你没有覆盖所有的情况
在大部分情况下,测试人员需要遵循一组复杂的步骤或各种组合来触发bug。从技术上讲,为了服务和满足业务需求,软件变得越来越复杂。黑盒测试人员可能不知道系统是多么复杂,或系统的组件是如何协同工作的。 因此,缺乏足够的测试覆盖率,导致漏测bug。而这些错误常常会让测试人员觉得无可奈何。
你能做些什么来防止这种情况?
(1)作为测试人员,需要站在用户的角度去了解他们是如何使用产品的。有时候,用户的行为很奇怪,但测试人员知道这就是他们如何使用软件的。不要低估用户的“创意”。
(2)从技术角度理解系统是如何运作的。在大部分情况下,测试人员不必知道组件之间是如何通信的,或者看懂每行代码。然而,从技术角度理解系统可以帮助测试人员发现深层次的bug。
(3)如果有足够多的时间,测试人员应该花更多的时间来设计和覆盖尽可能多的组合。虽然这样做花费时间和精力,但如果值得,就应该这样做。
#3:你错过了bug,因为你忽略了明显的bug
奇怪的是,漏测的bug通常也是明显的bug。“明显的bug”,是指bug就在测试人员面前,但测试人员不认识他们。我知道这是一件痛苦的事情,但这样的事情一直发生,为什么会这样?
导致测试人员看不到明显的bug的原因有:
(1)你可能太专注于测试系统的某个特定区域,你甚至不打算在其他地方寻找问题。
(2)你可能太专注于另一项任务,而没有处在“错误检测模式”。例如,当你设计测试用例时,你可能正在与系统进行交互,但你的头脑没有在错误检测模式,所以你可能会错过明显的错误。
(3)您使用相同的路径重复测试一个功能。
“一遍又一遍做同样的事情却期待不同的结果是愚蠢的” - 爱因斯坦。
测试人员的版本:
“以相同的方式一遍又一遍地测试并期待找到bug的行为是愚蠢的”
你能做些什么来防止这种情况?
(1)说实话,我不知道如何解决这个问题,特别是如果你不是“多任务”测试人员的类型。我的建议是,总是让你在“错误检测模式”,这样你可以指出明显的问题。
(2)你还可以尝试从不同的角度分析系统,应用不同的技术来测试系统。
#4:面临时间压力
“Ship it or RIP it”
现在人们希望软件交付越快越好,因此测试团队经常面临时间压力,要么加班完成测试,要么缩减测试内容。当测试人员处在一个忙乱的状态下,自然容易漏测。
你能做些什么来防止这种情况?
实际上,解决方案不是找到方法,在压力下测试时不漏测。解决方案是找到方法,以便在测试时避免承受压力。我的建议是:如果时间是固定的,可以沟通减少测试和执行风险分析。告诉管理者会测试什么和不会测试什么,以及不测试一个功能或组件所带来的风险。
#5:你看到了问题,但你没有报告
“每当你发现bug,立即报告”,这被认为是测试人员的经验法则。然而,有时候测试人员没有遵循它。
多少次当你发现一个bug,你告诉自己稍后再报告。但是一段时间后,你完全忘了报告bug。
另一种情况是,你没有足够的信心报告它(例如,我不想打扰开发人员)或者你低估了bug的重要性(例如:这个bug严重级别很低,没有人关心,所以跳过它),因此你决定不报告。然而事实是,这个对你来说不重要的bug,在某人看来是一个关键的bug。
“A bug is something that bug someone that matters”(James Bach)
一个bug对你不重要,不一定意味着它对别人也不重要。
你能做些什么来防止这种情况?
如果你认为这是一个bug,那么报告它(当然,bug报告里应该说明为什么你认为这是一个bug)。这是一个很好的做法,测试人员应该更频繁地练习。
结语
作为测试人员,我们的工作是测试产品,并向管理层提供产品相关的有价值信息。在某些情况下,我们扮演守门员的角色,在产品进入客户手中之前进行评估。这意味着当我们漏掉一个bug时,压力就在我们身上。但是,我们测试人员只是人,人是不完美的。我们偶尔也犯错误,有些人可能比其他人犯更多的错误,但是这没关系。
重要的是:不要因为漏测,而互相指责或推卸责任。
作为测试人员,让我们把这种情况作为一个机会来审查测试过程,看看问题在哪里,并防止它再次发生。团队里的每个成员都应该为质量负责,而不仅仅是测试人员。