自动化测试开源策略

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

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

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

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

  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测试的一个自动化测试框架,理念类似,只是应用场合不一样。

 4)Abbot,测试java UI的一个自动化测试框架,其录制的测试用例是用XML进行描述,其只能用录制的方式生成XML文件,而且其abbot只能去读取XML,所以你可以自己写一个脚本库去生成相应的XML去控制aboot,其在测试java UI方面的稳定性还是不错的。

  当然,还有各种各样的编程框架与自动化测试框架,但是随着接触的多了,你会发现其理念都是一样的,所以要学会自己从各个工具中提炼其思想与共性。

  4、应用服务器软件

  1)web服务器,举一个例子,大家熟知的Tomcat,其中也继承了J2EE中的servlet,其web服务器的作用主要是提供HTTP协议操作,将web客户端提交的页面请求进行处理后,然后动态返回相应的HTML页面即可。

  2)数据库,MySQL,开源的关系数据库系统,在一般的中小型项目还是很好用的,数据库设计在自动化测试中,个人认为也很重要,如果将自动化测试设计成一个平台的话,需要涉及大量的测试用例与脚本、测试用户权限的管理等。所以,数据库设计需要在自动化测试平台设计之前,定义好表以及表之间的联系,方便以后拓展使用。

  二、如何去保证开源工具的应用

  1、在自动化测试开展过程中,首先要对其测试需求以及对自动化测试的开展程度进行分析,包括自动化测试的规模、自动化测试的紧急程度以及实际需要应用程度、自动化测试的成本考虑等因素。

  2、之后,就去根据相应的需求,在不同方面采用不同的测试软件或者工具,不需要局限和死专于一种,哪种能提高效率,就尽快采用。

  3、总之,在这些软件或者工具的基础上,如果要规模化的话,你需要有一个自己定义好的平台进行规范,各个工具软件框架都可以以模块化的形式存在,当然,我建议最好要慎重考虑其“高内聚、低耦合”的思想。

  三、开源工具的应用策略

  我大概想了一下,其在自动化测试应用中,这些工具都扮演着不同的角色,对推动这个测试,甚至说软件行业都起到很大作用。

  1)常规的开发和测试流程

  当然这个自动化测试不会起到主要性的作用,但是能提高一定的效率。

  2)持续集成的流程

  需要搭配单元测试框架、构建工具、以及持续集成管理工具(例如:cruisecontrol)

  3)敏捷开发与测试流程

  敏捷开发中我觉得自动化测试是很重要的一个角色,其能够快速保证其发布周期。

  4)云端测试流程

  现在出来的云端提交测试,需要自动化形式提交以及进行相应的处理,其都是在web上面进行提交与返回的。

  总之,“预先善其事,必先利其器”,但是,在众多的自动化测试软件工具和框架中,我们要保持一个清醒的思想,要能够去抓到本质,真正能为我所用,就像武侠小说里面似的,侠客之路,从手中有剑到手中无剑、从有招到无招,从无心到有心。共勉之。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-08-31 18:20:35

自动化测试开源策略的相关文章

自动化测试开展策略分析

序言:一般而言,刚开始自动化测试时, 很多时候,很多人都不知道如何入手或者还有一部分人都信心满满,决心要建设出一份大的平台,可是事实在于自动化测试面临的问题一在于技术,二在于环境形 势.每个公司有不同的需求.有不同的环境.不同的人员支持,所以做自动化测试所需要涉及的外界因素太多,就如黑天鹅效应中的说法,你所自认为的白天鹅中也 许就隐藏着一只黑天鹅,它的出现会导致你的整体计划崩盘.所以,做自动化测试也一样,所依赖的东西太多,就能引起的整体变化太多,所以我觉得我们的基本策 略就是:不断预测.不断总结

如何做好自动化测试,揭秘阿里巴巴分层自动化实践之路

自动化测试是软件测试技术上的一大进步,我们都知道自动化测试可以给工作提效,减少重复劳动,但在实践过程中,却总是碰到各种各样的问题,导致进入自动化测试盲区.如何做好自动化测试,是很多企业迫切想要解决的问题.阿里巴巴旗下一站式研发提效平台--云效,将于12月8日16:00开启<阿里巴巴持续集成持续交付之分层自动化>直播分享,为企业提供自动化测试解决方案.今天我们先来看看阿里巴巴嘉宾的部分解读. 嘉宾介绍:金桐:阿里巴巴B2B事业群高级产品经理.从事多年互联网系统的研发和测试工作.现在主要负责云效分

Discuz!NT 2.0正式开源 站长升级维护更灵活方便

12月24日,国内最大的互联网社区产品及服务提供商康盛创想(Comsenz)正式对外开放Discuz!NT 2.0源代码,同时发布的还有该产品的类库文档和数据字典.此举意味着站长针对Discuz!NT进行二次开发和网站整合将变得更为简易快捷. Discuz!NT是Comsenz公司自主研发的基于ASP.net平台的社区软件系统,凭借安全.高效.易用等特点自1.0版本推出以来迅速成长为国内ASP.net论坛产品中的领头羊,同时也吸引了大量原ASP论坛用户的转换.由于特别为高负荷环境进行了各种技术优

微软爱开源?| 启路CTO朱永光为你讲解微软开源的那些事

编者按:随着微软的股价节节攀升,同时在最近的硬件大战中力克老对手苹果,大家熟知的那个微软又回到了大家的视野,本文给很多不熟悉微软开源技术的朋友普及一下微软最近几年在开源方面所做的努力和成效,毕竟很多人对微软的技术还停留在10年前的认知上,自从微软新CEO上任后,进行了一系列的大刀阔斧的改革,其中拥抱Linux是浓墨重彩的一笔.本文选自于启路CTO朱永光大神在中生代十月十城成都的分享,朱老师在讲解干货的同时,也不忘现场写代码演示如何搭建简单的Hello World,欢迎大家观看视频! 过去几年中微

企业如何选择合适的开源软件

开源软件的普及正在给那些意欲选用的企业带来难题,过去,在选择非开源软件时,总是有不同的IT供应商对客户进行轮番"骚扰",并历数各自产品的优点,但开源领域由于还没有形成那么大的市场规模,再加上开源软件繁多,企业自身选择什么样的开源软件,渐成问题. 开源的越来越主流化,企业需要确保自己所使用开源软件产品的可信赖性,于是,开源许可证变得越来越重要,但它实现起来并不容易,据报道,如今业内有超过 33万个开源软件供各种类型的企业使用.如此繁多的开源软件,不仅要保证其开源许可证,还要保证其高可靠性

开源代码中的安全隐患 要从DevOps的角度 进行6个方面的预防

各行各业的组织,无论规模大小,都会使用开源应用,眼下这种趋势有增无减.在开发阶段,将源代码嵌入软件中既经济.又高效.借助于其他资源,开发人员可以将更多的精力集中于组织的内部代码.但 DevSecOps 的问题不容忽视. 据GitHub调查,94%的受访者表示至少会时不时地使用开源应用,而81%的人则经常使用.实际上,82%的开发人员透露,所在单位接受使用开源软件,而84%的人被鼓励在应用中使用开源代码. 虽然使用开源代码 还需要在持续交付中确保安全 虽然开源部件可节约时间和成本,但其许可协议中均

Openstack开源社区需要玩家

"在Openstack开源社区里,所有的玩家都应该是竞合关系,所有的人都是受益者,所有的人也都是竞争者,而目前的情况是玩家还不够多,竞争还不够激烈."陈锟强调.他还认为,开源社区最有可能取得成功的模式,就是"雨林生态". Openstack开源社区内部的竞合关系,根本目的是为了抗衡真正的共同对手--互联网企业.与此相应,在开源社区内部,合作是为了驱动开源平台的完善和成熟,竞争则是各自通过提供差异化的服务和优势,实现在外部市场上的竞争.正因为如此,华为目前将云计算业务

胡才勇:开源社区的认可来自于贡献

软博会2009开源软件发展论坛成功召开 2009年6月12日,第十三届中国国际软件博览会系列论坛之"2009开源软件发展论坛"在京成功召开.论坛聚集了来自各地的开源领袖.IT知名企业.专家学者和国内有影响的开源技术厂家,北京红旗贰仟软件技术有限公司(以下简称红旗2000)也应邀参加了此次论坛.红旗2000总经理胡才勇先生发表了题为<开源社区的认可来自于贡献>的主题演讲,就红旗2000的开源策略及与开源社区的互动等做了详细的论述. 本次论坛的主题为"创新应用促发展-

LinkedIn 开源软件项目数量已经超过了 100 个

社交网络巨头.开源社区的活跃贡献者LinkedIn最近又开源了一系列重量级基础设施软件.到目前为止,LinkedIn在 GitHub 上开源的软件项目数量已经超过了100个. 最近宣布开源的项目有 URL-Detector.Rocket Data 和 LayoutKit 等. URL-Detector URL-Detector是一个以文本方式检测和标准化URL的Java库.为了保证用户的安全使用,所有用户提交的内容都会经过安全检测.LinkeIn的内容验证服务每秒钟都要处理几十万个URL,检查其