我是在2008年毕业的,三本的学校,不上不下的专业水平,毕业的时候,恰好遇到了金融危机。校园招聘里阴差阳错的巧合,让我走上了软件测试工程师的道路。
入职第一天,来了个高大上的讲师,记得他是这么说的:
“软件测试的要求非常高,做好软件测试很不容易”、“国外的软件测试,很多都由多年经验的资深开发人员来做的”、“软件质量与测试非常的重要”、“软件工程离不开测试”、“测试用例的设计方法有xxx、xxx、xxx、xxx”。
依稀记得培训的最后还提到了高端而且神秘的自动化测试、性能测试、安全测试。刚毕业的我们上完课都很高兴,原来我们做的工作这么有前途啊。心里更是暗暗下了决心,要把工作做好,争取早日加工资。。。嗯,当然重点是早日加工资。
然而才真正工作了半年,我就发现了一个问题:每天我怎么就在做一些一模一样的事啊。每天有点不完的网页,写不完的文档。培训时说好的高大上呢,说好的自动化测试、性能测试、安全测试呢?
09年的时候,测试人员都爱去某论坛上交流,我至今记忆犹新的是,整个版面打开来,一半是问大家薪资多少了,另一半是“工作n年了,感觉很迷茫”。每个人对迷茫的描述都不一样,但问题本质都一样:除了重复劳动,我们还有什么?
一个软件测试人员,有什么是拿得出手的核心技术,有什么东西能使你区别于应届生?
当时我就有个想法,我不想一直做重复劳动了,即使我在入职时是声称我胜任并且善于应付重复劳动的。然而我并不擅长机械和重复的劳动,也不喜欢重复劳动。
我有一个核心观点:软件测试的核心是效率。而不是什么设计方法,也不是什么测试思路。
不管你有没有方法,有没有思路,只要时间花下去,总能找到bug。这也是为什么很多时候,测试人员累死累活测了半天的应用。来一个外行的xx总监,随便点开来就能发现一两个测试人员漏掉的bug。久而久之总监们就会质疑,测试人员到底有什么用,这么明显的问题发现不了。
然而事实上,发现一个问题不难,发现一百个问题也不难,难的是在有限的时间里发现足够多的问题。也就是说,外行也能找到bug,但外行不可能在有限的时间内找到足够多的反映软件质量问题的信息。
”是雇十个应届生点点点来测,还是雇三个资深测试来做系统化的测试?“、”是买商业工具做自动化,还是自己研发测试工具自己搞一套?“
软件测试一切的一切都是围绕着效率这个点来思考的。
也正是为了提高效率,测试必须要引入自动化的手段。注意,不是替代不替代手工测试的问题,而是必须引入自动化才能进一步提高效率。手工测试仍然在,只要他在一些领域上效率高于自动化,就仍然会继续存在下去。
自动化测试,并不是QTP,不是selenium,不是任何一种工具。
自动化测试,并不是回归测试,不是冒烟测试,不是任何一种测试阶段或类型。
自动化是一种提高效率的方法和理念。自动化测试,仅仅是自动化的一种应用。从自动化测试开始,自动化部署,自动化发布,自动化日志收集,自动化环境管理,等等,越来越多的东西都在被自动化。这些自动化的东西我把他们划分到一起,他们的学习方法都是一样的,理念都是类似的。用到的开发语言也都是通用的。可能这些领域以后真的会融合成为一个技术领域。
之前,我已经写过了自动化测试的学习路线:如何学习自动化测试?
另外在本专栏里也发布了我总结的自动化测试基础系列:
接口测试基础,配置管理基础,持续集成基础,性能测试基础,python基础,selenium基础等等,后续还会继续补充。
其实这些都掌握的话,你已经可以轻松地完成转型了。唯一的问题就是掌握这些东西的过程不是那么轻松。我一直认为,技术培训并不应去做知识的灌输,技术知识,是灌输不进去的;谁也不能代替你看完那一篇帮助文档。技术培训分享最重要的是帮助大家培养自己的自学能力,带大家入个门,入了门,有了自学能力,再加上正确的方向,最终我们都能提高技术水平,到达自己想要的高度。
我从自己开始转型的2010年到真正理解了自动化的2014年,再到一直做自动化,做到转型为devops的现在2017年。这中间真是走了很多弯路,踩了很多坑,接触过各种公司和项目:小到初创企业,大到跨国公司,外资,内资,合资,人力外包,项目外包,电商网站,互联网金融,云计算平台。主要用过四种语言,十几种工具,见过各种历史遗留框架、工具、平台,写过大大小小的类库、工具、改造过平台。虽然我只工作了9年,但换了7次单位,真是说多了都是泪啊。。。
我这次想分享的,是我当时转型的经历、对现在测试行业技术大方向的分析和转型方向的建议。另外通过这次分享也希望揭开自动化测试、测试开发、持续集成等等的神秘面纱,让大家了解真实的自动化测试相关人员的工作是怎样的,供大家在自己转型时参考。
联系客服