SAFS(Software Automation Framework Support)是一个开源的支持多平台的自动化测试框架,由SAS
Institute的Carl Nagle开发(http://safsdev.sourceforge.net/Default.htm)。下图描述了这个模型的结构:
这个模型由测试表、核心数据驱动引擎、成员函数库、支持库、应用映射表组成,分别介绍如下:
测试表(Test Tables):保存测试数据和关键字,分为高层测试表、中层测试表、低层测试表。其中,下层的测试表被上层的测试表所调用。
核心数据驱动引擎(Core Data Driven Engine):与测试表对应,分为高层驱动器(也叫循环驱动器)、中层驱动器(也叫组装驱动器)和低层驱动器(也叫步骤驱动器)。上层的驱动器读取相应测试表的关键字逐级传递给下层的驱动器,最后由低层驱动器调用关键字库中的指令对应的组件函数来执行。
组件函数库(Component Function):组件函数实现了用户对界面对象的各种操作指令,它在被测应用和自动化工具之间提供了一个隔离层。
支持库(Support Libraries):通用的程序和工具库,提供诸如数据库访问、字符串操作、文件访问、日志记录等基础性的支持功能。
应用映射表(Application Map):对应用中的对象定义一套命名规范,将这些实际对象的名字和自动化工具识别的对象名联系起来,形成映射表,从而使应用对象元素和测试对象名分离,提高了脚本的可维护性。
SAFS基于数据驱动和关键字驱动的思想设计,对各种商用测试工具的开发产生了深远的影响。早在1999年就为Rational 实现了自动化框架RRAFS
(Rational Robot Automation Framework Support),后来为Mercury Interactive
WinRunner 实现的框架叫WRAFS,还开发了一系列引擎。目前正在实现一个在多平台上测试Java应用的引擎SAFS/Abbot,这也是一个开源项目(http://abbot.sourceforge.net/doc/overview.shtml)。另外一个开源框架STAF:Software
Testing Automation Framework(http://staf.sourceforge.net/index.php)也值得研究。
Carl J. Nagle的著名观点是:在构建测试策略时,必须将被测应用的变化和测试工具的变化所造成的影响降低到最小("When
developing our test strategy, we must minimize the impact caused
by changes in the applications we are testing, and changes in the
tools we use to test them.")。软件企业如果要构建自己的自动化测试平台,可以将SAFS模型作为参考,并吸取其中的思想。 |