编写背景:
最近工作很忙、很累,北京7月的天气非常的闷热,就在这样的7月里,工作中碰到了很多事情,特别是在我工作中,沟通最频繁的开发人员,让我不得不在繁忙的时候挺下来思考一些问题,记录一些事情,让自己的心情透透气,呼吸新鲜的氧气,好继续努力。因此就有了这篇文章。
有时候,优秀的开发人员是被优秀的测试人员调教出来的
7月,北京的天气非常的闷热。就在这个闷热的天气,公司走了两个优秀的开发人员,高兴的是,公司把我现在所跟的这个测试项目的开发人员给留住了。经过这么长时间的测试工作,让我体会到:有时候,优秀的开发人员是被优秀的测试人员调教出来的。
记得刚到我现在的这个公司,试用期过后,我就开始测试A软件,这个软件的开发人员编写程序很细心,也很有责任感,心态态度也很好。因为,我在测试他的程序的时候,他设计的界面都很好,考虑到了用户使用起来怎么样会方便,当我发现他的程序的问题的时候,我告诉他,他第一反应是看我怎么操作出现这样的问题的,然后他回去分析程序,用程序进行跟踪,我也帮他分析,我俩配合沟通都非常的好。每次我发现的问题,他认同的会很快的改过来,他不认同的问题会向我讲解他的理由,理由非常的充分,让我很服他不修正问题的原因。我们的关系处的非常好,不像其它同行所说的测试人员是开发人员的敌人。这样一直配合到我们把A软件正式发布了。在这期间他还帮我写些小工具,方便我测试的时候好建造数据。一年半过去了,前不久,他在做其它用户的个性化程序,他都习惯性的先给我看看,看我能否给他找出问题,让我很高兴的发现,他的程序我无法在发现问题了,我只能提一些他有时忘记的用户操作的友好性问题。嘿嘿,他现在写程序的时候已经习惯注意到我测试时经常会发现他那些问题,他经常容易忽略那些问题。因此当他提交给我测试的时候,同样是在一段时间内,同样是个小功能的程序,但是我想尽我浑身招数我都找不到程序的一个bug了,当时,心里既是开心也是心酸,原因是:我不能在测试他的程序了,因为他对我太熟悉了,已经把我测试他程序中发现的问题在他写程序的时候就解决了。他已经在我这里顺利毕业了。以后有机会做白盒测试,兴许可以发现问题。^_^ 写到这里我还在回味着我曾经发现他的那些bug我们一起分析解决的场景。
然而,测试职业的工作不可能总是碰上这么好沟通和上进的开发人员,在工作的过程中,还是会碰上不是这一类的开发人员,那是2004年的7月底,我出差去现场测试B软件了,当时见到项目组新成员,彼此都不了解,第一次见面时,其中一个开发人员见我个子很矮,比较显小,就问我:你是从北京来的?,我说:是的。接着问:你来公司多长时间了?我说:快一年了。在接着问:你来这里是测试B软件的那个功能模块啊?我说:测试B软件的所有功能。他无语。当时给我感觉很是不好。在后来的工作中,我发现他工作很不负责任,自己写的程序不自测,问题很多;写程序不按照用户的需求写、不考虑用户使用怎么方便。所以那段时间,我让他改bug简直是要和他吵架,我可不喜欢和人吵架了,因为我从来没有赢过。嘿嘿,现在想想,当时是平生第一次碰上这样的人,这样的事情。没有经验,没有很好的做好调教这种类型的开发人员的工作,主要还是没有找到很好的方法。后来这个开发人员由于工作不负责任、不好好的干活,公司就让他离开了。当时我心里在偷偷的乐啊,以后不用测试他的程序了。那时候,测试他程序的日子里有时候好怀念测试A软件的日子。
现在测试的这个C软件有两个开发人员,嘿嘿,C1开发人员非常的优秀,沟通非常的好,和A软件的那个开发人员他俩不分上下。只不过他们的性格还是有些不太一样。然而C2开发人员心态就不太好、也没有很好的责任心。当我发现他负责领域的程序出现问题的时候,我告诉他,他第一反应就是没有问题啊,然后我复现给他,然后他分析是不是他的,而不是去找程序是怎么出错的,甚至让我在写bug的时候帮他定位问题出现在那里。在测试人员紧缺和时间有限的情况下,在我看不到原代码的情况下,我怎么去定位问题出现在那个地方。我们之间沟通的时间都花费在了谈论这个bug是谁的问题,这个bug要不要改,就这样花费在了这些没有价值的地方。还好,有了上一次的教训,这次面对C2的开发人员,我心态好好多,已经能平静和正常的对待这样的现象。
现在经过请教有经验的人,思考采用的方法是:
1、把这种情况反馈给项目经理,尤其在出现争论是否是bug的时候,如果出现分歧可以让项目经理来做判断,或者找他们部长之间进行讨论,不要和他直接产生冲突,因为我们是直接面对的,冲突对日常工作不好。
2、关于他的态度我可以和他说,我们的目的是修改程序,并不是确定谁有责任的事情,告诉他,是不是他的责任,我并不关心,我只关心程序是否好用。让他感觉我们之间并没有什么利益性质的冲突。
如果有那个同行看了这篇文章后有更好的方法,可以给我回信咯。嘿嘿,小女子在这里先谢谢了。
休息一下,现在来谈谈最后关于上面这些事情我发出的感慨吧:
优秀的开发人员,当他在发现问题的时候,他会和测试人员一起探讨问题是怎么发生的,甚至测试人员也会问开发人员为什么会出现,这样可以积累双方的经验。下次当他们在进行新产品的研发和测试的时候,开发人员就会知道测试人员会发现怎样的bug,他提交程序前就会给提前改了。那样测试人员可以用更多的时间去考虑那些没有被发现的bug。这样给公司节约不少成本和风险,对开发和测试本身来说都留下了更多的时间去探索更深层的东西。
碰到不开窍的开发人员,测试就要花费很多成本在沟通上和重复验证老bug是否解决上。测试的价值就不能更进一步发挥,时间长了,测试会处于一种疲惫状态,发现的效率会降低,这样对开发和测试都不好。解决方法:只能从人力资源下手了,招人的时候要严格的考核这个人是否真正的符合这个岗位,不然的话,给公司和个人的成本损失太严重了。然而在实际工作中,对于一个开发人员的责任心往往很难一下子就了解,只有在项目中工作中逐渐的发现。
最后我告诉自己:有度量去容忍那些不能改变的事,有勇气去改变那些可能改变的事,用智慧去区别上述两类事情。