在人们印象中,许多IT职业的工作者是以男性为主,但软件测试行业却并不是这样,在问推出的《2012年中国软件测试从业人员调查报告》中显示,在2012年软件测试行业中,从业人员的男女比率为51%:49%,这说明了软件测试是一个无性别差异的职业。但现在的采访大多都是男测试人员,那究竟女测试人员的工作和生活又是如何的呢?本期采访的专家是擅长自动化测试的女测试员-严晓婷,让我们她一起走进女测试员的生活。 问:您能和我们说说您是从什么时候开始接触自动化的吗? 严晓婷:我是从2005前后开始接触自动化测试项目的,一开始也没有专业的工具,我们使用 perl或者shell脚本写一些自动化测试脚本,这时候还比较原始的.后来在HP接触了QTP,这是一个很专业的自动化测试工具,用它做过不少项目。 问:在您这么多年的测试工作中,您有没有遇到过什么困难?(相对于男测试人员而言)尤其面对需要一定编程能力的自动化或者性能测试的工作 严晓婷:编程一直是很多测试人员跨不过去的一个坎,有些测试人员因为编程能力的问题导致工作一两年后碰到瓶颈了。其实编程本身并不难,有一句话:熟读唐氏三百首,不会作诗也会吟。写程序其实跟写文章一样,写多了信手拈来了,这其实是个熟练工,精通几种算法,能针对于各种问题都有一个解决方案。对于刚入门的测试人员,我好的建议是多看看别人的程序,另外几种基本算法掌握一下,比如冒泡排序、递归之类的。看多了,写多了掌握了。 问:有些刚接触自动化测试的朋友会好奇自动化测试能干些什么,是否任何测试都可以自动化?您能和我们具体说说吗? 严晓婷:自动化测试是将重复性的测试工作让机器自动去执行。一般我们经常用自动化测试工具自动地生成测试数据、执行测试、填写测试报告。不过自动化的应该有一定的局限性,尤其是在项目的应用上。如果一个项目仅仅开发一期测试一期,这样的项目用自动化是没有意义的。长期项目、产品、回归测试,这些情况的测试工作可以考虑采用自动化测试,自动化测试和手工测试要有一个合理的百分比,不能所有的测试工作都自动化。另外还要考虑项目组成员的技术能力、编程能力。 问:那您认为自动化测试更多的是为了覆盖功能点,还是避免重复劳动? 严晓婷:自动化是为了避免重复劳动,某些长期项目、软件产品,每当一个版本出来后都会有一些回归测试,这些测试的测试对象、测试步骤没有改变,甚至测试数据都没有改变,这样的工作还要通过人为的手工测试会让测试人员感觉很厌烦,很头疼,也降低了测试的技术性和工作的趣味性,让这样的重复工作自动化起来才是自动化测试的主要目标。 问:有人说自动化是一种态度,您对此是如何看待的? 严晓婷:这个问题我之前已经明确表达过态度了,自动化是一种理念一种工作方式,不能和某种工具划上等号。提出自动化的往往是懒人,懒人喜欢简化工作流程,发明新的工具,避免重复性的工作。只要自动化的态度,自动化的意识,即使你只会一些脚本语言,都可以将测试工作变得自动化起来。 问:前面聊了很多关于自动化测试方面的专业知识,现在我们聊回工作,请问您是如何看待女性IT工作者在自动化测试领域的发展前景的呢? 严晓婷:女性相对于男性大的优势是稳定,女性对于工作更看重的不是收入,而且公司文化,对于公司来说,女性员工其实是一种稳定的人力资源。另外在测试领域,女性有着比男性更敏锐的bug嗅觉,以及更追求完美的心理,因为在测试领域女性能比男性更适合。职业发展轨迹并不是的,并不是说都必须做到测试主管,测试经理的位置才算成功的,可以走管理路线,也可以走技术路线,技术路线是走自动化测试性能测试路,成为的自动化测试性能测试专家也是非常了不起的。 问:看来女测试人员的发展前景还是十分乐观的。听说您近当妈妈了,作为一个结婚有家庭的女性测试人员,您又是如何去协调工作和家庭责任之间的平衡的呢? 严晓婷:工作很重要,家庭更重要,中国人不愿意承认的一项成功是家庭和美幸福。其实对于老板来说找一个替代你的人很容易,但是对丈夫、孩子、父母来说,你是的,我这么说大家明白工作和家庭孰轻孰重了吧?其实不管女性还是男性,工作和家庭之间必须要找到一个平衡点,我不主张为了工作放弃一切,工作是为了更好的生活,也是实现人生的一种价值,如果为了工作,失去了生活,那工作失去了它的意义了。工作之余要学会如何去放松,和孩子一起玩,做几个菜,让工作中紧张的情绪放松下来。我今年刚刚有了孩子,三口之家的生活的确和原先很不相同,每天都跟打仗似的,每天公司家里两点一线,晚上回到家后得把孩子哄睡了,才能看点自己的东西,感觉真的很辛苦。不过时间长了,也习惯了。我给所有女性测试人员一个建议,是不要把工作带回家,不管在公司里多忙碌、多累、有多少怨气,都在下班的时候统统扔下,回到家里你是老婆,是妈妈,不要把工作的压力带回去施加给家人。 问:看来您已经找到了适合自己的生活、工作方式,在后,对于即将从事测试行业的女性,您有什么想对他们说的吗? 严晓婷:先前已经说过了,女性其实在测试行业较男性而言还是有很多优势的,不过IT行业说实在的,还是蛮苦的,在从事这份行业之前心里要做好吃苦的准备,一个项目过来,连续一个月加班都是正常的,另外测试行业是一个不断学习的行业,新的技术上来,要很快地学习掌握,保持着一颗不断学习的心,接受新的技术,这样职业道路才能走得更远。
自动化测试相关问题:
问:什么是自动化测试框架?
严晓婷:所谓框架,是一种通用的模式,自动化测试按照这种模式进行,可以顺利地实现项目的自动化测试。
自动化测试框架一般分成:
1、 数据驱动框架
2、 关键字驱动框架
3、 混合框架。
从字面意思上可以想明白,数据驱动是以测试数据作为驱动被测应用程序来进行自动化测试。关键字驱动是以Key Word(测试对象)来驱动。如果要言简意赅,作为一个自动化测试的门外汉或者初学者可以把框架想象成一个自动生成测试数据、执行测试、填写测试报告的系统。
一般一个框架的主要组成部分可分为:
1、 主控层:作为框架的主控部分相当于一个部队的司令官,发号施令,领导整体框架的运行操作
2、 脚本层:包括测试数据、对象库、公用脚本、局部变量,在QTP中对象库文件也可以导出为xml文件管理,使之移植性变得更好
3、 公用函数
4、 错误处理
5、 日志
6、 全局环境变量
然后在这些组成部分的基础再添加项目自己需要的一些外部数据和工具,一起由主控层驱动。框架的设计类似于一个系统的设计,虽然有模式可套,但模式不是的,在设计框架时要懂得根据项目的需要随机应变,所以说每个项目的框架都不一样,在开始自动化测试之前都要给项目量身定做一个框架。
问:自动化测试能干些什么,任何测试都可以自动化吗?
严晓婷:自动化测试是将重复性的测试工作让机器自动去执行。一般我们经常用自动化测试工具自动地生成测试数据、执行测试、填写测试报告。不过自动化的应该有一定的局限性,尤其是在项目的应用上。如果一个项目仅仅开发一期测试一期,这样的项目用自动化是没有意义的。长期项目、产品、回归测试,这些情况的测试工作可以考虑采用自动化测试,自动化测试和手工测试要有一个合理的百分比,不能所有的测试工作都自动化。另外还要考虑项目组成员的技术能力、编程能力。
问:自动化测试工具除了QTP还有别的其它的测试工具吗?
严晓婷:自动化测试只是个概念,所以它不仅仅只有QTP,我们平时使用的各种脚本语言也可以开发自动化测试小工具,比如VBS、Perl、Unix Shell、TCL等等。有了自动化的意识,能使用自己擅长的脚本语言开发自动化小工具。目前市面上出了QTP之外,还有很多开源的自动化测试工具,比如Selenium。所以自动化领域早已不是QTP一枝独秀的时代了。
问:QTP和开源自动化工具,比如selenium,watir在使用上有什么区别
严晓婷:问QTP和selenium,watir有什么区别,其实如同在问Java和VB有什么区别。不同的工具,有不同的功能,虽然QTP功能强大,但是selenium的开源特性是它无法比拟的,目前越来越多的网络公司都开始使用selenium来进行自动化测试,因为selenium在web测试上有着QTP无法比拟的便捷性。不过QTP目前为止在自动化测试领域依旧是教父级的测试工具,可见它的功能强大性。他们所使用的脚本语言不通,QTP使用VBScript,selenium使用java,所针对的项目特性不通,QTP适用于任何项目,selenium更适用于web项目。
问:现在selenium和QTP都比较流行,两种也是一种截然不同的脚本,如何将两种学会呢,运用贯通呢?
严晓婷:两种工具的针对面不一样,selenium适用于Web系统,使用Java开发的项目,而QTP适用于任何项目。学习selenium必须要有一定java的基础,完全不会java的人肯定玩不起来。学习QTP需要VBScript的基础,这种简单易用的脚本语言是支持QTP自动化框架开发的关键。两种工具可以互补,现在越来越多的网络公司,Web项目选择selenium作为自动化工具,是因为它的开源性,开源意味着可以降低成本,QTP是要花钱买license的。不过随着selenium越来越强大,收费估计也是早晚的事情。
问:您认为学好QTP的前提需要什么条件呢?
严晓婷:先前说过了,学习QTP好要有VBScript的基础,另外有扎实的测试设计的技术作垫底,毕竟自动化测试也是要设计测试用例的。良好的自动化意识也是学好QTP的关键。
问:您认为一个人可以开展QTP自动化测试吗?如果可以的话又该从何学起呢?
严晓婷:这个问题好像在问,一个可以开发一个项目吗?答案是肯定的,曾经大学时代我们做过开发一个java游戏挣100元钱的事情,哈哈!如果自动化测试量不大,通过几个脚本,几个用例可以完成的,完全可以一个人完成,当然这个自动化测试工程师必须比较强大,一个人开发自动化测试框架也需要走规定流程,该写的文档必须写,该做的测试计划必须做。如果整个项目的自动化测试量很大,根据计划一个人无法在规定的时间内完成,那必须增员。初学者想一个人完成一个自动化测试项目很难,而且缺乏有经验的同事指导,对于你的成长也有阻碍,所以建议初学者还是跟这有经验的同事一起做,积累经验。