软件时空《微计算机信息》(管控一体化)2010年第26卷第4-3期 文章编号:1008-0570(2010)04--3-0212.一03 一种基于有向图的工作流测试方法 Aapproach workflowtesting based directedgraph (湖南工业大学)丁大伟李长云刘小飞 DING Da-wei LI Chang--yun LIU Xiao-fei 摘要:已有工作流测试方法在测试完备性和充分性方面存在不足。针对此问题文章对有向图工作流模型进行扩展,提出了一种 新的工作流测试方法取计并实现了其算法。该方法能够自动生成完备且充分的测试路径和测试用例。实例验证该方法有效。 关键词:有向圈;工作流模型;软件测试 中图分类号:TP3U.5 文献标识码:A Abstract:Introducing currentworkflow 80flware testing.On problemex.- tending worktlnwmodel,having anew method workflowsoftware testing implementedits algorithm.The method gettingtest path testcase automatically proposed.Throughactual examples el-fective. Key words."directed graph;workflow model;software testing 1引言 软件测试是软件质量最可靠的保障.是软件生命周期相当 重要的环节,.近年来1:作流技术快速发展,人们开始广泛关注工 作流软件的开发,这给软件测试带来了新的挑战,,传统的软件测 试技术对工作流系统的测试没有针对性.导致、当前的工作流测 试中.测试人员都是根据经验人工书写测试用例,并H测试方法 以手动测试为主。降低了工作流系统测试的完备性和测试充分 性.系统的性能也不能很好地保证,凶而迫切需要对工作流软件 的测试进行深入的针对性的研究.工作流软件的测试关键在于 建立1:作流模型。研究人员先后建立了多种不同的丁作流模型, 这些工作流模型在对业务过程的描述能力和模璎本身的特性 方面存在差异.有些侧重于工作流管理系统的实现.有些侧重于 对工作流语义的分析,但这些模型大都没有考虑工作流测试的 特征。 2基于有向图的工作流模型 基于有向图的工作流模型使用图形符号语言来描述工作 流模型,这些符号分为两类:节点fnt,de)和变迁(transition),WFMC 提出的6种工作流的基本控制结构都可以用这些符号表示出 来。如图l所示,将业务过程表示为一个有向图,有起始节点和 终止节点,可以使用分支节点和聚合节点表示环结构。 根据图论中有向图的一系列定义对。r作流进行形式化描 述,建立如下工作流模型。 定义l T作流模型G表示为有向图G=fN。F),其中:(1)N表 丁大伟:硕士研究生 基金项目:基金申请人:李长云:项目名称:开放环境下的软 件动态演化研究;基金颁发部门:国家自然科学基金委 (60773llO);基金申请人:李长云;项目名称:面向可信的软件 动态演化机制研究;基金颁发部门:中国博士后科学基金会 (20080440216) 示活动节点的集合.FNxN表示图中活动节点之间有向边的 集合。(2)j n。N,In(nJ--OA(、j mN,In(m)=0Amno),则此节 点n。被称作起始节点。(3)3 n,N,Out(n)--0 mN,Out(m1)=0Amnd,则此节点n,被称作终止节。(4)V nN,In(n)+Out(n)>l,当nn。而且n‰这样工作流系统可以表示为有向网模型,如图2所示。 或分支或合并 图1业务过程 其中.该有向图模型的活动节点有如下几个特征:活动节点n有五种类型:Concurrency,Synchronization.Choice,MergeSe- quence。Concurrency表示当活动n已经完成后,其他所有的邻接 一212—360元1年邮局订阅号:82-946 万方数据 软件时空后续都开始活动。Synchromzation表爪活动n激活的条件是它 要的信息,并完整的体现J’上作流的特征描述。 的所有邻接前驱活动都已经完成,,Choice表示活动n结束之后 3.2测试路径和测试用例的产生 就可以根据约束条件选择激活哪个邻接后续活动。Merge表示 工作流测试的根本任务是保’证每条、务流程都没有问题, 活动n激活的条件是它的任一邻接前驱活动完成.Sequence表 这就需要有足够多的测试用例来保证业务流程测试的完备性。 示活动n执行结束之后,可以直接执行其邻接后续活动。另外 而要构建足够多的测试用例,就需要找到足够多的测试路径。在 Sinde表示活动n为原子活动,是不可再分的,N。。ted表示活动 构造工作流有向图的过程中,我们把丁作流系统转变成为一有 n由多个原子活动组成。 向图,此时我们查找工作流的所有测试路径的问题就转变成查 基于有向图的工作流模型直观地描绘了通用工作流程的 找有向图所有路径的问题。 特性,突出了工作流的基本要素。然而在实际测试过程中。我们 首先定义活动节点的数据结构。把每个活动节点的孩子节 不但需要对所有的工作流程进行遍历,还需要提取活动所携带 点和双亲节点各自排成一列,看成是一个线性表以单链表存储, 的测试资源来复用。基于有向网的丁作流模型没有描述T作流 各节点对应着各自的孩子链表(叶子结点无)和双亲链表(根的双 测试信息,不能使测试信息作为复用资源进行利用,为使T作流 亲链表为空)。n个头指针组成一个线形表,为了方便查找,采用 模型有利于测试必须对其进行相应扩展。 顺序存储结构。然后从根节点出发,深度优先搜索一条从根到叶 3面向测试的工作流模型 3.1扩展基于有向图的丁作流模型 在工作流系统中.最霞要的是1:作流程。丁作流程是由一系 列活动节点和边组成的.由于工作流活动中可以携带复用信息 供测试使用冈而在构建面向测试的丁作流模型时。可以从研究 工作流的活动节点出发。对基于有向图的丁作流模型进行拓展, 特别是在有向图的活动定义中,我们对其拓展使它具有测试信 息。下面给出工作流测试信息的概念,并提出了面向测试的丁作 流模型: 定义2 Tesringlnfo为丁作流测试中的活动节点N所携带的 测试基本信息的集合:Testinglnfo={TestCase,Expect_Result,Data, TestScript}。TestCase表示当前活动节点的测试用例描述。Ex. pect_Result表示当前活动节点期待运行的结果。Data表示测试 当前活动节点用到的数据。TestScfipt表示当前活动节点的测试 脚本。 定义3面向测试的工作流模型TWfM(Test—oriented Work flow Model)是在常规工作流有向图的基础上扩展.其定义为 晰(N,F,R,Test)。这里:N表示图中所有节点的集合。F表示图 中节点之间有向边的集合。R表示从活动集合N到角色集合的 映射。Test表示从活动集合N到测试基本信息集合的映射,Test: N->Testinglnfo。 定义4活动n是对产品开发下作流程中的一个丁作步骤 的静态特性的数学描述,对应工作流有向图中活动节点,它可以 形式化为4元组n-(r’op,nodetypetestinginfo)。这里-r表示参与到 此活动a的角色。op表示角色n所执行的操作。nodetype表示 活动节点属于(Concurrency,synchronization,Choice,Merge,Se. quence)qj的哪种类型。testinginfo表示该活动节点携带的测试 信息。testinginfoTestinglnfo。活动n代表角色r实施了操作op' 并且该活动携带着测试信息testinginfo。 定义5边f是活动与活动之间的控制转移关系.它描述了 活动之间的路由规则和数据流动关系。可以形式化为2元组f- nmJ,其中,%n。N,/1。为有向边的开始活动,n。为有向边的结束 活动。 该模型将工作流的语义语法和测试信息集合在一起,表示 出面向测试的工作流模型的特性。在基于有向罔的工作流模型 基础上.该模型明确提出了T作流测试信息的概念.将测试信息 作为复用资源引入到-r.作流模型中,它为下作流测试提供了重 子的路径.调节树结构.把遍历过的节点从有向图中删除.如果非 叶子节点的所有叶子节点都被遍历过.把该节点从有向图中删 除。搜索出一条路径,调整一次有向图,不断遍历整个有向图,这 样就可以得到全部的路径。另外由于节点有Concurrency,syn chronization,choice,Merge,Sequences 5种状态,synchronization状 态的激活条件是节点所有邻接前驱(双亲)节点都已经完成。因 而在遍历路径的过程中要对synchronization状态的节点做特殊 处理,该遍历算法如算法l。对每个叶子至多调用一次搜索函数, 因为一旦叶子被标志成访问.就会从有向图中删除。不能再参与 搜索。其他状态不需要做出特殊处理。 算法1 Path(graph G,int MAX SIZE)/俅有向图的所有路径 {For(i=l;i<=MAX—SIZE;i++) {path[i]--w;/粥访问的节点记录到path[]中 II----W.firstchild; while(u.firstchild) {if(U.nodetype==synchronization) lcount[u]++;//count[]存放synchronization的前 驱节点完成个数 sync[u】-sync【u】+p[i】;//synch存放synchronization 状态的节点的路径 if(eount[u]==pno(u)),,pno(u)4存放u的双亲节点数 p[il=sync[u]; else{pathti]=”disuse”;//房￡弃路径path[i] u.parent.firstehild 2u.next;Judge_tree rG,U.par- ent);}J path[i]=u;u=u.next;l path[iJ=u; Judge—tree(G,u);}} Judge_tree(G,v){,,调节有向图G if(!v.firstchild)delete(v); //delete(x)从G中删除x节点 U----V.firstparent; while(u)f WmU; while(U) {if(W.firstchild)break; else{v--w;delete(w);W=V.parent;ll R=U.next;}}脉v的下一个父节点 @眦霸邮局订阅号:82舶360元/ -213一 万方数据 本,因而在生成测试路径的同时还生成了该测试路径的测试脚 【6】许可,杨路明.一种基于活动嘲络图扩展的工作流过程模型 本,为自动测试工作的展开提供了条件.由于测试路径中的活动 微计算机信息2007,9—3:120—122。 3.3测试过程【9】孙惠泉.图论及其应用【M】,北京邮电大学,信息工程系。 4应用实例 测试中我们引入了测试用例和测试脚本的自动生成技术. 较之先前的人工书写测试用例和测试脚本,极大的解放出了人 力,节省了软件开发的成本,保证了软件的测试充分性和可靠 性。我们在湖南工大电子校务平台的丁作流功能的测试中将人 工测试和自动测试的方法通过统计分析比较如下表I: 表I测试结果比较 ‘工作毓测试 参与测试人 测试用例数 发现BUG数 验证每日 效率比较 比较 目Budd时间;人工测试 15 100 200 4-5天 低自动测试 5.7 400.500 700 高从上表的分析可以得出:基于有向图的工作流测试是简单有效的,依据本测试方法能检测出更多的错误,进一步提高系统 的臼T靠性。并且在工作量方面,自动测试明显的降低了劳动时 间,节省了人力。当然,我们的测试仅仅是对湖工大电子校务平 台的工作流功能进作了测试。得出了较好的结果,还需要将该方 法应用在其他一些工作流的软件系统之上,来进一步检验该方 法的有效性和充分性。 5结论 基于有向图的T作流测试方法是从工作流的功能角度出 发的,因此在对工作流的软件需求和分析阶段就可以设计测试 用例,而不必等到软件完成后才开始。该方法用形式化和图形化 的方法,给出了测试路径和测试用例的生成方法.即严格充分.又 方便使用。另外该方法不仅适用于工作流的软件系统,同样适用 于能提供类似基本测试要素的其它软件,有着较为广泛的适 参考文献[1】单锦辉,姜瑛,孙萍.软件测试研究进展,北京大学学报,, 2005(1),41。1 【2】蔡开元.软件可靠性工程基础fMl,北京:清华大学出版社,1995 【3】朱鸿,金凌紫.软件质量保障与测试lMl.北京:科学出版社,1997 『4]William Elevis.SoftwareTesting continuousQuality im一 (School Computer&Communication.HunanUniversity Technology,Zhuzhou,Hunan412008,ChinaJDING Da—wei LI Chang-yun LIU Xiao-fei 通讯地址:(412008湖南株洲湖南工业大学计算机与通信学院) (收稿日期:2009.05.11)f修稿日期:2009.08.II)(上接第216页) l宗成庆.统it-自然语言处理-[MI.北京:清华大学H{版社.2008【4】蔡雷.语料库技术往英语教学中的应用与研究【J】.宿州学院学 报.2008 f51金在全,赵照,杜秀全等.一种改进的增字最大匹配算法[J1.2007 『61崔虹燕.一种改进的基于词频统计的中文分词算法研究fJ】.信 息技术.2008 『71俞士汶.计算语言学概论fMl.|E京:商务印书馆,2004 作者简介:岳晓光(1986一),男(汉族),河南信阳人。研究生,主要研 究方向:Web技术及应用,中文信息处理;梁晓诚(1958一),男,广西 桂林人,硕士生导师,研究方向:计算机应用,网络管理;麦范金 (1963一),男(汉族),广西玉林人,副教授。硕士生导师,主要研究方 向:中文信息处理;赵子j￥11981一),男(汉族)’山西太原人,硕士生, 主要研究方向:中文信息处理,软件工程。 Biography:YUE Xiao-guang(1 986-),male(the Han national- ity),Henan Province,Graduate Student Elec—tronic GuilinUniversity Technology,Research area:Web technology application,Chineseinforma— tion processing. (541004桂林理工大学电子与计算机系)岳晓光梁晓诚 Computer,GuilinUniversity Technology,GuilinGuangxi 541004,China)YUE Xiao-guaog LIANG Xiao--cheng MAI Fan-jin ZHAo Zi-qiang 通讯地址:(541004广西桂林建干路12号桂林工学院725信箱) f收稿口期:2009.05.14)(修稿日期:2009.08.14)一214—360-L/年邮局订阅号:82-946 万方数据