好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于状态图的测试用例生成技术.docx

6页
  • 卖家[上传人]:ji****81
  • 文档编号:260049479
  • 上传时间:2022-02-27
  • 文档格式:DOCX
  • 文档大小:90.84KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    •           基于状态图的测试用例生成技术                    芮素娟 刘葭摘要:本文通过研究UML状态图模型,提出了一种测试用例生成方法,将UML状态图采用有向图的邻接矩阵表示,采用深度优先遍历算法,得到测试序列,并通过将没有被覆盖的边引入测试序列中,得到了满足一定覆盖准则的测试序列关键词:UML;测试用例;有向图TP306随着信息技术的发展,软件的复杂程度越来越高,面向过程的软件开发方法难以复用已存在的优秀代码,并难以维护,使得符合人类思维逻辑的面向对象的软件开发方法越来越受欢迎,对此类软件的测试也变得非常重要软件测试是为了发现软件的缺陷而执行程序的过程,用来确认软件是否满足用户的需求,也是保证软件质量的关键技术随着软件开发人员对软件测试的重视程度的提高,各种测试技术和测试工具也应运而生软件测试中测试用例的质量是决定软件测试质量高低的关键因素,大多以状态自动机理论来生成测试用例随着统一建模语言(UML)的广泛应用,基于UML模型的测试用例生成研究成为软件测试研究中的一个重要方向文献[1]研究了UML状态图和扩展有限状态机这两种方法在软件测试中状态转换的特点,利用扩展有限状态机状态转换单一线索化的特点降低UML状态图在类测试用例生成中的复杂性。

      文献[2]基于状态图包含的基本元素,设计相应的变异算子,分析每一种变异算子产生无效或等价变异体的条件,整合了功能重合的变异算子本文以自动取款机的UML状态图模型为例,将状态图转换成图的表示方式,对图的邻接矩阵进行分析,提出一种测试用例生成算法1UML状态图UML状态图描述一个特定对象生命期中满足某些条件的所有状态,以及由于各种事件的发生而引起的状态之间的转移对象生命周期的开始用初始状态表示,它是转移的源头,初始状态在一个状态图中必须存在并且唯一对象生命周期的结束用终止状态表示,一个状态图可能会有多个终止状态转移:使系统从初始状态到达一个目标状态用带参数的实线箭头表示状态的转移,箭头指向的状态是转移的目标状态,箭尾连接转移的源头图1是ATM自动取款机的状态图状态图SD用一个五元组来表示[3],SD=(S,∑,δ,S0,F)其中:(1)S为非空有限状态集合;(2)∑为有限输入集,表示驱动转移的事件集合;(3)δ:S×∑→S表示状态的转移映射;(4)S0表示初始状态,S0∈S;(5)表示终止状态集合,F∈S图1ATM收款机状态图2有向图图G[4]由顶点和边构成,记为G=(V,E),其中V是顶点的集合,E是边的集合。

      假设图G中任意两个有边相连的顶点Vi和Vj组成的边是有向的,称Vi为弧尾,Vj为弧头,则该图为有向图有向图的邻接矩阵中的第i行第j列的元素aij表示顶点Vi到Vj是否有边,如果Vi和Vj没有边相连,则aij的值为0,否则为1有向图G的顶点Vi的入度等于所有以Vi为弧头的弧的个数之和有向图G的顶点Vi的出度等于所有以为Vi弧尾的弧的个数之和将UML状态图的每一个状态用有向图的节点表示,状态图中的每一个转移用有向图的边表示图1所示的状态图转换为有向图后,采用有向图的邻接矩阵表示3基于状态图的测试用例生成3.1测试覆盖准则测试充分性准则是一组可用于判断是否进行了充分测试的规则,软件测试执行的是否充分是很重要的,对一个软件测试的不充分,将遗留很多问题的软件发布出去,使用户承担更大的风险,最终会导致软件的失败,而反过来对软件过度测试,则会浪费时间、人力等资源,延误软件发布,失去市场最佳时间在实际操作过程中,软件类型不同,使用的测试策略和参照的充分性准则不同,所付出的测试代价也不同,对于安全性较高的软件来说,测试充分性准则就限制的很严格本文用UML状态图来生成测试用例,采用以下2种准则[5]:状态覆盖准则:测试用例集应该使状态图中的每一个基本状态至少被访问一次。

      迁移覆盖准则:测试用例集应该使得状态图中的每一个迁移至少被激活一次3.2测试用例生成采用有向图的邻接矩阵来生成测试用例常用的方法有深度优先搜索和广度优先搜索算法,我们采用深度优先算法来生成测试用例,具体算法如下所示:(1)首先从邻接矩阵中求出入度为0的顶点和出度为0的顶点Ve ,其中Vs为初始顶点,Ve 为终止顶点;(2)从Vs顶点开始,查找以Vs为弧尾的邻接顶点Vx,如果顶点Vx没有被访问过,则遍历此顶点;(3)继续查找以Vx顶点为弧尾的邻接顶点Vy,如果顶点Vy没有被访问过,则遍历此顶点;(4)如果顶点Vy!= Ve则重复步骤(3),否则得到一个测试序列VsVxVy5)查看还有没有未被访问的顶点,如果有,则重复以上步骤此种算法得到的测试用例满足测试状态覆盖准则,还需要经历以下步骤:检查没有被覆盖的边,记录没有被覆盖的边的弧尾Va和弧头Vb,从已有的测试用例序列中找出一条以这个边的弧尾为弧头的测试用例前缀序列,找出一条以这个边的弧头为弧尾的测试用例后缀序列;按顺序把测试用例前缀序列,当前未覆盖的边的顶点序列,测试用例后缀序列组合形成一条测试序列最终生成的测试序列满足测试状态覆盖准则和迁移覆盖准则。

      4总结面向对象的软件开发方法的广泛应用使得传统的测试技术跟不上测试的需求,采用UML模型生成测试用例广泛得到人们的关注,本文把状态图采用有向图的邻接矩阵来表示,提出了一种基于UML状态图的测试用例生成方法,最终生成了满足状态覆盖标准和迁移覆盖标准的测试序列参考文献:[1]张毅坤,施凤鸣,姚全珠,刘军,付长龙.基于UML状态图的类测试用例自动生成方法[J].计算机工程,2003,21:91-93.[2]米磊,贲可荣.一种基于UML状态图的规约变异测试方法[J].计算机工程与科学,2012,2:150-158.[3]庄俨.基于UML合并状态图的测试用例生成[D].南京信息工程大学,2011.[4]魏少涵.邻接矩阵的初始化问题研究[J].新余学院学报,2012,6:73-75.[5]杨志伟,吴兵.基于UML状态图的软件测试充分性准则研究[J].计算机技术与发展,2013,7.作者简介:芮素娟(1980-),女,重庆电子工程职业学院,讲师,硕士  -全文完-。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.