自动化测试相关问题:

  问:什么是自动化测试框架?

  严晓婷:所谓框架,是一种通用的模式,自动化测试按照这种模式进行,可以顺利地实现项目的自动化测试。

  自动化测试框架一般分成:

  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元钱的事情,哈哈!如果自动化测试量不大,通过几个脚本,几个用例可以完成的,完全可以一个人完成,当然这个自动化测试工程师必须比较强大,一个人开发自动化测试框架也需要走规定流程,该写的文档必须写,该做的测试计划必须做。如果整个项目的自动化测试量很大,根据计划一个人无法在规定的时间内完成,那必须增员。初学者想一个人完成一个自动化测试项目很难,而且缺乏有经验的同事指导,对于你的成长也有阻碍,所以建议初学者还是跟这有经验的同事一起做,积累经验。