一种面向工作流系统的测试用例生成方法及装置制造方法及图纸

技术编号:14898796 阅读:97 留言:0更新日期:2017-03-29 13:57
本发明专利技术提供一种面向工作流系统的测试用例生成方法及装置,其中,所述方法包括:基于带输入输出约束的工作流系统,建立Petri网模型;根据分支‑聚合对,将所述Petri网模型划分为多个片段;若划分的片段中存在分支‑聚合对,继续对该片段进行划分,以得到所述Petri网模型对应的模型分解树;遍历所述模型分解树,生成与所述模型分解树相对应的测试序列集合;根据所述测试序列集合中每条测试序列包含的输入输出信息,生成测试用例。本发明专利技术提供的一种面向工作流系统的测试用例生成方法及装置,能够解决现有技术中测试技术针对性不强、工作流系统测试充分性低的问题,以提高系统的测试效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种面向工作流系统的测试用例生成方法及装置
技术介绍
工作流技术是近年来在国民经济领域广泛应用的一项计算机技术。尽管经过近30年的发展,工作流技术已经由最初的萌芽状态发展成为一个系统、复杂且成体系的研究领域,并取得了相当丰硕的研究成果,但从实际应用和对其测试的经验总结来看,其成熟度距离人们预期的目标还相去甚远,尤其在对其测试方法的研究方面,理论尚不健全,应用尚不广泛。总体来看,目前工作流测试方法研究中主要存在以下几个方面的问题:(1)系统建模方法针对性不强,模型适用性低。当前对工作流建模技术的研究主要用于任务调度、性能分析、模型验证等方面,面向测试的建模技术研究很不充分,多数研究只给出了一个测试的大概框架,并未对面向测试的工作流建模技术进行具体、深入的研究。理想的工作流模型应当清晰、准确地表达系统中的各类要素。面向测试的工作流系统建模应综合考虑模型描述是否正确完整,能否依靠所建立的模型生成测试用例,甚至自动化执行测试等工作。虽然目前已有一些基于流程图、状态图等直观的建模方法,但由于其语义过于简单,无法表达系统中复杂的逻辑过程。(2)测试用例设计缺乏理论指导,测试充分性低。自动化测试是所有测试人员的理想目标,工具的支持可大幅度提高测试效率。虽然目前已经有些工具可以对工作流模型进行正确性验证或性能分析,但测试仍然是对其进行质量保证最有效的手段。目前对工作流系统的测试主要以手工测试为主,仅有的一些工具的功能也较为单一,测试用例的设计主要依靠测试人员的经验,这使得测试覆盖面不广,充分性不高,测试不够充分。
技术实现思路
本专利技术的目的在于提供一种面向工作流系统的测试用例生成方法及装置,能够解决现有技术中测试技术针对性不强、工作流系统测试充分性低的问题,以提高系统的测试效率。为实现上述目的,本专利技术提供一种面向工作流系统的测试用例生成方法,所述方法包括:基于带输入输出约束的工作流系统,建立Petri网模型;其中,所述工作流系统中包括工作流的活动集合、输入元素的集合、输出元素的集合、工作流中的关系集合、活动到输入元素的映射以及活动到输出元素的映射;所述Petri网模型中包括输入类库所和输出类库所的集合、工作流中的活动集合、映射集合以及初始网模型;根据分支-聚合对,将所述Petri网模型划分为多个片段;若划分的片段中存在分支-聚合对,继续对该片段进行划分,以得到所述Petri网模型对应的模型分解树;遍历所述模型分解树,生成与所述模型分解树相对应的测试序列集合;根据所述测试序列集合中每条测试序列包含的输入输出信息,生成测试用例。进一步地,所述Petri网模型对应的模型分解树按照下述方式构建:步骤S11:将所述Petri网模型作为一个节点,并按照分支-聚合对将该节点分割为多个片段,其中,各个片段作为该节点的一个子节点;步骤S12:将各个子节点中类型为分支-聚合对的子节点进行处理,以将类型为分支-聚合对的子节点中各条流程作为该子节点的子节点;步骤S13:将分支-聚合对的每个子节点作为Petri网子模型,并对各个Petri网子模型按照步骤S11进行递归处理。进一步地,遍历所述模型分解树,生成与所述模型分解树相对应的测试序列集合具体包括:步骤S21:将当前节点node表示成其所有子节点node.son的连接形式;步骤S22:如果node.son的类型为or,并且node.son还有n个子节点node.son.son,则将所有包含node.son的测试序列复制n次,并将每个复制后的序列中的node.son替换为node.son.son;步骤S23:如果node.son的类型为and,则将所有包含node.son的测试序列替换成所有node.son.son的并行形式;步骤S24:对node.son.son进行递归遍历,以对node.son.son的子节点按照步骤S21至S23进行处理。进一步地,所述模型分解树中,分支节点的类型与聚合节点的类型一致。进一步地,生成测试用例的步骤中具体包括:当所述模型分解树中的节点存在子节点时,判断该节点的类型;当该节点的类型为sequence时,将该节点替换为该节点的所有子节点连接的形式;当该节点的类型为or时,将该节点替换为该节点的子节点中的任一子节点;当该节点的类型为and时,将该节点替换为该节点的所有子节点的并行形式。为实现上述目的,本申请另一方面还提供一种面向工作流系统的测试用例生成装置,所述装置包括:网模型建立单元,用于基于带输入输出约束的工作流系统,建立Petri网模型;其中,所述工作流系统中包括工作流的活动集合、输入元素的集合、输出元素的集合、工作流中的关系集合、活动到输入元素的映射以及活动到输出元素的映射;所述Petri网模型中包括输入类库所和输出类库所的集合、工作流中的活动集合、映射集合以及初始网模型;模型分解树构建单元,用于根据分支-聚合对,将所述Petri网模型划分为多个片段;若划分的片段中存在分支-聚合对,继续对该片段进行划分,以得到所述Petri网模型对应的模型分解树;测试序列集合生成单元,用于遍历所述模型分解树,生成与所述模型分解树相对应的测试序列集合;测试用例生成单元,用于根据所述测试序列集合中每条测试序列包含的输入输出信息,生成测试用例。进一步地,所述网模型建立单元具体包括:片段分割模块,用于将所述Petri网模型作为一个节点,并按照分支-聚合对将该节点分割为多个片段,其中,各个片段作为该节点的一个子节点;节点处理模块,用于将各个子节点中类型为分支-聚合对的子节点进行处理,以将类型为分支-聚合对的子节点中各条流程作为该子节点的子节点;递归处理模块,用于将分支-聚合对的每个子节点作为Petri网子模型,并对各个Petri网子模型按照所述片段分割模块的执行步骤进行递归处理。进一步地,所述测试序列集合生成单元具体包括:连接形式表示模块,用于将当前节点node表示成其所有子节点node.son的连接形式;第一类型判断模块,用于如果node.son的类型为or,并且node.son还有n个子节点node.son.son,则将所有包含node.son的测试序列复制n次,并将每个复制后的序列中的node.son替换为node.son.son;第二类型判断模块,用于如果node.son的类型为and,则将所有包含node.son的测试序列替换成所有node.son.son的并行形式;递归遍历模块,用于对node.son.son进行递归遍历,以对node.son.son的子节点按照所述连接形式表示模块、第一类型判断模块以及第二类型判断模块的执行步骤进行处理。进一步地,所述测试用例生成单元具体包括:类型判断模块,用于当所述模型分解树中的节点存在子节点时,判断该节点的类型;第一处理模块,用于当该节点的类型为sequence时,将该节点替换为该节点的所有子节点连接的形式;第二处理模块,用于当该节点的类型为or时,将该节点替换为该节点的子节点中的任一子节点;第三处理模块,用于当该节点的类型为and时,将该节点替换为该节点的所有子节点的并行形式。由上可见,本申请针对工作流系统的测试方法不足的问题,将工作流系统中的活动建模为Petri网中的迁移,将各活本文档来自技高网...
一种面向工作流系统的测试用例生成方法及装置

【技术保护点】
一种面向工作流系统的测试用例生成方法,其特征在于,所述方法包括:基于带输入输出约束的工作流系统,建立Petri网模型;其中,所述工作流系统中包括工作流的活动集合、输入元素的集合、输出元素的集合、工作流中的关系集合、活动到输入元素的映射以及活动到输出元素的映射;所述Petri网模型中包括输入类库所和输出类库所的集合、工作流中的活动集合、映射集合以及初始网模型;根据分支‑聚合对,将所述Petri网模型划分为多个片段;若划分的片段中存在分支‑聚合对,继续对该片段进行划分,以得到所述Petri网模型对应的模型分解树;遍历所述模型分解树,生成与所述模型分解树相对应的测试序列集合;根据所述测试序列集合中每条测试序列包含的输入输出信息,生成测试用例。

【技术特征摘要】
1.一种面向工作流系统的测试用例生成方法,其特征在于,所述方法包括:基于带输入输出约束的工作流系统,建立Petri网模型;其中,所述工作流系统中包括工作流的活动集合、输入元素的集合、输出元素的集合、工作流中的关系集合、活动到输入元素的映射以及活动到输出元素的映射;所述Petri网模型中包括输入类库所和输出类库所的集合、工作流中的活动集合、映射集合以及初始网模型;根据分支-聚合对,将所述Petri网模型划分为多个片段;若划分的片段中存在分支-聚合对,继续对该片段进行划分,以得到所述Petri网模型对应的模型分解树;遍历所述模型分解树,生成与所述模型分解树相对应的测试序列集合;根据所述测试序列集合中每条测试序列包含的输入输出信息,生成测试用例。2.根据权利要求1所述的方法,其特征在于,所述Petri网模型对应的模型分解树按照下述方式构建:步骤S11:将所述Petri网模型作为一个节点,并按照分支-聚合对将该节点分割为多个片段,其中,各个片段作为该节点的一个子节点;步骤S12:将各个子节点中类型为分支-聚合对的子节点进行处理,以将类型为分支-聚合对的子节点中各条流程作为该子节点的子节点;步骤S13:将分支-聚合对的每个子节点作为Petri网子模型,并对各个Petri网子模型按照步骤S11进行递归处理。3.根据权利要求1所述的方法,其特征在于,遍历所述模型分解树,生成与所述模型分解树相对应的测试序列集合具体包括:步骤S21:将当前节点node表示成其所有子节点node.son的连接形式;步骤S22:如果node.son的类型为or,并且node.son还有n个子节点node.son.son,则将所有包含node.son的测试序列复制n次,并将每个复制后的序列中的node.son替换为node.son.son;步骤S23:如果node.son的类型为and,则将所有包含node.son的测试序列替换成所有node.son.son的并行形式;步骤S24:对node.son.son进行递归遍历,以对node.son.son的子节点按照步骤S21至S23进行处理。4.根据权利要求1所述的方法,其特征在于,所述模型分解树中,分支节点的类型与聚合节点的类型一致。5.根据权利要求1所述的方法,其特征在于,生成测试用例的步骤中具体包括:当所述模型分解树中的节点存在子节点时,判断该节点的类型;当该节点的类型为sequence时,将该节点替换为该节点的所有子节点连接的形式;当该节点的类型为or时,将该节点替换为该节点的子节点中的任一子节点;当该节点的类型为and时,将该节点替换为该节点的所有子节点的并行形式。6.一种面向工作流系统的测试用例生成装置,其特征在于,所述装置...

【专利技术属性】
技术研发人员:郑长友黄松姚奕胡斌任正平洪宇史涯晴惠战伟饶丽萍蒋圆圆
申请(专利权)人:中国人民解放军理工大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1