RFT 中的显示
图 16. RFT 中的显示
(查看大图)
基本事件的表示:
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 此时可以被调用。 } |
脚本层就是将事件进行拼装。可以安装事先指定的覆盖率自动生成。
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(); // 安装覆盖率自动 生成脚本,也可以测试者手动添加。 }
|
图 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 软件质量的目的。