自动化测试框架的设计原则

发表于:2010-10-28 14:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:cuitstudio    来源:51Testing软件测试网采编

  前言:

  使用脚本语言来设计自动化测试开发框架,是很多大型IT企业在进行自动化测试中所采用的方法,一个好的自动化测试框架,可以大幅度提高测试人员自动化脚本开发的效率,可以提高自动化脚本开发的并行性和可靠性。自动化测试框架设计的好与坏,直接关系到整个公司的测试水平,也关系到公司产品的发布周期和发布质量。那么在设计一个自动化测试框架的时候,会面临哪些问题?对这些问题,有什么解决方法,每一种解决方法的优劣又如何呢?

  我们在脚本开发长期的经验中,看到了美国,中国;大型,小型等不同IT公司对于自动化测试框架设计上的面临的挑战和相应的不同解决方法,这里结合我们的观点,和大家一起探讨一下。

  要选择什么样的开发语言?

  常见的自动化框架开发语言有: C,C++,Java, TCL, Perl, Ruby, Python。

  使用C或者C++,对于整个自动化测试框架的执行效率而言会有所提高。但是由于常见的测试流程对设计到对大量字符串的处理能力,C或者C++ 在这些方面的支持并不完备。会导致整个开发流程的延长,更重要的是,使用C或者C++,不能够实现跨平台。如果自动化框架只是在公司内部使用,不是商用产品的话,不建议使用。

  Java的自动化测试框架主要还是面向对使用Java开发的产品的测试,并且主要使用在单元测试阶段。对于用其他语言开发并编译的软件产品,在测试方面提供的支持力度一般。如果是对于嵌入式系统的测试,就更欠缺。在Web界面的测试方面,Java提供一定的支持。

  TCL是老牌的自动化测试语言。在80年代开始就在Motorola使用,后来被思科采纳,并在自动化测试领域得到了广泛的应用。对于基于命令行来远程控制的设备如路由器,交换机等的自动化测试领域应用非常成熟。美中不足的是:TCL在设计之初是不支持面向对象的设计方法的,虽然后来出现了iTCL来弥补不足,但是常见的基于TCL的测试脚本开发还不是基于面向对象的。 对脚本的可维护性和可复用性带来了一些挑战。

  Perl语言在设计之初也不支持面向对象,在网络管理员的圈子里应用的很广,被称作是the duct tape of the Internet。在自动化测试领域应用的范围不是很广泛。有一些IT厂家由于历史的原因在使用Perl进行自动化测试,但是也在慢慢向其他脚本开发语言转型。

  Python作为一个脚本开发语言,它的使用者社区的技术水平比较高。相对来说,它的支持库的代码水平也比较高。对于软件开发的各个方面的第三方库(如图像处理,网络通信,Web技术等)都有非常好的支持。Python本质上就是面向对象的脚本语言。90年代以后成立的硅谷高科技公司,很多都使用Python作为他们自动化测试的官方语言。在美国的群众基础非常好。社区也非常活跃。它的创始人还因此被Google招募旗下。

  Ruby是日本人发明的完全面向对象的脚本语言。它的使用者社区起初主要在日本和台湾的一些IT公司。在2006年左右,当Web的综合开发框架Ruby on Rails出现后,在网站的开发社区中也开始流行开来。Ruby语言也受到了大型IT公司的测试团队的关注。在自动化测试领域得到了越来越广泛的应用。有一些大型公司正在由其他的脚本语言向Ruby转换。

  作为一个自动化测试框架,一个设计原则就是快速成形,快速推广,增量开发。框架的基本功能要马上可用,并能迅速找到使用者,得到成功推广的案例,形成自己的使用社区。并在此基础上,按照社区使用人的需求,进行增量开发,逐步扩大社区的用户基数,并丰富框架的功能。在这个要求上,对编程语言的选择有如下两点:

  1、Fast Prototype (马上就可以用)

  2、可扩展

  第一点,对于解释执行的脚本语言来说,是非常适合的,解释执行的脚本语言可以再有限的代码量内开发出尽可能丰富的功能,而不用担心内存分配与释放等其他编译执行语言需要考虑的问题。而面向对象有可以满足第二点的要求。所以,如果选择自动化框架的脚本语言,推荐Python和Ruby。

  业界常用的控制库的设计方法和工具有哪些?

  既然是自动化测试,就涉及到对远程的被测试对象进行无人值守的自动化控制与测试。需要自动化复现测试人员的手动操作步骤和结果判断步骤。而对于远程被测对象的控制,可以分为

  1、命令行(CLI)控制

  2、图形用户界面(GUI)控制

  CLI的控制主要是使用Expect的远程控制库。Expect库在TCL上最先开发,后来也被移植到了Perl, Ruby和Python上。

  控制图像界面的工具分为控制Web浏览器的工具和控制窗口的工具。具体应用的时候又可以分为开源和商用工具两个方面:

  常用Web浏览器自动化控制商用工具:

  ● Winrunner

  ● QTP

  ● Silktest

  ● IBM Rational Robot

31/3123>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • nuaatjp
    2014-4-11 10:54:02

    收获颇丰,多谢分享!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号