除了兴趣和好奇心之外,还有一个因素是驱使测试人员不断地工作的,那就是成就感。开发人员的成就感来源于创造、建设。测试人员的成就感来源于破坏、指责。
这种建立在破坏、指责带来的成就感,看起来好像不是很健康。但是其实每个人都或多或少的存在这种倾向。只不过是测试人员把它正当地使用起来了。
人天生就存在两种倾向:建设倾向和破坏倾向。这也是为什么世界上会存在两种人:好人和坏人。
这个世界上好人多还是坏人多?好像不能确定。毕竟好人和坏人的界限不是那么清晰。但是看起来好像是好人多一点,否则这个世界上要建太多的监狱了。这是因为我们都认为建设要比破坏要好!所以从小教导小孩子要听话,不要撕破书本,不要往墙壁上乱涂乱画。因此,我们大部分人长大后都做有建设性的工作。
但是破坏性工作同样是非常有意义的。据说美国国防部就聘用了一些黑客来帮助他们防御电子攻击。在测试工作中,你可以尽情地尝试破坏软件,破坏的结果是找到缺陷,或者证明了软件的承受能力、健壮性、容错性。在破坏中找到乐趣、找到成就感。
指责别人要比赞扬别人来得容易,给自己带来快感。所以大部分人不会经常赞扬别人,倒是经常指责别人。这也是为什么世界上那么多矛盾、吵架、争斗。赞扬是好的,但是在测试这里,赞扬没有指责好,我指的指责不是针对人,而是针对软件测试时抱着的一种心态。如果你满怀欣赏、赞扬的心态去测试一个软件,你看到的都是好的方面,那么怎么能发现缺陷呢?但是如果你是抱着指责、批判的态度去测试的话,你满眼都是关于它的缺点,你就会想尽办法让它暴露出来。
2、好奇心
软件产品与硬件产品的区别在于,软件产品的设计制造过程更加依赖人。人相比生产硬件机器来说要更加不稳定些,因为人有情绪,人的心理状态决定他的情绪。那么我们在研究如何提高软件产品质量时,就不可能忽略一个重要的因素:人的心理问题。
由于测试员的工作的特殊性,决定了他在这个角色上会有特定的心理特征,作为测试管理,应该研究这些心理特征和心理模式,以便在管理过程中充分考虑这些因素。
好奇心
“好奇心会把你杀死”,这句话在测试领域不适用,而且在这里越是好奇心强烈的人越容易成为优秀的测试员。
对软件的功能好奇,对软件所能做的事情好奇,对使用这个软件的用户好奇,对软件在界面的背后悄悄做的事情好奇…这么多可以好奇的东西,这么多可以让你探索的东西,你是否有了成为“福尔摩斯”的冲动呢?
软件测试就是在探索中学习软件产品,在探索中理解用户需求,然后用测试和调查来验证产品是否满足用户的要求。(参考 James Bach 的 What is Exploratory Testing ? 和 Where Does Exploratory Testing Fit ? )
在我看来,测试就像坐着火车去西藏旅游,沿路经过很多有趣的地方,发生很多有趣的事情,看到很多有趣的人,这个过程本身就很丰富多彩。
好奇心会让我想知道进度条的背后系统正在做什么勾当,驱使我去找程序员问个究竟或者看他们的代码是怎么写的。好奇心会让我想搞清楚究竟系统能承受多少个并发用户的访问。好奇心驱使我在想将来的用户会用这个软件做什么事情,他们会怎样摆弄这个软件,他们是否也像我一样觉得这个界面颜色不好看,像我一样觉得这个操作很繁琐。
3、兴趣
兴趣是最好的老师,如果对测试工作真正感兴趣的,就会不断地研究测试相关的理论知识、技能技巧、工具等。
找到自己真正喜欢的工作,研究自己喜欢的东西确实不容易,因为很多人其实不清楚自己是否真的对这份工作感兴趣。很多时候是迫于生活压力而去做某些工作,有些时候是人云亦云,对热门时兴的职业趋之若鹜。
我经常碰到一些应聘者来应聘测试员的时侯说,“我并不是不想做开发,只是觉得目前能力有限,还不能做开发,测试的门槛相对低点…”
我想其实他可能只是对软件相关的职业感兴趣而已,并不是真正对测试感兴趣。
随着测试行业的兴起,测试工程师的职业成了网络、培训机构操作的对象,很多人就是冲着这个“香饽饽”来的。
除去这些原因,还是有些人真正为了自己的兴趣而选择了测试行业的。也有一些是当初并不确定自己是否适合这个职业,后来经过实际的工作,越发爱上了测试这份职业。
如果我们真正去探究是什么让他们对测试如此着迷时(当别人都找不到BUG时,他还能找到,当别人都对重复的回归测试感到厌倦的时候,他还是抱着探索的精神,继续测试),我们可能要回到他的童年,看看形成他的这些性格因素对他的测试工作产生什么影响。
小时候,我们经常会对着一个小玩具,噢!不是现在的掌上游戏机!它可能就是一个陀螺,甚至是一个拖把。我们也会对着它玩上半天也不会感到厌烦。我们会变着花样来玩它,我们扮演各种角色,把它当成道具,玩得不亦乐乎。
现在的测试工作是什么,测试的对象有时候就是个玩具,只不过有些看起来过于严肃而已。如果我们能把软件当成玩具来玩,那么我们可能不会那么快就认为测试已经可以停止了。因为还有那么多有趣的玩法还没尝试。
如果你实在是玩腻了,还大可以把玩具狠狠地甩在地上,用脚踩几下,看它有什么反应。哈哈,这也是一种测试方法!你是在进行破坏性测试!(参考James A. Whittaker的How to Break Software)
把你的小脚踏车一边又一边地从斜坡上冲下来,每次装上不同重量的东西,看装上哪一种东西会最快。哈哈,原来你是在做压力测试!
这些曾经在小时候觉得那么好玩的事情,现在你在测试时是否也能重温得到呢?