一种基于贝叶斯网络失败风险模型的WebService测试方法

文档序号:7721414阅读:296来源:国知局
专利名称:一种基于贝叶斯网络失败风险模型的Web Service测试方法
技术领域
本发明涉及一种Web Service测试优化的方法,尤其涉及对Web Service各个组
件失败风险进行贝叶斯网络建模,并从中选择风险最大的组件进行测试的方法。

背景技术
Web Service是由企业发布的完成其特定商务需求的在线应用服务,其他公司或 应用软件能够通过Internet来访问并使用这项在线服务,它是一种构建应用程序的普遍 模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的恥b应用程序分支, 是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。 传统的软件往往由一个或若干个可靠的组织进行制作和维护,但Web Service则 是在开放的Internet环境中,由动态发现与组装一些松耦合的服务来实现的,而这些服务 的提供者又是相对独立的,因此,相比于传统的软件测试,对Web Service进行测试将会更 为困难。由于Web Service具有潜在的不稳定性、不可靠性和不可预知性,要测试完其所有 组件是极其费时的,也几乎是不可能的。但同时,为了保证Web Service的质量,又不得不 进行测试。因此,必须在时间有限的情况下,有选择性地进行测试,即选择失败而导致潜在 风险最高的若干Web Service组件进行测试。所以,建立一种刻画Web Service组件失败 风险的模型,并在此模型的基础上研究相应的测试方法,具有重要的意义。

发明内容
有鉴于此,本发明建立了一个贝叶斯网络以刻画Web Service组件之间的失败依 赖关系,并在此网络的基础上量化组件的失败风险,最后,依据组件失败风险来有选择性地 进行动态测试。 —种基于贝叶斯网络失败风险模型的Web Service测试方法,其特征在于步骤如 下 (A)根据Web Service所涉及的本体中各个组件(类和属性)的依赖关系和调用 关系建立相应的贝叶斯网络BN ; (B)通过BN中的节点依赖关系计算每个节点的相对重要程度L ;
(C)由先验知识确定每个节点在BN中失败的初始概率P ; (D)计算每个节点的失败风险Risk, Risk = P L,并选择风险最高的节点进行测 试; (E)将已测试节点的测试结果(成功或失败)作为证据代入失败概率公式,更新未 测试节点的当前失败概率P; (F)重复步骤(D)和步骤(E),直至完成指定测试任务。 根据本发明的又一个方面,所述的步骤(A)包括 (Al)将每个本体中各个组件之间的关系转化为失败依赖关系; (A2)BN中的一个节点代表本体中的一个组件,每条有向边代表所连接的两个组件
3之间的失败依赖关系,因此BN反映了组件的所有失败依赖关系。
根据本发明的又一个方面,所述的步骤(B)包括 (Bl)由任一个节点C的出度及其所有不同辈分后代的出度定义并计算C的绝对重 要程度Ia ; (B2)重复(bl)的步骤,直至计算出BN中所有节点的绝对重要程度; (B3)将任一个节点C的绝对重要程度与BN中最大绝对重要程度的比值作为C的
相对重要程度I" 根据本发明的又一个方面,所述的步骤(C)包括 (CI)对于无其他节点指向的节点C,先验知识必须给出C失败的概率,这个概率作 为在BN中失败的初始概率P ; (C2)对于被其他节点指向的节点C,先验知识必须给出在C的父节点失败或不失
败的所有可能的组合情况下,C失败的条件概率;其中,C的父节点都不失败的情况下C失
败的概率作为C在BN中失败的初始概率P。 根据本发明的又一个方面,所述的步骤(D)包括 (Dl)将每个节点的失败风险定义为Risk = P Ir ; (D2)测试BN中当前风险最大的节点。 根据本发明的又一个方面,所述的步骤(E)包括将已测试节点的测试结果(成功 或失败)作为已知条件代入失败概率公式,更新未测试节点的当前失败概率P。
根据本发明的又一个方面,所述的步骤(F)包括测试的终止条件不必是穷尽所 有节点,可以是,例如测试完指定数量的高风险节点;或某一指定测试时间段结束。


图1为本发明的方法基本流程图。
具体实施例方式
下面参考附图,对本发明的具体实施进行详细的说明。 本发明的核心思想是通过建立Web Service的各个组件在动态测试中失败风险 的模型,按照风险的高低选择组件进行测试。
本发明的核心步骤包括以下六个部分 步骤(1):将Web Service所涉及的本体中各个组件(类或属性)间的关系实施
进一步的抽象,即通过因果关系机理分析,将实际应用中这些组件的数据依赖、函数依赖等
关系全部转化为运行失败的依赖关系,并将这种关系在一个贝叶斯网络BN中描绘出来。其
中,每个节点分别代表本体中的一个组件,每条有向边代表所连接的两个节点之间的失败
依赖关系,由失败的原因节点指向结果节点。 步骤(2):计算所有节点在BN中的相对重要程度。 本发明将节点对其后代的影响作为该节点的绝对重要程度,具体而言,即把节点 的出度及其所有不同辈分后代节点的出度作为该节点绝对重要程度的衡量,相同辈分的后 代受到该节点的影响相同,所占权重也相同;该节点对后代节点的影响应该随着后代辈分 的降低而呈指数式递减。因此,本发明定义节点Ci绝对重要程度Ia(Ci)的计算公式如下o明 /。((7,) = 2>,乂
7=1
其中,
1) D印i是以节点&为根的树的深度;
2) Nj是节点&第j代后代的节点数;
3) Wj是节点Ci的每个第j代后代的权重,代表了 Ci对该后代的影响程度,它应随
着j的递增而呈指数递减,本发明取,=+。 本发明为了将节点的重要程度归一化,定义了节点Ci相对重要程度Ir(Ci),其计 算公式如下





max(/。(C》)
_>=1"..,"。 乂
其中,
1) n是BN节点的总个数;
2) ffaX (/。(q ))是所有节点中绝对重要程度的最大值。 步骤(3):计算所有节点的失败概率。
首先,本发明约定,& = 0代表测试失败,& = 1代表测试通过。 为求节点的失败概率公式,应先对BN所有节点的联合概率分布PBN进行分解,从而 使失败概率的推断计算可以通过对联合概率分布求边缘分布得到。该分解如下 尸训-fl户(CJ风) 其中,pak是节点Ck的所有父节点;若Ck无父节点,则公式中的P(Cklpak)项退化 为P(C》。所有P(Cklpak)的值均由先验知识给出。 由上述分解式,可以得到在当前状态下,计算节点&失败的概率的公式
P(Y^_n;r、 p^广—n们 Z尸训 Z n尸(C」PA)
/YC = 01 £、=尸(L'. - u,A)=尸^-^ 一 U,AJ =柳、[(c,-o)ue] = av\i(q=o)u£] "i_
柳\£ "1 其中,E是所有当前已测试节点的状态集合;在初始状态,£ = 0 ,此时,即得节点
&的初始失败概率 P (Ci = 0 IE) = P (Ci = 0 I pa》 可以看到,节点的初始失败概率是完全由先验知识决定的。
步骤(4):计算所有未测试节点的失败风险。 本发明将节点的失败风险定义为其失败概率和其在BN中相对重要程度的乘积, 因此,节点&失败风险的计算公式如下
Risk(C》=P(C复) Ir(Ci) 步骤(5):选择未测试节点中的失败风险最高的节点进行测试,
步骤(6):本发明将测试结束条件定义为完成测试5个节点。若测试满足测试结
束条件,则停止测试;否则,将已测试结果代入节点失畋概率计算公式,更新所有未测试节 点的当前失败概率,转歩骤(4) (5)。 —种基于贝叶斯网络失败风险模型的Web Service测试方法的伪代码如下 1)五<~0; 2)j — 1 ; 3)for i = 1 to n 4)Calculate Ir(C》; 5) endf or 6)while (the number of tested component is less than n/2) 7) do 8)foreach Ci in BN\E 9)Calculate Risk(C》; 10) endforeach 11) from BN\E select such that &'"(CVj) = ,^:.{i ""C,)}; 12)TestC~;
13) Refresh the status of C"; £ —£UC,,, 15) j — j+1 ; 16)endwhile。
权利要求
一种基于贝叶斯网络失败风险模型的Web Service测试方法,其特征在于步骤如下(A)根据Web Service所涉及的本体中各个组件的依赖关系和调用关系建立相应的贝叶斯网络BN;(B)通过BN中的节点依赖关系计算每个节点的相对重要程度Ir;(C)由先验知识确定每个节点在BN中失败的概率P;(D)更新所有到目前为止尚未测试的节点的失败风险Risk,Risk=P·Ir,并选择风险最高的节点进行测试;(E)将之前所有已测试的节点的成功或失败的测试结果代入失败概率公式,更新所有到目前为止尚未测试的节点的失败的概率P;(F)重复步骤(D)和步骤(E),直至完成指定测试任务。
2. 根据权利要求l的基于贝叶斯网络失败风险评估的Web Service测试方法,其特征 在于,所述的步骤(A)包括(Al)将每个本体中各个组件之间的关系转化为失败依赖关系;(A2) BN中的一个节点代表本体中的一个组件,每条有向边代表所连接的两个组件之间 的失败依赖关系,因此BN反映了组件的所有失败依赖关系。
3. 根据权利要求l的基于贝叶斯网络失败风险评估的Web Service测试方法,其特征 在于,所述的步骤(B)包括(Bl)由任一个节点C的出度及其所有不同辈分后代的出度定义并计算C的绝对重要程度I"(B2)重复(Bl)的步骤,直至计算出BN中所有节点的绝对重要程度; (B3)将任一个节点C的绝对重要程度与BN中最大绝对重要程度的比值作为C的相对 重要程度工r。
4. 根据权利要求l的基于贝叶斯网络失败风险评估的Web Service测试方法,其特征 在于,所述的步骤(C)包括(CI)对于无其他节点指向的节点C,先验知识必须给出C失败的非条件概率,这个概率 作为C在BN中的失败的概率P;(C2)对于被其他节点指向的节点C,先验知识必须给出在C的父节点失败或不失败的 所有可能的组合情况下,C失败的条件概率;其中,C的父节点都不失败的情况下C失败的 概率作为C在BN中的失败概率P。
5. 根据权利要求l的基于贝叶斯网络失败风险评估的Web Service测试方法,其特征 在于,所述的步骤(D)包括(Dl)将每个节点的失败风险定义为Risk = P Ir ; (D2)测试BN中当前风险最大的节点。
6. 根据权利要求l的基于贝叶斯网络失败风险评估的Web Service测试方法,其特征 在于,所述的步骤(E)包括将之前所有已测试的节点成功或失败的测试结果代入失败概 率公式,更新未测试节点的失败的概率P。
7. 根据权利要求l的基于贝叶斯网络失败风险评估的Web Service测试方法,其特征 在于,所述的步骤(F)包括测试的终止条件是测试完指定数量的高风险节点。
全文摘要
本发明公开了一种基于贝叶斯网络失败风险模型的Web Service测试方法(1)根据Web Service所涉及的本体中各个组件(类和属性)的依赖关系和调用关系建立相应的贝叶斯网络BN;(2)通过BN中的节点依赖关系计算每个节点的相对重要程度Ir;(3)由先验知识确定每个节点在BN中失败的概率P;(4)计算每个节点的失败风险Risk,Risk=P·Ir,并选择风险最高的节点进行测试;(5)将已测试节点的测试结果(成功或失败)代入失败概率公式,更新未测试节点的当前失败概率P;(6)重复步骤(4)和步骤(5),直至完成指定测试任务(例如测试完指定数量的节点)。本发明根据各个组件的动态失败风险来选择测试的顺序,在有限时间内不能穷尽测试每个组件的情况下,选择最容易失败的组件进行测试,从而提高测试的价值、降低测试的成本。
文档编号H04L12/26GK101783750SQ20091024411
公开日2010年7月21日 申请日期2009年12月29日 优先权日2009年12月29日
发明者余韡, 李未, 李贺, 白晓颖 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1