51Testing软件测试论坛

标题: 测试中的“杀虫剂怪事”是指什么?(2012.8.27)(获奖名已公布) [打印本页]

作者: lsekfe    时间: 2012-8-13 14:18
标题: 测试中的“杀虫剂怪事”是指什么?(2012.8.27)(获奖名已公布)
本周的问题为“测试中的“杀虫剂怪事”是指什么?”
如果你也有问题想提出来和大家一起讨论,请点击此处>>
说不定下期讨论的问题就是由你提出的哦,请快快参与吧!
[attach]80498[/attach]

获奖名单

奖项

获奖名单

奖励

答案链接

一等奖

TesterChen

移动充值卡50元

13#

二等奖

土土的豆豆

300论坛积分

21#

作者: lsekfe    时间: 2012-8-13 14:21
新的一期已经开始,大家可以踊跃发表自己的看法了!
作者: songhao35    时间: 2012-8-13 15:19
沙发~
首先,程序中的bug是不会全部被发现的,总有一些免疫力强杀不死的“虫子”隐藏的很深
对于程序bug的免疫力来说可以使用一些方法来把此问题减小到最低:
(1)测试人员可以按轮次进行换测,每个人的思路和测试方法不同,发现的bug类型也不同
(2)测试人员要提高自己的测试技能,跳出固有的思想和习惯,多进行失败测试和异常测试
(3)对发现的bug进行错误分析,把问题归类,挖出一些不常见的bug(28原则)
作者: 会小心    时间: 2012-8-13 15:41
为了克服杀虫剂怪事,软件测试员必须不断编写不同的新测试程序,对程序的不同部分进行测试,以找出更多的软件缺陷。
作者: linlin520    时间: 2012-8-13 16:31
所谓“杀虫剂”一词,用于描述软件测试越多,其免疫力越强的现象。这与农药杀虫是一样的。老用一种农药,害虫最后就有抵抗力,农药也就发挥不了效力。
        在用螺旋模式开发软件过程中,每一圈都要重复测试过程。软件测试员每一个轮回就会接到软件进行测试。最后,经过几个回合之后,该发现的软件缺陷都被发现了,再测试下去也不会有新的发现了。
        为了克服杀虫剂怪事,软件测试员必须不断编写不同的新测试程序,对程序的不同部分进行测试,以找出更多的软件缺陷。
作者: huilin.gao    时间: 2012-8-13 16:46
用同一种杀虫剂,久而久之就杀虫效果就微乎其微了,因为虫子产生了抗药性,所以要更换一种杀虫剂
这对于测试同样使用,同样的测试用例执行多次之后发现的缺陷会减少,这就要求我们要经常更新维护测试用例
作者: haoshimeng    时间: 2012-8-13 16:53
同软件测试的原则之一:程序员应该避免检查自己的程序道理相同。每个人都会有自己的一套思维理论,不可避免产生思维定势,不可避免产生杀虫剂怪事。
作者: dulong    时间: 2012-8-13 16:58
“杀虫剂怪事”是指经过多轮的测试后,Bug数降到了一定数量级,但是Bug还是时有发生,似乎TestCase库“失效了”,因此核心还是要维护更新TestCase。
要加强在小组内部讨论,对需求点或修复的地方进行深入分析,通过更换思路、互换角色、“头脑风暴”,跳出狭隘、局限的条条框框。从而挖掘生产出新一批的TestCase。
作者: wuliangye    时间: 2012-8-13 17:00
如下:
“杀虫剂怪事”一词由BorisBeizer在其编著的《软件测试技术》第二版中提出。用于描述测试人员对同一测试对象进行的测试次数越多,发现的缺陷就会越来越少的现象。就像老用一种农药,害虫就会有免疫力,农药发挥不了效力。这种现象的根本原因就是测试人员对测试软件过于熟悉,形成思维定势。
为了克服这种现象,测试人员需要不断编写新的测试程序或者测试用例,对程序的不同部分进行测试,以发现更多的缺陷。也可以引用新人来测试软件,刚刚进来的新手往往能发现一些意想不到的问题。

所以我们经常会说测试组需要引进新鲜的血液,因为新人对软件产品不是很熟悉,初次使用的时候完全站在用户角度,就很容易发现一些可能是显而易见的问题,而这些问题在老测试人员眼里已经司空见惯导致忽略,另外就是交叉测试,每一个测试人员负责的模块不同,一段时间后要让他们进行交叉测试,这样做的目的一方面是为了让每一个测试人员对于软件产品有更加深入的认识和理解,不会仅局限于自身负责的模块,另一方面就是为了防止思维定势,防止测到一定阶段后就测不出bug了。
作者: tengmy    时间: 2012-8-13 19:38
测试中的“杀虫剂怪事”是指测试同化现象。

这个题目正好我以前写过一篇文章。这里就不做重复赘述了。大家可以到的博客里面看一下。

http://www.51testing.com/html/15/n-804615.html
http://www.51testing.com/iframe.php?uid=47068
作者: haven6    时间: 2012-8-14 13:08
本帖最后由 haven6 于 2012-8-14 13:15 编辑

本主题我从两方面看吧:
1 开发FIX一个bug可能引入新的bug(也就是老虫发生“变异”了,有耐药性)。
2 测试人员因为长久测试,思维形成定式很难再发现新虫,或是妥协开发这类bug无法修复或修复风险大(也就是虫杀不死或杀死虫子风险大),所以严格程度要求放低了。

这两方导致系统(软件)始终存在虫子。

减少或避免“杀虫剂怪事”的方法:
1 建立完善的开发流程、测试流程,如软件发布准则,代码同行review机制,dailybuild。
2 bug改不改,必须事先与项目经理定义好规则,不能随个人意愿,同时测试组也可以尽量自动化测试和交叉测试。
作者: huilin.gao    时间: 2012-8-14 16:48
回复 10# tengmy
个人觉得杀虫剂怪事,与你所说的测试同化现象还是有一定的区别的
你指的是在一个工作环境中,测试人员会渐渐地被开发人员的思维所同化
作者: TesterChen    时间: 2012-8-14 17:07
杀虫剂怪事,本义是农业中随着农药的普及使用,害虫的抗药性越来越强,农药越来越难毒死害虫,害虫越来越容易滋生
往往采用的办法是:换农药的品牌,购买新配方农药,购买其他品牌更好质量的农药,加重喷酒浓度

软件测试行业中的“杀虫剂怪事”一词由Boris Beizer在1990年其编著的《Software Testing Techniques》第二版中提出。用于描述测试人员对同一测试对象进行的测试次数越多,发现的缺陷就会越来越少的现象。就像老用一种农药,害虫就会有免疫力,农药发挥不了效力。这种现象的根本原因就是测试人员对测试软件过于熟悉,形成思维定势。

我们从三个方面来讨论软件测试行业中的杀虫剂怪事:果树、害虫和农药
果树:我们的目标软件
害虫:缺陷(Bug)
农药:测试工程师、测试技术和方法


现状:
随着软件项目的规模越来越大,越来越多的缺陷开始出现,我们的测试工程师不断的进行测试、不断的回归,但仍然发现每次测试仍然会暴露出很多的缺陷,无法达到理想的缺陷曲线;或交付使用后用户仍然会在使用中出现各种各样的缺陷,直接影响用户的使用体验和公司声誉

原因:
1.被测软件的功能和结构越来越复杂(害虫的抵抗力越来越强)
2.测试人员、技术和方法的思维定势(使用同一种农药配方)


解决办法:
1.测试人员轮岗,一百个读者有一百个哈姆雷特(虽然俗但确是这样),一百个工程师也有一百种看法和想法,这样可以更好的避免个人思维定势
(使用不同品牌的农药)


2.尝试使用各种测试技术和方法进行测试,避免因为测试方法本身的覆盖度而导致测试遗漏
(变更农药配方)


3.测试人员的自我意识,要有意识的突破自己的思维定势,跳出原有的条条框框进行思考,这样或者能发现一些更深层次的缺陷
(提升农药配方质量)


4.引进行业高水平技术人才,同时对技术人员进行相关技能培训提高专业技能
(加重喷洒浓度)


目的:
尽量多的发现潜在的缺陷,减少缺陷的遗留,降低遗留缺陷的严重度
作者: szrosemei    时间: 2012-8-14 17:28
理解认为:
1.有BUG出现,开发人员进行解决时会采用多种方案,例如对问题现象进行解决,导致问题根源未得到解决,使用原用例将不能将根源BUG暴露,缺陷隐藏更深入了,因此需要变换思路,或更换测试人员来解决。
2.执行过用例发现过缺陷的模块,如果不对用例进行补充、变换设计,不会有新的缺陷发现,回归测试仅能发现新问题低于3%,而只有通过设计新的用例,发现新的缺陷。
3.测试人员重复执行,因为思维固化或被开发人员同化,发现新缺陷的能力大大降低

以上都将导致杀早剂效应,对于新的缺陷的发现率降低。
作者: jiazurongyu    时间: 2012-8-15 12:52
杀虫剂驳论所指 同样的一块模块用同样的方法和同样的人去完成,发现的问题会越来越少。bug如小虫子,也就是抗体效应。影响:“果农”和“杀虫方法”
然后实际工作中以上的方法和同期其他方法的对比,缺陷分布会走一个不正常的曲线,这里不代表质量就提升了。实际小虫子依然在啃着甜美的苹果。
但对于质量科学中的需求变更频繁,杀虫剂驳论影响会较小。
当确定产生了杀虫剂,常规解决办法:
重新切割测试点,测试计划变更,基准测试标准变更,周期按侧重调正。
头脑风暴。
代码方面的飞检。
测试用例的交叉工序(需要工期)。
三明治策略。(也可以叫肉加馍,比交叉测试更细致)
跨部门协作。
基于越早发现原则,在openbeta前找到80%的问题(根据不同的行业制定,不拘泥),缺陷问题分布比例和预想有差别就需要抽一点时间,思考下是不是存在这个问题。
作者: ArjvnG    时间: 2012-8-16 22:08
其是针对此事,可以新开辟路径或找一些新人~
也许会起到不一样的效果~
作者: Jackc    时间: 2012-8-17 14:34
百度百科:杀虫剂,英文: Pesticide. Insecticide , 主要用于防治农业害虫和城市卫生害虫的药品.
测试相关:降低产品缺陷率的方式方法

测试中的"杀虫剂怪事",字面上的意思也就是降低产品缺陷率的方法出现效果减弱或无效的情况。简单可以用楼上的bug“抗药性”升级来辅助理解。

首先,杀虫剂怪事的出现,不仅只是测试部门出现问题,它可能是整个产品项目相关的各个部门出现问题导致。
故,仅仅改进测试方法,提高测试门的有效输出,并不见得能药到病除。更多的时候,我们需要进行进一步分析,明确问题的相关部门和责任人,然后再考虑如何去解决和优化。
当然,测试部门可为分析bug“抗药性”提供相关的基础数据,如“bugs reopen rate”,“bugs fixed rate”等。主动性较强的测试部门则会依靠分析数据推动相关部门整改,以保证产品质量的进一步提升。

个人认为,“杀虫剂怪事”依靠QA权责的部门和人员来调查,推动比较合适。单以测试部门来推动和解决,可能需要一些四两拨千斤的技巧才能较好得实施。
作者: friendhai    时间: 2012-8-17 16:48
“杀虫剂怪事”一词由BorisBeizer在其编著的《软件测试技术》第二版中提出。用于描述测试人员对同一测试对象进行的测试次数越多,发现的缺陷就会越来越少的现象。就像老用一种农药,害虫就会有免疫力,农药发挥不了效力。这种现象的根本原因就是测试人员对测试软件过于熟悉,形成思维定势。
作者: 零测试    时间: 2012-8-20 12:39
同一个模块,大家可以交互测试,因为这样就能够注入新的思想,能够测出不一样的问题。

用同一种杀虫剂去杀害虫,总会有一些害虫是杀不了的

因为这些害虫对这些杀虫剂免疫,就像有些BUG是有些工程师发现不了的,因为他的思维固定在那里了,假如让其他工程师去试试的话,注入新的测试思想,可能会有新的BUG被发现哦!
作者: tym1112    时间: 2012-8-21 09:10
测试人员如果能考虑到问题的方方面面是不是不可以避免杀虫剂怪事”现象呢?
作者: 土土的豆豆    时间: 2012-8-21 16:58
晕 ~ 楼上广告怎么在这个帖子里发布啊!

杀虫剂怪事,原指农业科技上的工作,现用于描述软件测试越多,其免疫力越强的现象;或者说,如果同样的case反复执行,对于一个特定软件来说,发现问题的概率会越来越低。
这与农药杀虫是一样的。老用一种农药,害虫最后就有抵抗力,农药也就发挥不了效力。在用螺旋模式开发软件过程中,每一圈都要重复测试过程。软件测试员每一个轮回就会接到软件进行测试。最后,经过几个回合之后,该发现的软件缺陷都被发现了,再测试下去也不会有新的发现了。
为了克服杀虫剂怪事,软件测试员必须不断编写不同的新测试程序,对程序的不同部分进行测试,以找出更多的软件缺陷。
我们可以充以下几个部门考虑如何规避和解决杀虫剂现象:
1、重新分析测试需求
一个被测模块若在指定条件下完成了工作,若在一定周期内未能发现新问题。我们可以重新对需求文档进行分析,找出不同的业务逻辑。尤其是组合条件较复杂的逻辑和业务工作流。
2、拓展测试用例
显然,老套的用例即便执行白遍,也是一样的结果。根据新制定的测试需求,必须重新设计测试用例来进行检验。
3、改变测试方法,加入更多的场景
虽说测试用例执行是测试的关键,但是前期对测试模块的需求分析深入的话,在不同组合、条件下,模拟更多、更复杂的业务场景进行操作,可能会发现意想不到的问题。毕竟很多问题是在长时间操作,反复进行业务交互后才产生的。
4、在模块功能稳定的情况下,适当补充非功能性测试,在易用性、可靠性、稳定性等质量指标下,系统容易暴露更多的状况,很多是用例未考虑的情况。
5、缺陷问题整理和归纳
很重要的是,不能老是停留在黑盒方法、等价类、边界值等通用的技术手段。软件开发技术是在不断发展,同时我们测试技术、方法等也该不断更新和补充新的知识。对于异常或罕见的问题,测试人员应该有所整理、分析与归纳,这样我们才能改善“杀虫剂”含金量,相对于以后的系统,更有作用了吧。
以上是个人观点,请补充指正。
作者: mainer    时间: 2012-8-23 15:38
杀虫剂事件就是指测试同化现象,当长期使用一种杀虫剂的时候,虫子对药物有了抗体,就不再会被杀死了。
测试人员长期跟踪一个项目,导致会出现习以为常,从而很容易接受开发的辩解与解释,忽略问题的存在。
作者: mainer    时间: 2012-8-23 15:40
测试组长应该经常对测试人员的测试用例、测试方法进行检查,并且时常使用新人介入测试该项目的上线单,跟踪项目情况,让不同人提出不同意见,以确保避免杀虫剂事件持续。
作者: cyli    时间: 2012-8-25 00:31
测试人员执行了所有原先测试设计方法设计的测试用例,以为达到了很高的缺陷覆盖率,但事实上,任然存在很多未发现的缺陷,甚至比现在更多。
此时,需要测试人员采取几多方面的措施再次测试,多次使用不同的用例设计方法,对测试对象进行反复测试。
作者: pwang_carbonite    时间: 2012-9-7 13:46
嗯,学到了,呵呵




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2