基于Rational Functional Tester 的测试脚本自动修复技术

发表于:2008-4-29 14:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

RFT 中的显示


图 16. RFT 中的显示
RFT 中的显示

查看大图

5.2 事件层(managers)

基本事件的表示:

public void clickButtonOK()    
{    
   addDBDlg.getButtonOK().click();    
}    
public void DoubleclickButtonOK()    
{    
    addDBDlg.getButtonOK().doubleClick();    
}

default 事件的生成:

public void ClickBTNOKDefault()    
{    
    setTextIPAddressDefault();// 必填字段 1    
    setTextDBNameDefault();// 必填字段 2    
    setTextUserNameDefault();// 必填字段 3    
    setTextPasswordDefault();// 必填字段 4    
    clickButtonOK();// 保证所有的依赖关系都被调用,Button 此时可以被调用。    
}

5.3 脚本层 (testcase)

脚本层就是将事件进行拼装。可以安装事先指定的覆盖率自动生成。

public void testcase1(Object[] args)     
{    
    DBServerInfoTableViewMgr dbServerInfoViewMgr = new DBServerInfoTableViewMgr();
    // 调用事    件层对象       
    AddDBServerDlgMgr addDBServerDlgMgr = new AddDBServerDlgMgr();  
     dbServerInfoViewMgr.clickToolBar("addDBServer");       
     addDBServerDlgMgr.setTextIPAddress();       
     addDBServerDlgMgr.setTextDBName();       
     addDBServerDlgMgr.setTextPassword();       
     addDBServerDlgMgr.setTextComments();       
     ClickButtonOK();       
    // 安装覆盖率自动    生成脚本,也可以测试者手动添加。       
}

5.4 脚本修复 (update)

在进行用例修复的时候,通常对于删除对象最难处理。因此这里选择删除的对象进行处理。


图 17. 选择删除的对象进行处理

选择删除的对象进行处理


  如图所示查找内容的输入栏被删除,其对象名称为 TextFieldFind。通过用例修复器对现有的用例集合进行修复:

  (1)自动更新事件层,删除 TextFieldFind 的所有事件 , 同时更新所有的 default 操作,保证 default 操作一定可达;

  (2)查找到涉及到 TextFieldFind 的测试脚本如 Testcase3;

  (3)TextFieldFind 对象变化类型为删除,ButtonSearchNext、ButtonInstead、ButtonInsteadAll 对其有依赖关系;

  (4)将存在有依赖关系的步骤,替换成默认操作,保证其可达性。

  

原测试脚本如下所示:

public void testMain(Object[] args)     
{
    MenuEditMgr menueditMgr = new MenuEditMgr();    
    SearchDlgMgr searchdlgMgr = new SearchDlgMgr();    
    menueditMgr.ClickMenubar("Edit");    
    menueditMgr.ClickMenubar("Edit->Paste");    
    menueditMgr.ClickMenubar("Edit");    
    menueditMgr. ClickMenubar("Edit->Instead");    
    searchdlgMgr.SetTextFieldFind("abc");// 事件被删除    
    searchdlgMgr.ClickBTNSearchNext();// 有依赖关系更新为 BTNSearchNextDefault()    
    searchdlgMgr.ClickBTNInstead();// 有依赖关系更新为 BTNInsteadDefault()    
    searchdlgMgr.SetTextFieldFind("123");// 事件被删除    
    searchdlgMgr.ClickBTNInsteadALL();// 有依赖关系更新为 BTNInsteadALLDefault()    
    searchdlgMgr.ClickBTNCancel();// 没有依赖关系不做改变    
}    

经过修复的测试脚本覆盖了旧脚本,执行这个脚本就可以完成回归测试,代码如下所示:

public void testMain(Object[] args)     
{    
    MenuEditMgr menueditMgr = new MenuEditMgr();       
    SearchDlgMgr searchdlgMgr = new SearchDlgMgr();       
    menueditMgr.ClickMenubar("Edit");    
    menueditMgr.ClickMenubar("Edit->Paste");    
    menueditMgr.ClickMenubar("Edit");    
    menueditMgr.ClickMenubar("Edit->Instead");    
    searchdlgMgr.BTNSearchNextDefault();    
    searchdlgMgr.BTNInsteadDefault();    
    searchdlgMgr.BTNInsteadALLDefault();    
    searchdlgMgr.ClickBTNCancel();    
}    

总结

        一个完整的回归测试脚本集由修复的测试脚本和新生成的测试脚本两部分组成。使用测试脚本修复技术对已有测试脚本进行修复,提高了脚本的重用性。

        最后结合一个实际的待测程序,进一步对脚本修复中技术细节进行研究与验证。最终达到了高效进行 GUI 软件测试、降低测试成本、提高 GUI 软件质量的目的。


77/7<1234567
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号