翻译原文链接:http://www.asktester.com/5-simple-reasons-missed-bugs-prevent/
在某种程度上,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时,压力就在我们身上。但是,我们测试人员只是人,人是不完美的。我们偶尔也犯错误,有些人可能比其他人犯更多的错误,但是这没关系。
重要的是:不要因为漏测,而互相指责或推卸责任。
作为测试人员,让我们把这种情况作为一个机会来审查测试过程,看看问题在哪里,并防止它再次发生。团队里的每个成员都应该为质量负责,而不仅仅是测试人员。
相关推荐
总结来说,文件内容虽然包含了一些由于技术原因导致的识别错误,但基本反映了通过TFS-web提交BUG的简易方法,以及相关的BUG管理流程、状态更新和快速定位技巧。同时,它还涉及到了TFS-web界面操作和项目状态更新的...
5. 漏测的避免方法:漏测是测试人员经常遇到的问题。为了避免漏测,测试人员需要在测试之前进行仔细的测试计划和设计,确保测试用例覆盖到所有重要的功能点。测试过程中要持续跟进开发的代码变更,并及时更新测试...
Cobertura 漏测分析可以找出代码中未测试的部分并针对它们编写测试。例如,图 3 显示 Flight 需要进行一些测试,运用 name() 函数对文字节点、注释节点、处理指令节点、属性节点和名称空间节点进行测试。如果有许多...
在本文档中,作者分享了在使用JDK时遇到的一个罕见的BUG,该问题与文件变更监听机制有关。首先,作者介绍了他们之前采用的一种简单的文件变更检测方法:通过定时检查文件的最后修改时间戳来判断文件是否发生变化。...
黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入, 然后再输出。黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关;从用户角度出发,能很容易的知道用户会用到哪些...
黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它...
5. **漏语句**:检查程序中所有模块是否完整实现,确保没有遗漏的语句。同时,确保所有变量在使用前都已初始化。 6. **充分的测试数据**:设计多样化的测试用例,包括正常情况、边界情况和异常情况。保留一些代表性...
5. **问题解决与调试技巧**:学习者需要展示能够阅读和理解代码,找出并修复错误的能力。题目可能给出一段有bug的代码,要求找出问题并提出解决方案。 6. **编程规范与最佳实践**:良好的编程习惯和规范,如变量...
Q:扫描一个子网,进程里同时出现10个checkhost.exe的进程是什么原因? A:检测每个主机都会单独起一个Checkhost.exe进程,检测完毕会自动退出。并发主机数量可以通过 图形界面的设置窗口设定,命令行程序通过“-...
8. 提供一个简单的演示客户端, 可以监视系统的运行情况, 用于测试系统服务. 本软件免费使用,采用 C# .NET 2.0 编写开发,以无界面的Windows服务运行,通过串行口收发手机短信,使用数据库接口,目前支持Oracle...
针对文档内容中提到的“注意”部分,这是一个提醒读者在处理OCR扫描文本时需要留心技术上可能出现的识别错误或漏识别,这有可能导致代码片段不完整或存在错误。在实际应用中,开发者需要自行检测代码的准确性,并...
在开发过程中,测试团队报告了系统存在bug,具体表现为后台和前台的各种列表出现JavaScript弹窗错误,并且错误信息是简单的“parseerror”。开发者开始对请求和返回内容进行跟踪分析,发现看似没有问题的数据返回流...
由于提供的文件内容存在OCR技术原因导致的错误或漏识别,无法直接从中提取有用信息。然而,我可以基于标题、描述以及一些常见的知识点来生成有关CodeBlocks教程的内容。 CodeBlocks是一个开源的集成开发环境(IDE)...
对于3,很简单的例子,参数方程 x=cos,y=sin 在数学分析(即连续空间)层面上是个圆,但是如果你在离散t的时候,间距比较大,那么最后Matlab绘制的图像不是圆,而是正多边形了。因此,此时我们讨论曲线交点是这个...
STANDBY电流测试:测量IC处于HALT模式时即每一个接点(PAD)在1态0态或Z态保持不变时的漏电流是否符合最低之规格。  耗电测试:整颗IC的静态耗电与动态耗电。  输入电压测试:测量每个输入接脚...