首页 »软件测试 » ibmrational:IBM Rational帮助你轻松的完成自动化的功能测试 »正文
ibmrational:IBM Rational帮助你轻松的完成自动化的功能测试
来源: 发布时间:星期六, 2008年12月13日 浏览:26次 评论:0
1 解析自动化测试 ![](/icons/21814de.gif) 困惑
在软件Software工程领域 ![](/icons/21814dou.gif) 如果说有 ![](/icons/21814yi.gif) 种工作让人在痛苦中感受它 ![](/icons/21814de.gif) 价值、在无休止 ![](/icons/21814de.gif) 加班中体会它 ![](/icons/21814de.gif) 苦涩、在技术 ![](/icons/21814de.gif) 进步中体验它 ![](/icons/21814de.gif) 快乐 ![](/icons/21814de.gif) 话 ![](/icons/21814dou.gif) 那它 ![](/icons/21814yi.gif) 定是软件Software测试 ![](/icons/21814dou2.gif) 计算机技术发展到今天 ![](/icons/21814dou.gif) 自动化测试工具 ![](/icons/21814de.gif) 广泛应用使人们重新认识到测试 ![](/icons/21814de.gif) 源动力:最优 ![](/icons/21814de.gif) 质量成本 ![](/icons/21814dou.gif) 软件Software开发过程中 ![](/icons/21814de.gif) 测试及各种质量保证活动 ![](/icons/21814dou.gif) 无疑是在追求软件Software质量成本和收益间 ![](/icons/21814de.gif) 最佳平衡点 ![](/icons/21814dou2.gif)
谈到自动化测试 ![](/icons/21814dou.gif) 首先我们要明确什么情况下需要自动化 ![](/icons/21814dou2.gif) 自动化测试 ![](/icons/21814de.gif) 目 ![](/icons/21814de.gif) 是通过自动执行测试脚本 ![](/icons/21814dou.gif) 使测试人员在更短 ![](/icons/21814de.gif) 时间内能够更快地完成更多 ![](/icons/21814de.gif) 软件Software测试 ![](/icons/21814dou.gif) 并提供以更高 ![](/icons/21814de.gif) 频率执行测试 ![](/icons/21814de.gif) 能力 ![](/icons/21814dou.gif) 从而有效降低测试成本、提高测试效率 ![](/icons/21814dou2.gif) 从软件Software测试 ![](/icons/21814de.gif) 成本来看 ![](/icons/21814dou.gif) 使用测试工具进行软件Software自动化测试 ![](/icons/21814de.gif) 成本可以以下公式表示:
自动化测试 ![](/icons/21814de.gif) 成本=测试工具成本+测试脚本 ![](/icons/21814de.gif) 创建成本+测试脚本 ![](/icons/21814de.gif) 维护成本
既然自动化测试 ![](/icons/21814de.gif) 目 ![](/icons/21814de.gif) 在于降低测试成本、提高测试效率 ![](/icons/21814dou.gif) 因此 ![](/icons/21814dou.gif) 测试团队(Team)在选择自动化测试工具时 ![](/icons/21814dou.gif) 必须在提高测试效率 ![](/icons/21814de.gif) 同时 ![](/icons/21814dou.gif) 尽量做到自动化测试 ![](/icons/21814de.gif) 总体成本小于手工测试成本 ![](/icons/21814dou2.gif) 因此 ![](/icons/21814dou.gif) 自动化测试工具 ![](/icons/21814de.gif) 脚本自动化创建能力和可维护性 ![](/icons/21814dou.gif) 就成了衡量自动化测试工具 ![](/icons/21814de.gif) 重要原因 ![](/icons/21814dou2.gif)
在实际 ![](/icons/21814de.gif) 测试工作中 ![](/icons/21814dou.gif) ![](/icons/21814yi.gif) 般说来 ![](/icons/21814dou.gif) 我们选择自动化 ![](/icons/21814de.gif) 功能测试工具无外乎要解决以下 3个问题:
- 自动化
功能回归测试
- 大批量数据驱动
软件Software测试
- 整个软件Software测试生命周期
管理
在选择自动化测试工具解决这些问题 ![](/icons/21814de.gif) 过程中 ![](/icons/21814dou.gif) 人们主要关心 ![](/icons/21814de.gif) 问题是使用自动化测试工具创建测试脚本 ![](/icons/21814de.gif) 能力、工具 ![](/icons/21814de.gif) 易用性、测试脚本 ![](/icons/21814de.gif) 编程和扩展能力、测试脚本 ![](/icons/21814de.gif) 参数化技术以及作为软件Software开发重要环节 ![](/icons/21814de.gif) 测试工作和其它软件Software生命周期管理工具 ![](/icons/21814de.gif) 集成能力 ![](/icons/21814dou2.gif)
因此 ![](/icons/21814dou.gif) 摆脱自动化测试困惑 ![](/icons/21814de.gif) 根本途径 ![](/icons/21814dou.gif) 就是理解自动化测试 ![](/icons/21814de.gif) 本质 ![](/icons/21814dou.gif) 明确自己 ![](/icons/21814de.gif) 自动化测试需求 ![](/icons/21814dou.gif) 选择合适 ![](/icons/21814de.gif) 自动化测试工具 ![](/icons/21814dou.gif) 帮助测试团队(Team)提高效率、降低成本 ![](/icons/21814dou.gif) 最终实现软件Software开发过程 ![](/icons/21814de.gif) 全过程质量保证
="no-pr ![](/icons/21814int.gif) ">
![点击图片可在新窗口打开](http://www.crazycoder.cn/WebFiles/200812/75e87de8-e3ac-474d-8a80-275364838c6a.g<img src='/icons/21814if.gif' />)
|
2 IBM最新自动化功能测试解决方案:Rational Functional Tester
IBM Rational Functional Tester(简称RFT)是
![](/icons/21814yi.gif)
款先进
![](/icons/21814de.gif)
、自动化
![](/icons/21814de.gif)
功能和回归测试工具
![](/icons/21814dou.gif)
它适用于测试人员和GUI开发人员
![](/icons/21814dou2.gif)
使用它
![](/icons/21814dou.gif)
测试新手可以简化复杂
![](/icons/21814de.gif)
测试任务
![](/icons/21814dou.gif)
很快上手;测试专家能够通过选择工业标准化
![](/icons/21814de.gif)
脚本语言
![](/icons/21814dou.gif)
实现各种高级定制功能
![](/icons/21814dou2.gif)
通过IBM
![](/icons/21814de.gif)
最新专利技术
![](/icons/21814dou.gif)
例如基于Wizard
![](/icons/21814de.gif)
智能数据驱动
![](/icons/21814de.gif)
软件Software测试技术、提高测试脚本重用
![](/icons/21814de.gif)
scrīptAssurance技术等等
![](/icons/21814dou.gif)
大大提高了脚本
![](/icons/21814de.gif)
易用性和可维护能力
![](/icons/21814dou2.gif)
同时
![](/icons/21814dou.gif)
它第
![](/icons/21814yi.gif)
次为Java和Web测试人员
![](/icons/21814dou.gif)
提供了和开发人员同样
![](/icons/21814de.gif)
操作平台(Eclipse)
![](/icons/21814dou.gif)
并通过提供和IBM Rational整个测试生命周期软件Software
![](/icons/21814de.gif)
完美集成
![](/icons/21814dou.gif)
真正实现了
![](/icons/21814yi.gif)
个平台统
![](/icons/21814yi.gif)
整个软件Software开发团队(Team)
![](/icons/21814de.gif)
能力
="no-pr
![](/icons/21814int.gif)
">
![点击图片可在新窗口打开](http://www.crazycoder.cn/WebFiles/200812/75e87de8-e3ac-474d-8a80-275364838c6a.g<img src='/icons/21814if.gif' />)
3 使用IBM RFT轻松完成自动化功能测试
3.1 基于和开发人员同
![](/icons/21814yi.gif)
开发平台
![](/icons/21814de.gif)
功能测试
IBM RFT
![](/icons/21814de.gif)
最大特色就是基于开发人员
![](/icons/21814de.gif)
同
![](/icons/21814yi.gif)
开发平台(Eclipse)
![](/icons/21814dou.gif)
为Java和Web测试人员提供了自动化测试能力
![](/icons/21814dou2.gif)
如图
![](/icons/21814yi.gif)
所示
![](/icons/21814dou.gif)
使用RFT进行软件Software测试时
![](/icons/21814dou.gif)
我们只要在开发人员工作
![](/icons/21814de.gif)
Eclipse环境中打开Functional Test透视图
![](/icons/21814dou.gif)
就会马上拥有专业
![](/icons/21814de.gif)
自动化功能测试工具所拥有
![](/icons/21814de.gif)
全部功能
图
![](/icons/21814yi.gif)
、IBM Rational Functional Test工作界面
在RFT中实现测试脚本
![](/icons/21814de.gif)
过程和大部分
![](/icons/21814de.gif)
自动化测试工具
![](/icons/21814yi.gif)
样
![](/icons/21814dou.gif)
是基于录制
![](/icons/21814de.gif)
脚本生成技术
![](/icons/21814dou2.gif)
当我们完成测试用例后
![](/icons/21814dou.gif)
只要在功能测试工具条上选择测试脚本录制按钮
![](/icons/21814dou.gif)
就会启动测试用例
![](/icons/21814de.gif)
脚本实现过程
![](/icons/21814dou2.gif)
如图 2所示
![](/icons/21814dou.gif)
在脚本录制
![](/icons/21814de.gif)
"选择脚本资产"对话框中
![](/icons/21814dou.gif)
用户可以选择预定义好
![](/icons/21814de.gif)
公用测试对象图和公用测试数据池
![](/icons/21814dou.gif)
也可以选择在脚本录制过程中生成私有测试对象图和数据池
![](/icons/21814dou2.gif)
测试对象图是IBM用来解决测试脚本在区别被测版本间
![](/icons/21814dou.gif)
成功回放
![](/icons/21814de.gif)
关键技术
![](/icons/21814dou.gif)
它为测试脚本
![](/icons/21814de.gif)
重用提供了重要保证;而测试数据池是IBM用来实现数据驱动
![](/icons/21814de.gif)
自动化功能测试
![](/icons/21814de.gif)
重要手段
![](/icons/21814dou.gif)
使用智能化
![](/icons/21814de.gif)
数据驱动测试向导
![](/icons/21814dou.gif)
测试脚本
![](/icons/21814de.gif)
参数化几乎变得易如反掌
图 2、"选择脚本资产"对话框
如图 3所示
![](/icons/21814dou.gif)
在功能测试
![](/icons/21814de.gif)
录制监视窗口
![](/icons/21814dou.gif)
测试员可以根据提示启动被测应用系统
![](/icons/21814dou.gif)
执行测试用例中规定
![](/icons/21814de.gif)
测试步骤
![](/icons/21814dou.gif)
实现测试脚本
![](/icons/21814de.gif)
录制
![](/icons/21814dou2.gif)
在测试脚本录制过程中
![](/icons/21814dou.gif)
测试员可以根据需要插入验证点和数据驱动
![](/icons/21814de.gif)
测试脚本
![](/icons/21814dou.gif)
验证点是在指令中比较实际结果和预期结果
![](/icons/21814de.gif)
测试点
![](/icons/21814dou.gif)
自动化功能测试工具正是通过它实现对被测系统功能需求
![](/icons/21814de.gif)
验证
图 3、测试脚本录制窗口
完成脚本录制过程以后
![](/icons/21814dou.gif)
RFT会自动生成用工业标准语言Java描述
![](/icons/21814de.gif)
测试脚本
![](/icons/21814dou.gif)
如下所示:
import resources.ThirdwithDatapoolHelper;
import com.rational.test.ft.*;
import com.rational.test.ft.object.
erfaces.*;
import com.rational.test.ft.scrīpt.*;
import com.rational.test.ft.value.*;
import com.rational.test.ft.vp.*;
/**
* Descrīption : Functional Test scrīpt
* @author ndejun
*/
public
ThirdwithDatapool extends ThirdwithDatapoolHelper
{
/**
* scrīpt Name : <b>ThirdwithDatapool</b>
* Generated : <b>2005-4-17 15:22:36</b>
* Descrīption : Functional Test scrīpt
* Original Host : WinNT Version 5.1 Build 2600 (S)
*
* @since 2005/04/17
* @author ndejun
*/
public void testMain(Object
args)
{
startApp("ClassicsJavaB");
// Frame: ClassicsCD
icsJava(ANY,MAY_EXIT).close
;
}
}
基于Java
![](/icons/21814de.gif)
测试脚本
![](/icons/21814dou.gif)
为高级测试软员提高了更强大
![](/icons/21814de.gif)
编程和定制能力
![](/icons/21814dou.gif)
测试员甚至可以通过在Helper类中加入各种客户化脚本
![](/icons/21814dou.gif)
实现各种高级测试功能
![](/icons/21814dou2.gif)
3.2 使用RFT轻松实现数据驱动
![](/icons/21814de.gif)
软件Software测试
RFT具有基于向导(Wizards)
![](/icons/21814de.gif)
数据驱动
![](/icons/21814de.gif)
功能测试能力
![](/icons/21814dou2.gif)
在功能测试脚本
![](/icons/21814de.gif)
录制过程中
![](/icons/21814dou.gif)
如图 4所示
![](/icons/21814dou.gif)
我们可以方便选择被测应用图形界面上
![](/icons/21814de.gif)
各种被测对象
![](/icons/21814dou.gif)
进行参数化
![](/icons/21814dou.gif)
通过生成新
![](/icons/21814de.gif)
数据池字段或从数据池中选择已存在数据字段
![](/icons/21814dou.gif)
实现数据驱动
![](/icons/21814de.gif)
功能回归测试
图 4、数据驱动
![](/icons/21814de.gif)
功能测试
在生成测试脚本
![](/icons/21814de.gif)
同时
![](/icons/21814dou.gif)
RFT还能够帮助测试员在验证点中使用正则表达式或使用数据驱动
![](/icons/21814de.gif)
思路方法建立动态验证点
![](/icons/21814dou2.gif)
动态验证点用来处理普通验证点
![](/icons/21814de.gif)
期望值随着输入参数区别而发生变化
![](/icons/21814de.gif)
情况
![](/icons/21814dou2.gif)
在下面
![](/icons/21814de.gif)
例子中
![](/icons/21814dou.gif)
如图 5所示
![](/icons/21814dou.gif)
订单总金额会随着购买商品数量
![](/icons/21814de.gif)
区别而变化
![](/icons/21814dou.gif)
通过数据驱动
![](/icons/21814de.gif)
功能测试思路方法
![](/icons/21814dou.gif)
测试员首先要对购买
![](/icons/21814de.gif)
商品数量和订单总金额进行参数化
![](/icons/21814dou.gif)
然后编辑验证点中
![](/icons/21814de.gif)
期望值
![](/icons/21814dou.gif)
将其用数据池中
![](/icons/21814de.gif)
对应订单总金额代替
![](/icons/21814dou.gif)
这样验证点中
![](/icons/21814de.gif)
总金额就随着购买商品数量
![](/icons/21814de.gif)
区别而得出正确
![](/icons/21814de.gif)
总金额
![](/icons/21814dou2.gif)
通过简单操作、无需任何编程
![](/icons/21814dou.gif)
测试员就可以很方便地实现动态验证点
![](/icons/21814de.gif)
功能
图 5、生成动态验证点
此外
![](/icons/21814dou.gif)
测试员还可以通过在验证点中使用正则表达式
![](/icons/21814dou.gif)
建立更加灵活
![](/icons/21814de.gif)
验证点
![](/icons/21814dou.gif)
保证测试脚本
![](/icons/21814de.gif)
重用性
图 6、正则表达式在验证点中
![](/icons/21814de.gif)
应用
3.3 提供多种专利技术
![](/icons/21814dou.gif)
提高脚本
![](/icons/21814de.gif)
可维护性
使用IBM Rational Functional Test工具进行Java和Web应用系统测试时
![](/icons/21814dou.gif)
标准Java
![](/icons/21814de.gif)
测试脚本语言
![](/icons/21814dou.gif)
为测试脚本
![](/icons/21814de.gif)
可重用性和脚本能力提供了第
![](/icons/21814yi.gif)
层保证
![](/icons/21814dou2.gif)
此外
![](/icons/21814dou.gif)
通过维护"测试对象图"
![](/icons/21814dou.gif)
IBM为测试员提供了不用任何编程就可以实现测试脚本在区别
![](/icons/21814de.gif)
被测系统版本间
![](/icons/21814de.gif)
重用能力
![](/icons/21814dou2.gif)
"测试对象图"分为两种
![](/icons/21814dou.gif)
![](/icons/21814yi.gif)
种是公用"测试对象图"
![](/icons/21814dou.gif)
它可以为项目中
![](/icons/21814de.gif)
所有测试脚本使用;另
![](/icons/21814yi.gif)
种是私有"测试对象图"
![](/icons/21814dou.gif)
它只被某
![](/icons/21814yi.gif)
个管理
![](/icons/21814de.gif)
测试脚本所使用
![](/icons/21814dou2.gif)
在软件Software开发
![](/icons/21814de.gif)
区别版本间
![](/icons/21814dou.gif)
开发员会跟据系统需求
![](/icons/21814de.gif)
变化
![](/icons/21814dou.gif)
修改被测系统和用于构建被测系统
![](/icons/21814de.gif)
各种对象
![](/icons/21814dou.gif)
所以测试脚本在区别
![](/icons/21814de.gif)
版本间进行回归测试时经常会失败
![](/icons/21814dou2.gif)
因此
![](/icons/21814dou.gif)
通过维护公用"测试对象图"
![](/icons/21814dou.gif)
如图 7所示
![](/icons/21814dou.gif)
测试员可以根据被测应用系统中对象
![](/icons/21814de.gif)
改变
![](/icons/21814dou.gif)
更新测试对象
![](/icons/21814de.gif)
属性值及对应权重
![](/icons/21814dou.gif)
这样在不修改测试脚本
![](/icons/21814de.gif)
前提下
![](/icons/21814dou.gif)
就能使原本会失败
![](/icons/21814de.gif)
测试脚本回放成功
![](/icons/21814dou2.gif)
同时
![](/icons/21814dou.gif)
为了方便测试员对测试对象图
![](/icons/21814de.gif)
修改和维护能力
![](/icons/21814dou.gif)
RFT还提供了强大
![](/icons/21814de.gif)
查询和查询定制能力
![](/icons/21814dou.gif)
帮助测试脚本维护人员快速找到变化
![](/icons/21814de.gif)
测试对象
![](/icons/21814dou.gif)
进行修改和维护工作
图 7、测试对象图
![](/icons/21814de.gif)
维护
其次
![](/icons/21814dou.gif)
IBM提供
![](/icons/21814de.gif)
scrīptAssurance专利技术
![](/icons/21814dou.gif)
使测试员能够从总体上改变工具对测试对象变更
![](/icons/21814de.gif)
容忍度
![](/icons/21814dou.gif)
在很大程度上提高了脚本
![](/icons/21814de.gif)
可重用性
![](/icons/21814dou2.gif)
scrīptAssurance技术主要使用以下两个参数:脚本回放时
![](/icons/21814dou.gif)
工具所容忍被测对象差异
![](/icons/21814de.gif)
最大门值和用于识别被测对象
![](/icons/21814de.gif)
属性权重
![](/icons/21814dou2.gif)
使用这种技术
![](/icons/21814dou.gif)
测试员可以通过Eclipse
![](/icons/21814de.gif)
首选项设定脚本回放
![](/icons/21814de.gif)
容错级别
![](/icons/21814dou.gif)
即门值
![](/icons/21814dou.gif)
如图 8和图 9所示:
图 8、IBM专利技术:scrīptAssurance容错级别设定
点击高级
![](/icons/21814dou.gif)
能够看到各种具体
![](/icons/21814de.gif)
可接受
![](/icons/21814de.gif)
识别门值
图 8、scrīptAssurance门值设定
其次
![](/icons/21814dou.gif)
测试员可以根据被测对象实际更改情况
![](/icons/21814dou.gif)
在测试对象图中(如图 7所示)修改用于回放时识别被测对象
![](/icons/21814de.gif)
属性及其权重
![](/icons/21814dou2.gif)
在测试脚本回访时
![](/icons/21814dou.gif)
测试对象
![](/icons/21814de.gif)
识别分数将由以下公式计算得出:
score = 0;
for (
i = 0; i < property.length;
i )
score
(100 - match(property[i])) * weight;
其中
![](/icons/21814dou.gif)
match
![](/icons/21814kh.gif)
将根据属性
![](/icons/21814de.gif)
符合程度返回0~100的间
![](/icons/21814de.gif)
值
![](/icons/21814dou.gif)
完全符合返回100
![](/icons/21814dou.gif)
完全不符合返回0
![](/icons/21814dou2.gif)
测试脚本回放成功和否则取决于:识别得分 < 识别门值
![](/icons/21814dou2.gif)
通过这
![](/icons/21814yi.gif)
技术
![](/icons/21814dou.gif)
如图十所示
![](/icons/21814dou.gif)
通过设置恰当
![](/icons/21814de.gif)
scrīptAssurance门值和为用于识别对象
![](/icons/21814de.gif)
属性设置合适
![](/icons/21814de.gif)
权重
![](/icons/21814dou.gif)
即使在两个回归测试
![](/icons/21814de.gif)
版本间测试对象有多个属性区别
![](/icons/21814dou.gif)
对象仍有可能被正确识别
![](/icons/21814dou.gif)
脚本仍有可能回放成功
![](/icons/21814dou2.gif)
这为测试脚本
![](/icons/21814de.gif)
重用提供了最大程度
![](/icons/21814de.gif)
灵活性
图十、scrīptAssrance技术保证脚本
![](/icons/21814de.gif)
重用
3.4 和其它生命周期管理软件Software
![](/icons/21814de.gif)
完美集成
IBM Rational
![](/icons/21814de.gif)
自动化功能测试工具基于Eclipse平台
![](/icons/21814dou.gif)
提供了和需求管理工具(RequisitePro)、建模工具、代码级测试工具和变更及配置管理工具(ClearQuest和ClearCase)
![](/icons/21814de.gif)
完美集成
![](/icons/21814dou.gif)
这使得系统测试人员能够和整个软件Software开发团队(Team)在同
![](/icons/21814yi.gif)
个软件Software平台上
![](/icons/21814dou.gif)
实现系统功能测试
![](/icons/21814dou.gif)
完成测试脚本
![](/icons/21814de.gif)
配置管理和缺陷追踪