那些非理性的测试行为
  心理学诠释常见的测试怪象

           @葛锋-Roger
  诺西杭州研发中心测试自动化教练
测试中有很多奇怪、但又司空见惯的现象。
这些现象为什么会存在,我们的出路在哪里?
今天我们将聊点什么
我们试图从行为心理学的知识角度,结合
生活中的类似现象,分析和理解一些测试
现象,抽象出两者共有的行为模式,以此
探求合适的解决方案,逐步改进我们的测
试。



    /
测试行为中的五个为什么:
为什么有些人会反感review?
为什么好的practice推广容易遭拒?
为什么有些人觉得十分钟的case运行时间不算长?
为什么测试配置变动,我们总想到修改case?
为什么在了解现象原委之后,我们依然驻足不前?




/
为什么有些人会反感review?

/
埃菲尔铁塔
      假设发生如下场景,请用第一
      感觉描述你的情感反应:

      你买了一个木质的,且已经拼
      装完成的埃菲尔铁塔模型,晚
      上你的孩子趁你不注意将它拆
      了。

      你买了一盒木质拼装埃菲尔铁
      塔模型,花了整整一天的时间
      将模型搭建了起来,晚上你的
      孩子趁你不注意将它拆了。

/
测试代码终于写完了,
          调试也通过了,今天
          挺有成就的,开心


Review前             什么?你让我把这些
                    全改掉?那我之前的
                    很多事情不白做了?


          Review中             改得太让我恶心了,
                              这该死的家伙,懂什
                              么呀,就知道瞎指点


          /
                    Review后
Review完的n天后,本
    地代码update完……

    啊!!这家伙原来很
    多都没有改,那我提
    那么多意见干嘛呀。
    真是吃力不讨好,真
    没劲。




/
我们认识到如下关系




/
成就否定
    我们从创造中得到了快乐,这是我们努力的动力。

    否定我们的工作成就会扼杀我们先前得到的快乐。

    否定成就同样会让我们觉得我们的工作没有意义。

    当快乐和工作意义感消失后,积极性会严重受挫。


/
愤然离去的泥工师傅
        装修时新房的卫生间是下沉式的,
        需要用红砖与砂浆垫高。

        泥工师傅没有和我确认,自定了
        施工方案,结果将高度垫高了。

        结果卫生间和客厅的地坪水平面
        相同,这是不符合施工规范的。

        我要求返工。因工程量过大,沟
        通无果。泥工师傅和他的老婆(帮
        手)愤然离去。

/
类似情形没有再发生,如何做到的
      三方沟通           现场确认施工方案




             最后的结局




/
如何进行有效的review?
    首先可以确认的是,必须肯定我们的工作成就。

    将事后发现逐渐改为事前预防,如同CI一样。

    事前共同讨论良好结构,以及需要注意的细节。

    编写过程中pairwork,及时解决冲突,求得大同。


/
为什么好的practice推广容易遭拒?
/
红烧肉
红烧肉难点:如何有效去掉肉腥味。

曾经的做法:姜+料酒,去腥味不彻底。

老婆发现的新招:料酒浸泡+中间放醋。

我担心醋会使肉发酸,一直不敢采用。

直到有一天,姜没有了……

我被逼尝试新方法,结果腥味真的没了。



/
不,这种测试方法
    并不适合我们组,   这种测试方法我们
    我们组情况比较特   已经在一些组试验
    殊,和他们不一样   过了,效果不错,
               你们可以尝试一下


/
没有交点的怪圈
多数个人或团队不想自己成为改
良技术或方法的第一个试验品。

即使有了别人的第一个成功的案
例后,还是会以“不适合我们的
情况”加以推脱。

他们寄希望于推广者能给出符合
他们自身情况的成功案例。

但是在给出这种成功案例之前,
他们自身并不想参与进来。


/
牙刷理论
    人人都想要牙刷,人人都需要牙刷,人人都有牙
    刷,但谁也不想用别人的牙刷。

    人一般对自己自主或参与完成的事情拥有很强的
    情感依赖,除此之外的事情偏向于持保守态度。




/
如何让我们更容易接受好的实践?
    放正自己的心态,跨过我们心里那条小小的坎。

    不妨尝试,说不定真能帮助我们改善些什么。

    让我们尽可能少地提及新的专业技术术语。

    让我们彼此多沟通,了解和分析组里的潜在需
    求,尝试技术方法实践本地化。

    尝试pairwork做个demo的可能性,让我们彼此
    都看到实践的可操作性。
/
为什么有些人觉得十分钟的case
       运行时间不算长?
/
油价,我们心中永远的痛
从我们自己有车的那一天开始,我




                  2007年初
们开始密切关注油价的变动。发改
委的每次涨价通知,都让我们心生
不满。

每次去加油站,掏出一张张百元大
钞的时候,我们的心都在滴血



                  2012年3月
纵观过去,为什么每次油价上涨让
我们感觉有如割肉一般?



/
没见过世面的家           在我们新产品部门,
伙,十分钟的            十秒钟可是上限。这
case在我们老产         帮家伙在控制时间上
品其实不算长的           真是毫无节制




     两位分别来自新老产品部门的2B青年
    在简单看了老产品的case运行时间后…
意识中的“锚”
    锚/锚定:我们看到一个商品的第
    一眼价格,会对我们此后购买这一商
    品的出价意愿产生长期影响。

    任意一致:尽管最初的价格是任意
    的,但是一旦这些价格在我们脑中确
    立,它就能塑造我们目前和未来的价
    格理念,并一直寄希望于两者之间的
    价格趋于靠近、一致。


/
是什么“锚”让我们觉
        得十分钟的case运行时
        间不算长?




我们观察后发现,带
有启动操作的case运
行时间就是那个“锚”

/
就餐餐馆的改变
    大学时代的普通标准   工作以后的最低标准




    我们甚至都没有留意到“锚”的转变是如何发生的

/
如何从我们的思维中逐渐舍弃掉
     已有的“锚”?
建立截然不同的新标准   经常自我与他人提醒新标准

                    以后写case的时候注
                    意点时间!别这么乱
                    来了!听到没有啊!




     /
番外篇:自我羊群效应




最初决定转化为长期习惯,这个过程是如何产生的:
羊群效应:基于他人的行为来推断事物的好坏,以决
定我们是否模仿。
自我羊群效应:基于自己先前的行为而推想某事物的
好坏。
/
为什么测试配置变动,我们总
       想到修改case?
/
走的那段冤枉路
开始装修房子的某一天午后,想去上
塘路、城北的百安居观摩一下。

我住在城西的古荡小区,网上查了一
下,没有直达公交车,怎么去?

第一意识告诉我,需要换乘。
输入起始站:古荡小区。
输入终点站:上塘路绍兴路口。
公交查询系统提示:武林广场换乘。

到达目的地后,发现77路经过文三西
路丰潭路口,即古荡新村西数百米。

/
问题出在哪里
    换乘让我浪费了很大的时间成本——后来我乘77路算过
    时间,那段换乘的路让我多花了差不多45分钟。

       谁害了我?

       公交查询系统?

       我自己?

       我错在哪里?

       那该死的起始站!


/
体恤民情、持续改良的领导
                   Day A:我们打算将你们的
                   case迁移到部门集中测试环
                   境中去,便于集中调度!
                   Day B:我们老的外部测试设
                   备坏了,不幸的是我们没有
                   买额外的服务,你们将Case
                   迁移到新外部测试设备上吧


    这样改动的工作量好大,
    整天改来改去,一点意思
    都没有。真不知道哪一天
    这帮家伙又要出什么幺蛾
    子。我撞墙的心都有了
                      苦逼的测试人员
/
你是不是总是走在一种颜色的格子里?




/
思维定势
    人们在一定的环境中工作和生活,久而久之形成
    了一种固定思维模式。

    积极作用:在客观条件不变的情况下,从事某
    项活动相当熟练,甚至达到自动化,节省时间精
    力。

    消极作用:惯性思维,只要某一情况出现,人
    们就会顺着过去的习惯去思考,就是“想当然”。


/
如何将case改动量减少到最小?
    打破自己的思维定势。

    从软件开发中借鉴解决方案。

    面向对象抽象:资源剥离;
    外部设备操作组装成独立的
    库。

    测试逻辑和测试实现分离。

    将不变与变做结构上的分离。
/
为什么在了解现象原委之后,我
       们依然驻足不前?
/
疯狂的iPad
新近入手一台带有激光刻字的iPad2

两周后,忽然出现严重的屏幕漂移

但两天之内,问题越来越难复现

联系售后,爽快答应延长退换周期

是否真的退换货,我没能果断决定

即使我知道退换货无需额外费用成本



/
兄弟你也知道,
           这是历史遗留问
           题,我们是心有
           余力不足啊!



你也知道,我们
的TA结构比较糟
糕,想办法重构
一下,咋样?



/
拒绝改变
    损失厌恶:我们一般过高的估计自己拥有的东西,
    把失去它是一种损失。
    保持现状偏见:我们愿意保持现状,做出改变既
    困难又痛苦,我们宁愿如果不改变就尽量不变。
    决定不可逆:事实证明,一般的决定已经够困难
    了,不可逆的选择就更加的困难。
    沉没成本误区:回顾所有的努力,我不愿意让这
    一切付之东流,便决心继续下去。
    自我合理化:随着时间的流逝,我们会逐步将原
    先的决定合理化,并认为是一种历史遗产或文化。

/
如何能够激励自发改进?




/
我们可能做得还不够好




/
我们可以做得更好
    学习精湛的测试技术并实践之。

    了解微软、谷歌是如何测试的。

    学习编码,提高自动化测试技能。

    学习软件设计,思考Case设计。

    学习动态自动化测试并辅助ET。

    ……


/
我们希望成为




    个性独特的测试达人
/
前面的路依然艰辛漫长
    但别忘了时常回头看看




/
仅以此篇献给所有奋战在
    测试一线的兄弟姐妹们!




/

那些非理性的测试行为——心理学诠释常见的测试怪象