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

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

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

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

2.1 事件依赖关系图

  事件依赖关系序列图可以表示控件之间的依赖关系。它由有限个 (e 1,e 2...e n) 事件序列组成,每一个节点都表示一个对象控件对应的事件,有向边则表示了程序执行时界面控件之间的执行时序和之间的依赖关系。

  事件依赖关系序列图其实就是以图形符号的方式形式化的来表示界面控件之间的依赖关系的有向图。其中用 ei 来表示一个事件,其属性包括对象元素名称,输入格式,输入参数,前驱顶点,后继顶点等;有向边可用“有向边”表示,表示系统中控件执行的时序和事件路径;依赖关系可用“依赖关系”表示,表示同一界面事件之间的依赖关系;用“省略事件”表示事件 e 1 到事件 e n 省略了若干事件。关联图中如果一个顶点没有前驱顶点,则叫做起点;如果一个顶点没有后继顶点,则叫终点。一个完整的事件依赖关系图,必须能够从起点走到终点,表明了该事件序列是合法的,可达的。

  下图所示为一个简单的事件依赖关系序列图。其中 e 1 为起点,e n 为终点,e 2 事件制约着 e 3 事件,e 3 事件依赖着 e 2 事件。


图 4. 一个简单的事件依赖关系序列图
一个简单的事件依赖关系序列图

  在事件依赖关系序列图中,依赖关系是事件序列能否正常运行的关键。如果能保证在有依赖关系的事件 e i 出现之前,其依赖事件 e j 已经出现,这样就可以保证 e i 的正确运行。通过依赖事件序列生成算法,可以找出 e i 的所有依赖事件 e j,并将 e j 写入到的 e i',e i' 为对象 i 的默认操作,该操作包含了对象 i 的所有依赖事件。如图 5 所示用 e i' 保证了在调用对象 i 之前,所有依赖事件已经出现。对于 e i 其依赖事件有两类来源:

  • 父节点所有子节点都依赖其父节点,只有父节点的对象处于活动状态,子节点的事件才能被调用。
  • 事先指定好的依赖节点测试人员往往需要根据系统的需求和软件设计说明书,人工进行调整,在对象树中将控件 A 所依赖的控件节点信息,写入到该控件 A 的依赖节点列表中。

图 5. 依赖事件关系图
依赖事件关系图

  设集合 I 保存测试对象 O i 的所有依赖节点,依赖事件生成算法的步骤如下:

  算法输入:对象树状信息文件

  算法输出:生成有依赖关系对象的依赖事件

  步骤 1:输入对象树状信息文件;

  步骤 2:遍历对象树中所有节点;

  步骤 3:从对象集合中找到对象 O i,并将其标识为已访问,其父节点为 O j,其依赖节点为 O k, I = I ∪ {O j,O k};

  步骤 4:访问集合 I,如果集合为空,则转入步骤 9;

  步骤 5:依次访问集合 I 中的对象,并重复步骤 3;

  步骤 6:当集合 I 不再变化时,则找到对象 O i 所有依赖节点;

  步骤 7:访问集合 I 中对象,获得层级码,和该对象的默认事件;

  步骤 8:将默认事件按照层级码的方式组织起来,生成 e i';

  步骤 9:如果对象树中仍有未访问节点,清空集合 I,转到步骤 3;

  步骤 10:至此,遍历结束,生成所有有依赖关系对象的依赖事件 e j',算法结束。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号