Rational Functional Tester (RFT) 是一款支持 Java 和具备强大对象识别机制的功能测试工具。在使用 RFT 测试基于 Eclipse 的程序时,测试人员经常会遇到校验一个 view 中的一大批控件的情况。使用传统的方法会产生大量的硬编码,升级和维护的成本比较高。本文将借助RFT的对象识别机制,实现一种低耦合可配置的校验方法。该方法将预期结果和被测试的控件配置在两个独立的文件中,只需要维护一个控件容器,而被测试的控件在运行时被动态识别出来并进行校验。维护阶段,测试人员可以通过修改配置文件达到动态调整预期值、增加或者减少被测试控件的目的,而不需要修改任何的 RFT 脚本。该方法可以大大地减少代码的耦合和需要维护的被测试对象的数量,在基于 Eclipse 的程序测试中有广泛的应用前景。
静态的校验点测试
Rational Functional Test(RFT)是一款基于Java的自动化功能测试工具。作为Rational Software Development Platform(RSDP)软件家族中的一员,它为java/eclipse/html/.net等各种被测试程序提供了一个自动化测试平台。其中对基于eclipse的程序的支持更是RFT的特色之一,这使得它在eclipse得到广泛应用的背景下前景广阔。
在功能测试中,用RFT完成一个校验点的测试是非常容易的,只需要很少的代码。下面我们首先给出一个静态校验点测试的例子。本文中被测试程序是Rational Data Architect 6.1。RFT的版本是6.1.1.1。
[问题 1]给定了当前如图 1 所示的Properties View,请校验Name字段的值是否是预期的“DB_LARGE1”。
图 1: 被测试的面板
为了解答这个简单的问题,首先需要抓取Name文本框对应的测试对象,我们把它命名为testDb,如图2的Script Explorer所示。然后可以通过如下代码进行校验。之所以称这种校验的方法为静态校验点测试,是因为校验的代码是被硬编码到源文件中的,如果要增加或者修改任何一个被校验的对象,都需要大幅度修改源程序的对应位置和维护script Explorer,并且还需要重新编译才能得到结果。
图 2: 抓取测试对象testDb()
public void testMain(Object[] args) { String expect="TESTDB"; boolean result=expect.equals(testDb().getProperty("text").toString());//判断字符串是否等于预期值 String context="The value of textfield ="+expect; RationalTestScript.logTestResult(context,result);//输出测试的结果 } |