摘要:本篇文章讲述了我在阿里巴巴三年的自动化测试生涯,总结了工作中遇到了种种困难,以及自己的摸索和解决方案。希望能够给做测试的朋友们一点参考。
关键词:测试发展;职业规划;自动化测试;
感谢好友leeyupeng的指点和建议,谢谢你!
2006年6月,我加入雅虎中国,正式成为阿里巴巴的一名员工,从此开始了我在阿里三年测试生涯。三年里面,我从之前的一名开发工程师转变为测试工程师,从普通的测试工程师尝试转为自动化测试工程师,从单纯的测试工程师,努力向测试架构师转变。中间经历了各种各样的困难,疑惑,总结思考了很多的东西。今天总结成为文字,希望能给大家一点参考。
一 、我的工作经历
我在阿里巴巴三年的工作经历,大致可以分为三个阶段:第一个阶段是角色的转化,从开发工程师转变为一个测试工程师;第二个阶段是尝试提升,开始摸索自动化测试方面的工具,技术;第三个阶段则比较系统的思考自动化测试的整体解决方案,为团队提供工具、方法和培训。
1.1 从开发到测试的转变
在进入阿里巴巴之前,我主要从事的工作是开发。虽然之前有开发过Bug管理工具--BugFree,但真正自己去做测试工作,还是第一次。刚刚上班的感觉,很紧张。需要参加的会议很多,需要接触的团队和同事也很多,每个人的脚步都急匆匆的,说话的语调也很快,大部分的名词和术语都听不懂。怎么办?
这是我遇到的第一个问题:一个公司或者组织,不会停下来等你准备好了才上路。只能自己花时间,多多学习,向老同事请教学习,在最短的时间里面熟悉业务,掌握这些名词和术语。所谓做一行,爱一行。测试也是这样,只有对自己所测试的业务十分熟悉,才能更好的进行测试,保障产品的质量。
很快就有了测试任务,测试ContentMatch(内容匹配,发展成为后来的阿里妈妈)。大名鼎鼎的车东时任CM的产品经理,他给了一些很复杂的公式来计算网页关键词和广告之间的匹配程度,等等。刚开始测试的时候,还尝试用笔计算。后来发现不行,太复杂了,也容易出错。怎么办呢?
这是我遇到的另一个问题:所测的东西的复杂程度远远超出了手工测试的范畴,如何解决呢?后来我尝试写了一个小脚本程序,实现了他的计算公式。只要输入各种数值,就能计算出各种数据,然后和开发的程序的输出进行比对。我想这就是自动化测试的开始。这就引出了一个问题,什么是自动化测试?我想自动化测试不是说对一个东西实现了100%的自动化,才叫自动化测试。凡是有助于省却重复劳动,提供测试效率的工具或者方法,都应属于自动化测试的范畴。
紧接着,就有性能测试任务来了。需要测试一个广告搜索引擎在不同数据规模、不同压力情况下面的性能数据。这次性能测试主要遇到了两个问题:一是测试数据如何产生。二是选择什么样的测试工具。
第一个问题比较容易解决,让开发人员帮忙从生产环境拷贝下来真实的广告数据和真实的流量数据,就可以保证了数据规模的真实,以及流量的真实。
第二个问题,也许有的朋友说,用loadrunner啊。我那个时候没有接触过loadrunner,公司里面也不让用盗版软件。所以就找开源软件的解决方案。最后选择了http_load,很容易就可以完成压力的测试。
就这样,不知不觉中开始了自己的测试之路。
……………………
查看全文请点击下载:http://www.51testing.com/html/02/n-227802.html
二 、如何做好测试?
三年的测试工作下来,我认为真正做一个好的测试工程师,需要具备一些品质和技能。
2.1 做好测试所需要的品质:
● 耐心
测试确实是一个非常磨练人意志的工作,没有耐心,就无法忍受重复的工作
● 细心
粗枝大叶,很难做好测试工作。
● 追求完美
不追求完美,就无法从更高的层面来保证产品的质量
● 乐观,坚强
作为交付用户前的最后一关,测试的压力也很大。需要乐观坚强的品质来自我调节。
2.2 做好测试所需要的技能:
从能力来讲,我认为可以从下面几个方面入手:
● 掌握一门编程语言
毋庸置疑,掌握了一门编程语言,对自己的测试工作是非常有帮助的。无论是写一个小工具,还是生成测试数据,懂得开发,都可以让自己的工作变得简单许多。编程语言可以选择脚本语言,比如PHP, ruby, python等等。
● 熟练运用各种工具
常用的各种工具,应该能够熟练应用。这包括各种办公软件的使用,常见的命令,各种浏览器及其插件的使用,等等。
● 学习和使用linux等开源软件
除了windows下面的这些软件和工具外,应当学习使用下各种开源的操作系统和软件。很多的自动化测试框架也都是开源软件。
● 了解各种常见网络协议
比如HTTP协议,FTP, SSH, mail, DNS等等,也包括自己系统内部封装的API。只有深入了解这些东西,才有可能找到更好的测试方法。
● 总结分享
勤于总结,学习,东西一定要将其整理成文字,写下来。自己的心得体会可以经常和团队的同事分享。哪怕是讲不明白,只要把自己讲明白就行了。:)我很多东西是在给别人讲的时候,讲着讲着,自己突然间明白了。
● 沟通能力
做测试需要和不同的人打交道,沟通能力是必须的。
三 、测试职业生涯应如何发展?
3.1 技术发展路线
如果你真想在测试技术这一个领域发展下去,那么有几个比较好的方向,性能测试和自动化测试。
性能测试是一个非常系统的工作,部署测试环境,制定测试策略,准备测试数据,构造压力,获得数据,分析,形成报告。如果能够找到瓶颈原因,那就更棒。不过性能测试不是说使用一个工具就可以了。真正做好性能测试,其实需要很系统的知识。
自动化测试是未来的一个发展方向。其实只要系统的结构好,更高的自动化测试脚本的覆盖率是完全可能的。自动化测试的目的不是自动化测试,而是更好的发现新的bug。
其实技术路线走下去,会和开发汇合在架构师这一个层面上面。因为你走得越深,其实和开发考虑的越来越趋同,届时你可能就分不清楚测试和开发的区别。开发就是测试,测试就是开发。思考问题的角度会跳出单纯的测试或者开发的层面,更加全面。
……
查看全文请点击下载:http://www.51testing.com/html/02/n-227802.html
本文收录于《51测试天地》电子杂志第二十期。
版权声明:本文出自51Testing软件测试网电子杂志——《51测试天地》第二十期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。