一种基于UML活动图的测试场景自动生成策略.doc

上传人:吴起龙 文档编号:1591994 上传时间:2018-12-26 格式:DOC 页数:9 大小:17.71KB
返回 下载 相关 举报
一种基于UML活动图的测试场景自动生成策略.doc_第1页
第1页 / 共9页
一种基于UML活动图的测试场景自动生成策略.doc_第2页
第2页 / 共9页
一种基于UML活动图的测试场景自动生成策略.doc_第3页
第3页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一种基于UML活动图的测试场景自动生成策略.doc》由会员分享,可在线阅读,更多相关《一种基于UML活动图的测试场景自动生成策略.doc(9页珍藏版)》请在三一文库上搜索。

1、一种基于UML活动图的测试场景自动生成策略Abstract:In the process of designing test case through the traditional scene method,there are many problems,including scene construction difficulty,high redundancy and low design efficiency.To solve this problem,the paper proposes a scheme for test scene automatic generation bas

2、ed on UML activity diagram.On the basis of the activity flow graph,the improved depth-first search algorithm is adopted to obtain path collection,and the path optimization algorithm method is applied to generate test path and test scene.The effectiveness of this scheme has already been verified in a

3、 testing process of a commercial supplier collaboration platform.The practice results indicate that the scheme can effectively solve the problem of path explosion caused by cycle workflow and significantly reduce the redundancy of test scene. Keywords:test scene;activity flow graph;depth-first searc

4、h;independent path;automatic generation 1 引言(Introduction) 基于场景的测试用例设计方法1是一种重要的黑盒测试技术,其核心思想是通过分析软件需求,构建各种测试场景,并寻找测试场景与系统输入参数、特征状态的关联关系进行测试用例的设计。测试场景的构建是场景法的关键环节,传统的从软件需求规格说明中提取基本流、备选流进行测试场景构建的方法存在效率低下、执行困难等问题。因此,探索测试场景自动生成策略成为运用场景法设计测试用例的重要研究点之一。基于UML模型驱动测试用例自动生成是一种基于模型的软件测试技术,在自动生成测试用例方面有广泛的研究2,3。其

5、中UML活动图用于表示系统业务的工作流程,被认为是最适合描述软件过程的模型,因此众多研究者在使用UML活动图生成测试场景方面做了一定的研究。周飞等提出将活动图转化为有向图,通过构建图的搜索树生成测试场景4;苏翠翠等提出了一种基于路径覆盖的测试场景生成算法5;Jena等提出了活动流图(Activity Flow Graph,AFG)的概念,设计了测试场景模型,并采用遗传算法生成测试场景6。这些研究为基于UML活动图构建测试场景提供了良好的思路,但是存在着以下问题:一是构建的模型在形式化定义上有所欠缺;二是未能实现测试场景的自动化生成;三是未考虑复杂测试场景中的循环工作流的执行与优化。 本文通过对

6、活动流图进行形式化定义,给出了测试场景的自动生成策略,针对系统需求中存在循环工作流的情况提出了一种测试场景优化算法,显著降低了测试场景的冗余性,提高了测试设计效率。 2 基于活动流图的测试场景生成策略(Test scene generation based on activity flow graph) 2.1 活动流图的元素定义 由于UML是一种半形式化的建模语言,因此需要采用一种更好的可形式化表示的图来构造测试场景模型。活动流图由活动图转化而来,通过把活动图中的各种元素按照一定的规则映射而成7,其本质是一个有向图。图1表示了一个活动图与活动流图的映射关系。 定义1:活动流图用一个四元组 表

7、示。其中表示图中所有结点的集合,N为活动流图中所有结点的数量;表示图中所有边的集合,M为活动流图中所有边的数量;为活动流图中唯一的起始结点;表示活动流图中终结结点的集合,n为所有终结结点的数量。边可以由一个有序结点对表示,即。 定义2:路径集合是活动流图中所有从起始结点到终结结点由边连接而成的结点序列,记为,np为活动流图中路径的总数。路径可以由组成该路径的边的有序集合表示,记为,ne为路径p包含的边数。 根据活动图与活动流图的映射关系,一条路径表示系统用例从开始到结束的执行流程,对应着一个测试场景,路径集合则对应测试场景集合,构建测试场景的问题就转化为获取活动流图路径集合的问题。对于较复杂的

8、系统需求,所构建的活动图往往包含循环工作流;循环会导致路径的组合爆炸,对活动图中所有可能的路径进行穷尽测试是无法达到的8。为了得到所有路径集合,需要对循环工作流进行合理处理。循环可展开成为无限长的路径序列,为了控制路径序列的长度,限定测试场景中每个循环只展开一次9。同时,路径集合中的路径之间存在大量相同的边,使其对应的测试场景之间存在较多相同的测试工作流,从而导致设计出的测试用例存在冗余,因此需要对路径集合进行优化,降低冗余度。 定义3:循环回路是某路径中含有一组边,且由这组边形成的一个闭合回路,即 ;循环回路集合表示为C(AFG)。 定义4:独立路径是至少存在一条路径集合中其余路径不包含的边

9、,且不含循环回路或包含的各个循环回路至多执行一次的路径。独立路径表示为:。 活动流图中所有的独立路径组成的集合称为独立路径集合,记为。独立路径集合为路径集合的一个子集,即。 2.2 测试场景生成策略的设计 根据独立路径的定义,独立路径集合能够覆盖活动流图中所有的边,且保证每条路径中循环回路至多执行一次;对应的测试场景集合即为优化的测试场景集合,实现了采用较少的测试场景覆盖全部的工作流,同时解决了循环回路的执行问题。基于活动流图的测试场景生成策略如下: (1)根据系统需求创建活动图。 (2)将活动图转化为活动流图。 (3)基于改进的深度优先搜索算法获取活动流图的路径集合。 (4)采用路径优化算法

10、获取活动流图的独立路径集合。 (5)根据独立路径集合生成测试场景。 3 关键算法的设计与实现(Design and implementation of the key algorithm) 3.1 基于深度优先策略的路径搜索算法 深度优先搜索算法(Depth First Search,DFS)是一种经典的图遍历算法,可以用于获取图的路径集合。在基于UML活动图生成测试场景的研究中,多为面向有向无环图的获取路径集合的DFS算法10,11。但有向无环图不包含循环回路,因此针对本文的研究内容,提出了一种改进的深度优先搜索算法,以解决循环回路的问题,具体思想如下: (1)起始结点设置为已访问,将其入栈

11、。 (2)获取栈顶元素v的相邻结点集合W。 (3)对集合W进行遍历,对于未入栈且未被访问的相邻结点,将其入栈,并标记为已访问,同时将w作为栈顶元素,重新执行第(2)步。 (4)对于已入栈且已访问的相邻结点,说明存在循环回路,判断w在栈中出现的次数是否小于该结点的出度;如果出现次数小于出度,则说明当前循环回路为第一次执行,将w入栈,同时将w作为栈顶元素,重新执行第(2)步;否则,则访问下一相邻结点。 (5)如果W集合中不存在步骤(3)(4)中的两类相邻结点,则将W集合中的每个结点标记为未访问,将栈顶元素v出栈。 (6)当栈顶元素为终结结点,即W为空时,将栈中的结点按照逆序排列构成的路径加入路径集

12、合P(AFG)中,并弹出栈顶元素。 3.2 独立路径集合获取算法 在路径集合中根据独立路径的定义进行路径筛选,可以得到独立路径集合。独立路径集合的获取算法思想如下: (1)任选一条路径作为独立路径,初始化独立路径集合。 (2)对剩余路径进行遍历,逐条验证其是否为独立路径,将独立路径加入独立路径集合。 (3)对第(1)步中得到的独立路径集合中的每条路径再次进行遍历,移除不满足独立路径条件的路径。 4 应用实例(Examples of application) 供应商协同平台是一个将企业采购管理系统与供应链管理系统对接形成线上流程的一体化平台,为企业拉动与上游客户之间在订货协作、商品推介、库存查看

13、、资金支付、物流查询、渠道沟通等业务环节的紧密协作。平台中包含众多业务流程,其中“采购物资”流程是一个较为复杂的系统需求,包含若干审批环节。以该流程为测试对象验证本文提出的测试场景自动生成策略的有效性。根据系统需求,构建“采购物资”流程的活动图如图2所示。 根据独立路径集合的获取算法,得到独立路径集合如表2所示。将独立路径表示的结点序列映射至图1中,生成的测试场景如下: 测试场景1:Start生成询价单采购组审批未通过修改询价单生成询价单采购组审批通过部门审批未通过记录问题询价单End。 测试场景2:Start生成询价单采购组审批通过部门审批通过生成采购单审批采购单未通过评审问题采购单(可以解

14、决)修改采购单审批采购单未通过评审问题采购单(不可解决)关闭采购单End。 测试场景3:Start生成询价单采购组审批通过部门审批通过生成采购单审批采购单通过生成发货单审批发货单未通过修改发货单审批发货单通过发货End。 通过对实例的应用结果进行分析,提出的测试场景生成策略解决了以下问题: (1)实现了根据活动流图自动化获取路径集合。 (2)解决了循环回路带来的复杂性问题;图2中包含的三个循环回路在路径中仅执行一次。 (3)通过路径优化,将14个测试场景优化为三个测试场景,降低了测试冗余性。 (4)优化后的测试场景能够使系统工作流达到100%的测试覆盖率,具有较好的测试充分性。 5 结论(Conclusion) 本文提出了一种测试场景的自动生成策略,根据UML活动图,给出了活动流图的严格定义,通过改进的深度优先搜索算法及路径优化算法,解决了测试场景中的循环回路问题与测试冗余问题。同时该策略能够实现测试场景的自动生成,并在一个商业系统测试过程中成功应用,证明了测试结果具有较好的充分性,测试效率得到了显著提高。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1