目录
认知偏差
“你应该努力减少你的偏见,但说你没有任何偏差迹象,恰恰表明你有很多” - Nate Silver,The Signal and the Noise的作者说
普林斯顿大学对认知偏差的定义如下:
“认知偏差是一个通用术语,用于描述人类思维中的许多观察者效应,其中一些可能导致感知扭曲,不准确的判断或不合逻辑的解释。 这是一种在认知科学和社会心理学中研究的现象。“
许多测试人员似乎意识到或听到的一个偏见是“确认偏见”。
1、确认偏差
确认偏差是一种非常强大的偏见,我们非常容易受到影响。 Skepdic网站将确认偏差定义为:
“确认偏见指的是一种选择性思维,人们倾向于注意并寻找能够证实一个人信仰的东西,而忽视,不寻找或低估与一个人的信仰相矛盾的相关性”。
一个很好的例子就是如果你想购买一辆新车,突然间你似乎注意到了许多你想购买的同款车。 你的头脑正在调整自己以注意这种车型和车型并让你更多地注意到它们,即使在你开始到处看到这种车之前实际上已经没有这种类型的车了。 又如:一旦女儿出生,婴儿车和游乐场似乎无处不在。
David McRaney在他的网站上给出了确认偏差的一个很好的例子 - 下面的示例如下所示:
“确认偏差是一种过滤器,通过它您可以看到符合您期望的现实。 它会让你有选择地思考,但真正的麻烦就是在确认偏见扭曲了你对事实的积极追求时开始的。 - 大卫麦克雷尼“
如果没有确认偏见这样的东西就没有阴谋理论。 阴谋论是基于证明理论正确的信息; 那些相信理论的人会忽视破坏那个理论的证据。 作为测试人员,你曾经发现了一个有趣的问题,但是当你抛给开发人员时,他们会为你提供大量的证据,证明你看到的不是问题吗? 这可能表明开发人员存在确认偏差。
对测试人员的影响
您正在与开发人员密切合作,并开始向他们询问有关您即将测试的版本的问题。 您询问他们认为哪些领域风险最大且他们认为最重要的区域有哪些,因此您可以根据需要调整优先级。 这是开发人员和测试人员之间每天都会发生的典型交流。 您现在开始从高风险区域开始测试,然后前往低风险区域。您在高风险区域发现了一些严重错误(正如预期的那样),您在低风险区域找不到任何问题。
发布后,您测试的低风险区域会报告一个主要错误。 你是怎么漏掉这个bug的呢? 是否你看到了这个bug,但你的想法认为一切都正常呢? 确认偏见是否起作用? 你的潜意识是否隐藏了这个bug? 现在这变得非常可怕,大多数从事软件测试工作的人都知道有些bug试图向你隐瞒,我们希望它们隐藏在软件中。 如果他们决定隐藏在你的大脑中会发生什么呢?
如何防止确认偏差?
防止确认偏差的快速简便方法是确保多个测试人员测试相同的功能。 他们可能会带着他们自己的确认偏见,但很可能与先前其他测试人员的偏见不同。 如果测试人员们没有预先讨论测试区域,那么偏见不同的可能性将更大。
防止确认偏差的另一种方法是与开发人员,另一个测试人员或最终用户进行“结对测试”。 这样你就可以互相质疑什么是真的,什么是假的。 可能彼此的确认偏差会相互交错,但风险应该低于您自己工作的风险。
由于它具有传染性,因此不容易消除确认偏差。 在软件开发项目上工作需要测试人员与其他业务领域以及每个阶段进行越来越多的沟通。 随着每次谈话,可以引入偏见。所以偏见需要团队所有成员适当的考虑。
我的观点是,由于我们的思维方式很容易欺骗我们,因此没有现实的方法可以防止确认偏差。 至关重要的是,在软件开发项目中工作时,每个人都需要能够清楚地相互沟通。 但是,如果测试人员意识到存在确认偏差等问题,那么他们可以尝试采取措施确保其不会进入测试阶段。
2、认知失调
关于认知不协调及其真正含义的研究已有很多,维基百科将其描述如下:
“认知失调是同时持有相互矛盾的观念所引起的一种不舒服的感觉。”
认知不协调的历史可以追溯到伊索寓言中狐狸和葡萄的故事。 想要吃葡萄但却无法接触到它们的狐狸, 为了弥补他在自己内心的冲突,让自己认为他真的不想要葡萄,于是认为葡萄要么不够成熟,要么太酸了。
如果你有两个要测试的区域,每个区域都有相同的重要性,你选择A区而不是B区,你现在可能会下意识地选择A而不是选择B.如果一位同事说B区更重要,你就会发生冲突 ,你的思想需要说明为什么你会选择测试A而不是B.你可以做出如下声明:
- A区已经过测试,对我来说测试它很重要。
- A区与用户关注点紧密相关,因此我认为它更为重要。
认知失调怎么会影响测试呢?
如果我们对我们正在测试的软件100%根据需求来测试,而与它实际应该做的事情相矛盾,我们调整我们的期望来证明软件正在做什么,那么我们就有可能错过一个重要的错误。根据我自己的经验,当测试人员遵循需求测试时,这种情况会发生的可能性很大。当软件的行为方式不符合需求时,这可能会导致测试人员忽略软件正在做的事情(即使这是正确的)并将其报告为缺陷。
在许多情况下,尤其是如果开发团队任务需求时非常重要的话,就会发生这种情况。我遇到过缺陷被拒绝的情况,原因是缺陷不符合需求。
如何尽可能减少认知偏差
每个测试者都应该意识到我们在测试产品时做出的每一个决定都会受到我们的认知偏见。一旦我们形成一个想法或理论,我们就会寻找证明我们的想法是正确的方法而不是证明这个想法是错误的。
我们作为测试人员面临的问题是,我们提出的一些要求和由此产生的测试想法可能会受到连接效应的影响,我们的头脑告诉我们事件'x'发生的概率大于事件的概率' Y”。当我们查看数学时,每个事件之间的概率是相同的,或者事件'x'实际上具有较低的概率。
“有关实验指出,如果在做出决定之前,人们被允许与他人讨论和交流他们的想法,那么联合谬误的发生率就会显着降低。”谬误谬误: - Gary Charness ,Edi Karni,Dan Levin:2009。这表明仅通过简单地与其他人交流和交谈就可以减少发生联合谬误的可能性。
可以参考的方法:
- 使用配对测试。有证据表明社会促进有助于减少认知偏差,配对测试是利用社会促进的一种方式。
- 为了避免认知偏差,重要的是不要孤立地工作,并确保您在计划测试(启动),执行测试(配对)以及测试结果(汇报)时让其他人参与进来。
- 不要仅从一个角度来看问题
- 使用探索性测试方法,这有助于降低您对待测产品的期望和假设。 它试图通过使用模型,神谕和启发式方法来实现这一目标,以确保您在测试时不断挑战您的信念,偏见和期望。