诚然,我也不是大家,说的话也没有权威性,只是说明一下自己的感悟。
测试需要懂编程知识。但是不是所有的测试都会用到编程知识。
要是你想要做自动化测试,编脚本是基本的能力,所以你要会脚本语言以及协议
一个不懂得脚本语言的人,是不够资格去做自动化测试的。因为你除了简简单单的录制脚本之外,需要设置的东西很多。需要你用脚本语言进行控制。
msn测试中国里经常有人问,为什么他录制的lr跑不了?很多原因在于脚本控制有问题。比如,对于web里面随机弹出的某个窗口的控制。你在录制的时候可能没有,但是回放的时候出现了。那你的脚本自然就跑不下去了。解决这样的问题,怎么能缺了脚本语言的基本功?
还有,为什么我录制了,看不到脚本?很多的时候是因为协议选择错误。要了解其中的原因,自然也是需要了解一些协议方面的知识了。
要是你要做白盒测试,一定要知道白盒测试的几种基本方法。因为方法决定了你要会的东西。
静态白盒测试,需要做的任务是检查设计和代码,主要就是静态的检查,审查和走查;动态白盒测试主要是让程序运行起来,然后进行相关代码的检查。主要手段有数据覆盖,代码覆盖(条件覆盖,分支覆盖)等。
理解了这些,就不难知道,要想做白盒测试,懂得测试的程序,至少保证能看懂和能改,能够进行代码注入是应该具备的能力。自然,根据不同的项目要求,需要具备的编程能力就不同。
黑盒测试,很多人说,这是最没有前途的测试种类。我不这样认为。黑盒测试,对于测试员的要求,业务的理解,客户需求的理解绝对要高于一切。也就是说,用户需要什么,你的关注点就在那里。比如说,手机测试,你就要保证等到用户拿到这个手机的时候,使用的时候,是满意的。不能有任何的问题,至少是让用户无法容忍的问题出现。奔着这个目标,自然就知道自己该关注的问题是什么。至于你测试的这个程序是用什么语言编写的,有哪些实现的方法,并不重要。重要是这个东西,能用,好用,易用,安全,可靠,然后用户满意。
此外,还有对于测试全局的把握,不能做好手头的那一块就完事了。这是和开发人员最大的区别。你必须从更高的角度来看待问题。了解更多,发现更多。比如说你测试A模块,但是发现了B模块的问题,发不发这个bug在其次,你一定要让负责B模块的人知道哪里出现了什么问题。你不是在抢他们的生意,也绝对不可以视而不见。因为你的这一个“忽略不计”,可能会给这个产品带来隐患,导致这个厂家以后会蒙受巨大的打击。你也必须对得起在你身后,付了钱的,等着使用的用户们。因为你在为他们将要使用的产品负责。
至于测试工具,数据库,我觉得脑袋聪明一点,学习能力好一点的,这些东西,会一种顺手的就可以了。剩下的,都是工具嘛,用到了在学其实才是学习最快的方式。
最后还是自己写过的那些话:
软件测试从立项到出厂,也是一条长长的流水线,我们都是关注其中某一段的人。虽然说软件测试全程关注,但是也少有人少有项目组从头到尾都在参与。一般会有不同的人不同的项目组参与不同的阶段。在某一段,某一个领域,你成为资深的专家已经够让你学习一辈子。这样理解的角度来看,其实如何一种有这种全程质量思想,认为软件质量高于一切的人,都可以胜任这份工作,区别就是你发展的空间有多大而已。
如果我说,我就想做一辈子黑盒测试,那么我一点编程也不会,但是懂很多的业务,比如银行的软件,通信的软件,sap等,我熟悉所有的流程和业务体系。也可以啊。你会编程,会数据库。但是你不懂业务,我们一起去应征,我敢说,除非他们需要白盒测试,否则他们会要我不要你。。因为很简单,客户是上帝,我诠释的很好。而你未必可以。
不过,要是以上你都会,就可以成为“武林高手”了。不过,目前的江湖缺少秘籍,不知道要你学多久。
转自: 51testing