关闭

ClearQuest 最短状态转移路径算法的研究与实现

发表于:2008-5-05 13:57

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

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

        本文针对 ClearQuest 的状态转移模型设计和实现了基于广度优先遍历算法的最短状态转移动作序列算法。在设计算法的过程中同时证明了基于广度优先遍历算法计算 ClearQuest 状态转移模型中最短状态转移路径的正确性,从而完整的解决了计算 ClearQuest 状态转移模型中最短状态转移路径这一问题。使用本文提供的方法,用户只需输入起始和终止状态就能得到实现状态转移的最短动作序列,同时还能判定两个状态之间是否存在可能的动作转移序列。本方法可广泛用于测试自动化等应用场景中。
CQ 状态转移模型概述:

        ClearQuest 是一个工业级的缺陷跟踪和变更管理工具,为了有效的实现缺陷跟踪和变更管理,ClearQuest 定义和实现了一系列概念和机制。在 ClearQuest 的缺陷限跟踪和变更管理模型中,RecordType 和 StateTransition Model 是两个最重要的概念。RecordType 机制可以使用户定义他们想要跟踪和管理的实体,同时,结合定义在相应 RecordType 上的 StateTransition Model,用户就可以利用 ClearQuest 来管理和跟踪这种 RecordType 的实体在某一时刻所处的状态,这样就可以降低用户管理缺陷和变更的脑力负担,有效的控制和管理缺陷和变更。

        ClearQuest 同时提供了几套 API,比如基于 BASIC 的 API 和基于 PERL 的 API,这些 API 可以使用户方便的定制 RecordType,并为相应的 RecordType 编写相应的 HOOK。在这个过程中,用户经常需要根据这个 RecordType 的 Transition Model 来计算从一个起始状态到一个终止状态需要执行的动作(Action)序列。

        状态转移矩阵定义了某个 RecordType 的变更请求的声明周期。在 ClearQuest 的状态转移模型中有以下约束规则:

        要求在相邻的两个状态有且只有一个动作(Action)。 
        ClearQuest 要求在状态转移模型中不能存在孤立的状态,也就是说,不允许有这样一种状态,没有任何 Action 可以到达这个状态。 
        任何一个 RecordType 的状态转移模型都要满足以上两个约束规则。

        图 1 是一个 ClearQuest 中某种 RecordType 的状态转移模型。在 ClearQuest 中,其状态转移模型一般使用状态转移矩阵来存储,如本图所示。在这个状态转移矩阵中可以看出八种不同状态形成一个 8*8 的矩阵,列头表示源状态,行头表示目标状态,矩阵中的元素表示从源状态到目标状态需要进行的 Action. 如果两个状态之间可以转移,则两个状态的交点元素为非空,否则为空。


图 1. 某种 RecordType 的状态转移矩阵

图 1. 某种 RecordType 的状态转移矩阵

        图 2 是对应于上面状态转移矩阵的状态转移图,从中我们可以看出,这个 RecordType 的状态转移模型是符合 ClearQuest 的状态转移模型的约束规则的。即:不存在孤立状态;每一对源和目标状态之间只有一个 Action。


图 2. 状态转移图

图 2. 状态转移图

 

 

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号