自动化测试开源策略

发表于:2011-11-11 11:06

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

 作者:散步的SUN    来源:51Testing软件测试博客

  序言:不知道有多少人对开源社区真的很有了解,个人以为在自动化测试中,开源也是一个很好的利器,往往商业性的工具针对普遍人群,而自动化测试是“定制型”的,不一定特别适合,而且自动化测试是预言型的,所以一般而言,可以考虑开源。因为可以快速应用其提高效率,我个人觉得:自动化测试在追求发展过程中,要学会借助各种工具提高效率,而不是仅仅局限于一种。还是那句话,能提高测试效率和工作效率的才是王道,“摘花折草即可伤人也”。

  一、自动化测试中的开源软件分类

  开源工具因为其零许可费以及开放和自由的理念逐渐得到了大家的认可和广泛的传播,而且由于自动化测试的差异性,其开源软件的灵活性更能在自动化测试中很好的体现,而且随着开源软件和自动化测试的发展,其开源工具在自动化测试中也形成了一股应用的趋势。其实,在工作中,我们都在不断的与自动化测试打着交道。

  在自动化测试过程中,我们与之打交道的开源工具,可以分为

  1、编程语言与平台,即在自动化测试过程中应用的语言和操作系统

  1)Andriod,大家应该都有所了解,其是以Liunx为内核底层来支持不同硬件,并在其上搭建一个类java的运行环境,其大概有几层,包括:linux内核、底层库、JAVA框架(包括其API)、Andriod应用程序。

  2)LINUX,大家熟知的开源操作系统。

  3)脚本语言:Python、ruby、perl等,这些都是在自动化测试中因为其简便性与动态性多有用到的编程语言。这些语言的维护、开发和发展都是通过开源社区和开源标准组织(例如ISO和Ecma)进行的,所以它们称为开源语言。而java因为受Oracle支配,所以称得上开源不开源,我也不是很清楚…

  4)Flex:是在FLASH基础上做的一层封装,提供了组件库,开发人员可以直接编写MXML,即在FLEX中布局用户界面组件的一种XML语言来搭建用户界面。同时,完成负责数据逻辑的ActionScript脚本,最好编程成FLASH文件。所以,有些用户界面是用FLEX开发的。

  ……

  2、开源开发工具

  1)Eclipse,这个用过java的一般都很熟悉吧,是一款很好的IDE。其是基于”OSGi”的“即插即用”理念,所有功能以组件形式存在。其理念我觉得非常好,其插件只要遵循其平台的规范,就能集成到其中应用。例如:Pydev是一款python的插件,jython是一款Java与python集成的插件,还有andriod、ant等集成的插件,当然,我觉得可以的话,最好先应用一下独立版,再去在eclipse中应用,这样,可以更好的了解其运作原理。

  而且,我觉得这种理念在自动化测试中也可以很好的应用,使得各个工具之间能够在一个平台上作为模块互相通用,而且也能独自使用。其IBM rational开发的jazz平台也是基于一种这么理念的。

  2)Ant,这个大家也许不是很熟悉,但是开发过java应用程序或者做个持续集成的也有有所了解,它就是一款构建的工具,即用XML描述任务的形式,自动完成其定义的工作,例如:可以帮助开发人员自动完成编译、单元测试、打包、发布等工作。

  3)Maven,Java开源项目的开发管理工具,涵盖了项目构建、文档管理、报告生成等方面,与Ant功能类似,其差别在于ant每一个项目需要独立维护一个XML构建描述文件,而Maven能够帮助快速搭建一个项目框架,而无需从头编写,其是一种“约定胜于配置”的理念,即先抽象出一个原型。这理念也可应用在自动化测试中的,即先提供一个脚本模板,然后根据这个模板,搭建一定的测试流程。

  4)版本管理工具,例如:SVN和CVS,其都能够应用脚本控制其代码版本的签入和签出,在其自动化测试中也能有一定应用,方便管理脚本与代码程序。

  5)Bugzilla,缺陷管理工具,可以管理和跟踪缺陷,即,可以在自动化测试中应用来管理相应结果或者缺陷跟踪等。

  6)Junit,大家都恨熟知的吧,单元测试的一款工具,即事先规定好单元测试模板,开发人员只需去根据被测试代码,搭建其测试代码即可。

  7)TestNG,与junit类似。在自动化测试中也能有所应用。

  3、编程及测试框架与库

  1)在J2EE开发中,大家熟知的SSH,即Spring、Struts、Hibernate。具体的大家可以去查阅相关资料,我想说的是,如果大家深入学习的话,会发现,其开发理念和自动化测试思想很相似,像Struts的MVC思想,与自动化测试的分层理念可以很好的结合。Hibernate的数据库持久层思想也可以用于自动化测试的数据管理应用,总之,了解这些软件设计框架,对于加强自动化测试思想的理解很有帮助。

  2)Selenium,大家都很清楚的web自动化测试框架,很多人都说这是一种工具,其实说工具也行,框架也一样,其提供了一种测试web的自动化思想,即采用绕过web中“同源策略”的方法,用JS来控制web的操作。你可以编写脚本应用其API,来控制web的相应控件的操作。一般是集成在你的自动化测试管理框架或者系统平台中的。

  3)Robutium,andriod UI测试的一个自动化测试框架,理念类似,只是应用场合不一样。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号