前文在描述自动化测试的的概念中,我们讲到测试界大师Jamesbach对自动化测试有这样的定义:
Test automation is any use of tools to aid testing。 注意是帮助测试的工具。对,就是工具。
小时候我们邻居家木工出生的,平时这个木工会在家里做一些木工活,看他娴熟的操作,没多久的功夫,就做出一个小板凳,如果时间更长一点,你可以看到,做出了灵巧的凳子,桌子等等,在观察的过程中,你就可以发现他使用了很多的工具,细心一点,这些工具也是用木头加上一些金属做的,灵巧得很,人通过使用这些工具快速创造出了这些好用的器物(产品)。
工具的好坏直接决定生产力,效率差距是明显的,在农村,割稻之后需要把稻穗打下来,一般比较穷苦的家庭会用如下的工具1:
而稍微富裕的家庭会使用如下的工具2:
本人两个都用过,这两个工具虽然都需要人工去取稻穗,但是工具2 不需要手工取打稻穗了(手脚并用),效率高了不少,省力又省工时。
回到我们的自动化测试,IT行业,特别是软件行业,工具对于效率提升是非常明显的,用好了和没有,生产率可能是50-100倍的区别。以编程来说,比如是否采用了好的编辑器?VIM? Sublime text?textmate?用上了好的插件?是否采用了好的代码检视利器?beyond compare?source insight?是否自己定制开发了插件或者批量处理脚本等等。对于自动化测试呢?同样需要选用好测试工具,同时测试人员需要学会编程,并且能否快速定制开发出适合被测对象的特定工具或者脚本,这样才能真正的高效测试,测试人员也才能成为真正的资深“木工”,自动化测试才算是做起来了,否则,不客气的说,自动化测试是没有的,至少效率是低下的,至少是摆摆样子的,至少会被人理解为是发现不了缺陷的累赘,至少测试人员不会编程是没有前途的。
Lee Copeland在<A Practitioner's Guide to Software Test Design>一书的最后章节
Section V: Some Final Thoughts也讲到了他儿子的(油漆工)工具箱,希望测试人员有自己的测试工具箱。
希望测试人员也要学会编程,能够快速开发自己的测试工具箱,并且用这些工具用的很溜,成为真正的测试大师。