|
经常听到有人说"我现在做手工测试,技术含量低,想转到自动化测试",也有人说"我现在做黑盒测试,技术含量低,想转到白盒测试".手工测试或者黑盒测试就一定技术含量低吗?其实并不见得.自动化测试或者白盒测试就一定技术含量高吗?其实也不见得.这里我想简单谈谈我的看法.
测试的分类目前我感觉并不成熟.比如,你分为黑盒,白盒就不是非常科学,也不能适用于所有的情况,因此出来一个模糊的灰盒的概念.灰盒介于黑盒,白盒之前,但是具体一个人从事灰盒工作到底有多少是白盒内容,有多少是黑盒内容,里边的差别可就大了.把测试简单地分为手工和自动化也并不是非常科学,与黑盒白盒类似,有很多测试也是很难归于手工或者自动化,实际上应该是介于手工和自动化之间的测试也是很多的.因此,与灰盒的概念类似,还应该存在一种测试,我暂且叫做半自动化测试.以上我想说明的是,测试目前很难简单地被分类,而你所从事的测试工作也不应该简单地就归于哪类.下面就谈谈我觉得怎样分类可能更科学,更能体现实际的情况.为了说明方便,我就暂且不谈灰盒和半自动化测试.
请看下表,我把测试分为了4大类。其实我们所谓的技术含量低的测试主要指的是“黑盒手工测试”。为什么说他技术含量低呢?因为黑盒测试不需要懂代码,手工测试不需要会编程。总的来说就是不需要编程能力。当然做黑盒手工测试的人未必就水平低,黑盒手工测试也未必就代表技术含量低。请注意,我先前所说的是不需要编程能力,不代表编程能力甚至软件开发的高级能力不能在黑盒手工测试中派上用场。也就是说,如果一个人软件开发能力很强,他即使只用黑盒手工测试也照样可以做出高技术含量的工作,或者说找到高难度的bug。最显著的例子就是黑客了,那些具有高水准的黑客高手很多情况下都是在没有源代码的情况下通过工具的使用来发现那些安全漏洞。区别在哪里?区别就在于他们的技术比我们一般的黑盒手工测试人员的技术不知道要高多少倍。因此,我的意思是,在测试的工作中采用什么测试方法并不能决定这个工作技术含量的高低,高水平的人无论用什么方法都能做出高质量的工作出来。通常我们都会选用最适当的测试方法来进行工作,而我所强调的是不要把注意力过多地花费在测试方法上,而更应该注重提高自己的个人能力,尤其是编程,软件开发的能力。
手工测试 自动化测试
黑盒测试 黑盒手工测试 黑盒自动化测试
白盒测试 白盒手工测试 白盒自动化测试
另外我想说的是,做手工测试的人也未必一定要转到自动化,你也可以向白盒手工的方向发展,而做黑盒测试的人也未必一定要转到白盒,你可以向黑盒自动化的方向发展。当然了,一个黑盒手工测试人员无论是从横向(黑盒自动化),还是纵向(白盒手工),又或是垂直(高级黑盒手工测试)发展,都是离不开软件开发能力的,这也是为什么我一直强调编程能力的原因。没有良好的编程水平,就只能限制在了低级黑盒手工测试这个范畴了(管理发展路线除外)。
当你具备了比较强的开发能力之后,你再回头看这些测试方法的时候,你应该会头脑清晰很多。正像很多人说的“白盒代替不了黑盒”,或者“自动化代替不了手工”那样。是的,每种测试方法都有自身的优势,都是不可替代的,一个测试人员没有必要去强求只在一种测试方向去发展。一个高级测试人员应该是所有的方法都会,而且能够选择最恰当的方法去进行测试。而一些黑盒手工测试人员也不应该由于黑盒不可替代,手工不可替代,就不去学习与了解自动化或者白盒测试技术,更不应该去贬低自动化测试。
总而言之,测试的方法是多样的,测试的发展也是多姿多彩的,敞开你的胸怀去了解与学习更多的测试技术吧。了解的越多越好,理解的越深越好,这样才能使你在测试的工作中如鱼得水,胸有成竹。测试没有最好的测试方法,只有最恰当的测试方法,多了解一种测试方法,你就多增添一份工作能力。 |
|