4 脚本修复技术的实现
脚本修复的模块设计如下图所示,待测系统1为旧系统,待测系统2为新系统。当输入两个对象集合之后,通过对比,获得发生变更的对象3;同时更新对象3的事件操作,并找出涉及到该对象3的测试脚本;最后对脚本进行修复,生成可重用的测试脚本。

图11. 解析文件生成代码的流程图
脚本修复器的实现要考虑的情况比较多,也比较复杂。因此对于脚本修复的实现主要从三个大类进行实现,即新增对象,删除对象,修改对象:
1)对新增节点的处理流程如图所示:

图12. 新增节点处理流程图
具体算法实现如下:
// 更新脚本,参数为脚本名称,新增对象列表
Public boolean UpdateScript(String Testcasename,Element newlist)
{
int size = getaddedNode.size();// 节点个数
int i;
String nodename;
String depend;// 依赖节点名称
Boolean update = false;// 更新标记位
for(i=0;i<size;i++)// 遍历节点
{
if(depend.equalsIgnoreCase(“true”))// 存在依赖关系
{
if(operations.findefunction(nodename))// 找到该节点
{
String default = nodename + “default”;// 默认函数名称
operations.instead(nodename,default);// 用默认函数代替原函数
update = true;
}
else
continue;
}
Return update;// 返回 true 或者 false
}