其实这话已经是老生常谈了,我记得2002年51CMM的测试论坛里面就有过这样的争论,无非分成两派或者需要或者不需要。其实这样的帖子跟“用JAVA好还是用C++好”一样没有多少讨论价值,首先讲个故事:
昨天的传奇说了这样的一件事情,有一对美国兄妹(没有受过多少教育的那种,妹妹读书读到社区高中,通过补考得到了最后的高中毕业证书),某天哥哥被别人陷害入狱,罪名“谋杀”。当时的证据都对她哥哥不利,并且有几件可以证明清白的证物都莫名其妙的消失了,最后陪审团判定当事人谋杀成立,终身监禁。妹妹相信哥哥是无辜的,她顶住压力通过各种途径帮助哥哥,但是她实在出不起高昂的律师费用,所以她决定自己做律师出庭为哥哥辩护。
当时妹妹的处境也不好,丈夫因为嫌弃和她离婚,并且留下了两个儿子交给她独立抚养,妹妹一边上社区大学一边打全职工(现在我也弄不明白这个妹妹怎么上学的,估计是类似于中国大学自考性质的),断断续续中间过了6-7年,妹妹毕业后继续报考法学院,再经过4年(看电视上的时间一晃而过其中多少艰辛!)她终于获得了为哥哥取证、辩护的资格,一名标准美国律师。实际上后面的故事就很简单了,经过现代DNA技术判断,他哥哥原罪名被推翻无罪获释,他们整个家族的声誉恢复等等。
我始终对这种节目的潜台词感兴趣:只要你去做而不是仅仅留在口头上你就能做成功!我们现在回过头看看我们的标题“测试需要有编码基础吗?”
对我来说,只要是做IT的就不可能避免的接触代码,测试作为开发的紧密切合过程,深入编码内部是毫无疑问的,如果你连代码都看不懂怎么做一些特殊的测试?这里我说了是“特殊”测试,如果你碰到了以下场景,请开始努力学习代码技术:
1.假设公司采用了面向对象的语言,采用了面向对象设计的设计,并且技术总监是个测试狂人,他需要每个测试人员展开100%的技术导向测试的。
2.假设你在UNIX环境上工作,并且你要配合开发做联测的。
3.假设你在测试工作了很多年,但是你厌烦了静态测试想尝试一下动态测试的时候。
4.假设你从后台LOG中看到了ERROR,但是BUG定位范围过大需要在代码中内嵌跟踪语句,且开发人员非常粗鲁的。
5.假设你无法靠想象排除相互动作的三套系统究竟谁才是BUG归属地的。
6.假设性能测试需要生成一堆天文测试数据的。
7.假设客户单位要求这么做的,不做不付合同尾金的。
8.假设你很有时间,测试工作也不累并且从来不加班的。
9.假设你的测试需要达到某些软件前置条件的。
10.假设有上万份测试结果报告需要你1个小时内总结的。
11.假设你需要点编码知识增加点“信心”用以欺骗自己继续在测试生存下去的。
12.假设你想加薪水,且BOSS也这么认可你的。
等等等等......,除此之外看来。编码直接对测试真的没有什么太大的或者其他的帮助,就像你你出门旅游一样带了一大堆东西,有些东西原样带出原样带回,标准累赘。
实际上对测试最大的帮助的还是测试理论是否扎实,而测试理论是需要其他软件工程各个方面知识堆积的,如果今天我把标题修改成“测试需要有软件设计基础吗?没有软件设计基础对以后的测试发展是不是会很难?”、“测试需要有需求分析基础吗?没有需求分析基础对以后的测试发展是不是会很难?”等等,你认为这样正确吗?
对于非计算机类从事测试的人员,我始终保持最高的敬意,上面故事的最后一段话就是送给你们的,因为你们的大学教育和现在的工作处境不一样,所以你们需要看点代码增加点“语感”,这样可以很快速的加强你们对测试的掌控能力,至于计算机本学科从事测试人员,我什么也不说,去看达尔文的“演化论”吧!
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/