序言:什么是自动化测试平台?这个是没有一个好的定义的,个人拙见,自动化测试平台就是根据自身公司或者部门的流程,将自动化测试的需求融于上述测试流程,然后提供一个软件平台的形式表现出来,也就是用规范和协议的形式表现出的一套自动化测试体系。
一、编程工具中的“即插即用”型
Eclipse平台是IBM向开发源码社区捐赠的开发框架,其是一个成熟的、精心设计的以及可扩展的体系结构。这个平台允许任何人构建与环境和其它工具无缝集成的工具。工具与Eclipse无缝集成的关键是插件。除了小型的运行时内核之外,Eclipse中的所有东西都是插件。从这个角度来讲,所有功能部件都是以同等的方式创建的。
你可以在安装好的eclipse的文件夹下有一个plugins的文件夹中有其各种插件,eclipse的核心较小,几乎都是由插件组成,而所有的插件库有四个基础库:
● 标准Widget工具包(SWT):Eclipse中处处使用的图形化组件:按钮,图像、光标、标签等等。布局管理类。通常这个库被用于代替Swing。
● JFace:菜单、工具条、对话框、参数选择、字体、图像、文本文件的类和向导基类。
● 插件开发环境(PDE):辅助数据操作、扩展、建立过程和向导的类。
● Java开发者工具包(JDT):用于编程操作Java代码的类。
基于这个基础库,然后遵照其eclipse开发插件的过程,你就可以将自己的工具与eclipse集成起来,即根据自己的需要去定制自己的开发平台的需求。
二、软件交付平台的“即插即用”型
IBM其软件产品有一个词叫jazz,之前很不理解这种想法,后来慢慢的为其庞大的理念而感到心动,虽心动却也只能研究一下。
Jazz是一个用于整个软件生命周期的团队协作平台,旨在支持跨所有软件生命周期阶段的任务的无缝集成。Jazz平台的主要作用是为工具编写人员提供要使用的机制和要遵循的规则,这些机制和规则可产生无缝集成的生命周期工具。这些机制通过定义良好的API来公开。
Jazz是一个基于客户端-服务器体系结构的平台。通常在受保护的服务器级计算机上运行的Jazz服务器承载一组服务,并在其存储库中存放数据。远程客户端通过网络使用HTTP与Jazz服务器通信。
个人理解的话:jazz提供了一个开放式的平台,其中基于了一些国际上的组件规范(例如:OSGi等,OSGi称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。这样,一个大的系统可以被划分为很多模块或组件,其通过标准化的接口进行交互通信),然后,IBM的大多数工具可以集成到这个平台上成为软件交互生命周期的一个整体,尽量使得各个工具在使用上能够进行交互,之后,可以根据自身的开发流程情况,基于软件实现定制自己的开发和交付流程。
三、自动化测试平台的“即插即用”型
自动化测试中因为其应用特殊性,所以,会有各种工具的使用(界面测试工具、命令行测试工具等)以及各种自动化测试的模式(例如:回归测试、例行测试等)来提高测试效率。所以,个人觉得,自动化测试也需要提供一个开放式的平台来集成这些工具和测试模式。
可以参考的是:开源的自动化测试框架STAF,其提供了一个“即插即用”型的概念,任何工具或者模块只要遵从其规范,则能作为其中的一个服务与构建与其上的各种服务进行通信。其还是作为一个分布式的框架,其意思即每台运行STAF的机器都是等同的,都可以拥有各自的功能模块与数据,也可以在分布式网络中进行共享与交互。或者,不基于STAF也可以自己进行类似框架的开发,需要的是提供一个标准的接口形式,各个模块能通过这个标准的接口互相进行交互。
当然,以上的形式需要根据自身的情况来定,是在自动化测试需求发展到一定程度上,如果连自动化测试需求和流程都没有定义下来,那么,开发这套平台的意义将会变得很空洞,而且容易脱离实际需求,反而越走越远,浪费了成本,所以,“效率为上、需求为导”,不同的时候应该采取不同的策略来应用自动化测试来提高自身的测试效率。