首先要说,我并不是狭隘的“QA主义“者,也并不反对测试人员学习编程,提高编程能力。而是我们要对编程对测试人员的作用有一个清晰的认识。
从我个人来说,可以说我一直以来就是编程能力的受益者。
我这6年的工作中,从职位来说5年是在做QA,只有最开始的一年在做Dev,但一直以来我就没有停止过编程的工作。开始是用c/c++,然后是java,ruby,现在用得比较多的是bash。我做过c51单片机程序,j2ee项目,用python和ruby开发过比较复杂的自动化测试系统。商业测试软件使用过robot,qaload,等等。我写的代码质量丝毫不比一个普通的开发人员差。
但是我并不打算学好编程技术而转行去做Dev,也并不是为了做自动化测试而学习编程。大部分的时候我的职位是一名黑盒测试工程师,我热爱这个工作,并且一直干得也很出色。只有一段短暂的3个月我是全职的性能测试工程师,但当回到黑盒测试的时候,我发现我依旧非常享受发现bug的过程。
最开始的时候,我只是因为喜欢编程而编程,就像我喜欢软件测试而去做测试一样。所以我把大量自己的业余时间花在学习编程和软件设计开发上,后来我渐渐发现,编程能力也是软件测试的能力的一个重要方面,因为编程能力能让你更高效的测试。
即使你不是自动化软件测试工程师,也并不打算去做白盒测试,我仍旧强烈建议你学习一门通用的脚本语言,在ruby/python/perl中选一种,如果还有时间和经历,再学习一门通用的编译语言在c/java/c#中选一种。
举一个例子,我现在测试的系统在安装好之后需要在命令行进行一些繁琐的配置工作,这些工作是重复而且容易出错的(我的记忆力不好)。后来我写了一个expect脚本来帮我完成所有这些工作,一个命令就搞定了。所以不但我节约了时间,而且我可以以***的状态去开始真正的测试。
这样的例子,太多了。毕竟,我们工作的对象和环境就是程序和程序构成环境,很多地方都有程序的用武之地。比如测试中需要一个包含100,000个文件的目录。几行代码就能完成手工不可能完成的任务。
追求更高效的软件测试是一个测试人员不断提高自己水平的动力之一,在这一点上编程能力真的有意想不到的作用哦。
作为总结,我想说我对编程能力对测试工程师的作用的看法是,它很重要,但并不是核心的能力。它,是为了让我们更高效的发现bug,那才是测试工程师最核心的能力。
【编辑推荐】