基于谓词动态切片技术的AOP测试用例生成方法研究

被引量 : 0次 | 上传用户:hgscmey
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
面向方面的软件开发是一种新出现的软件开发方法,面向方面程序设计是面向对象程序设计技术的补充和完善,它引入方面实现对横切关注点的封装,解决了代码混乱和代码分散的问题,提高了软件开发效率。高效的面向方面程序(Aspect-oriented programming, AOP)则试方法是面向方面程序的质量保证。目前,对于面向方面程序测试主要有四种方法:①由Zhao Jian-jun提出的基于数据流的单元测试方法。此方法主要关注程序中每个变量的赋值分配情况,根据控制流图构造方面、类的定义-使用(def-use)对,选取适当的测试策略,它存在的主要问题是环绕建议(around advice)可能改变定义-使用对的构造结果;②由Xu Dian-xiang等人提出的基于状态的测试方法。此方法是将面向方面的状态模型(ASM)变换成树的结构,由此得到的所有测试用例可对对象行为、方面以及类间的交互进行完备的测试,但没有解决状态组合爆炸的问题;③Xu Wei-feng等人利用方面流图(AFG)和迁移树基于AFG进行测试,该方法依据覆盖准则产生可执行的测试用例,它主要检测的是由控制流依赖改变导致的错误,可以表示静态应用的建议(advice),但无法表示动态应用的建议;④方面的独立测试。这种测试只针对特定的AOP语言,其重点在于对方面实现的测试,而对方面与类的交互没有涉及。本文提出一种引入谓词动态切片技术协助生成AOP测试用例的测试方法。首先,构造完整AOP语句控制流图,它包含AOP的方面、切入点、连接点、建议等因素。然后,将完整AOP语句控制流图存储在邻接表中,通过对邻接表的遍历,得到AOP的所有路径,针对每条路径,构造其分支函数,计算得到相应的测试数据,在测试数据调整时,若判定路径是不可执行路径,则不再为其生成测试数据。在这个过程中,引入谓词动态切片来协助调整测试数据,谓词动态切片是依据AOP简化动态依赖图得到的,本文提出了构造AOP简化动态依赖图的算法和生成谓词动态切片算法。最后,将各路径的实际输出数据与期望输出数据相比较,即可判断该程序是否有错误。经实例分析和实验验证,此方法可以系统地测试一个完整的面向方而程序,通过引入谓词动态切片技术,提高了测试数据的生成效率,并产生有效、完备的测试用例。
其他文献
上市公司业绩备受各相关利益者的关注,一直以来人们都在努力探寻和完善有关业绩评价指标。本文对EVA作为上市公司业绩评价指标进行原理阐述及评价,针对我国上市公司在实施EVA
在竞争激烈的日化行业,云南白药牙膏以其差异化的战略定位,在我国市场上特立独行,取得了辉煌的成功。究其成功的奥秘就在于:独特的产品定位、一流的品质定位、高端的价格定位
论述了汽车租赁业务岗位和收发车岗位的职责和定位,综合北京各大汽车租赁公司的业务流程的共性,探索了符合职业教育学生认知规律的汽车租赁业务流程,缩短了学生进入岗位角色
本文在分析爱生药业反并购案例的基础上,了解买壳上市模式的运行过程,分析公司如何通过资本运作获利。
随着卫星导航服务需求的不断增长,星载卫星导航信号接收机的研究对我国建设自己的卫星导航系统,以及提高我国航天能力都有着重要的影响,在此背景下对于星载导航卫星信号接收
目的建立反相高效液相色谱法测定食用油中棉酚含量的方法。方法采用甲醇对食用植物油中的棉酚进行提取,上清液用氮气吹干,用乙腈+0.1%甲酸水(85+15)溶液定容,采用C18柱(250 m
新自由主义的全球化是资本主义危机的产物,其本质并不是全球一体化,而是发达资本主义国家掠夺发展中国家的工具。美国金融危机的爆发证明,新自由主义并不能摆脱资本主义固有
目的探索一种简便易行且能同时测定食品中的有害物质溴酸盐、吊白块、亚硝酸盐、硝酸盐的方法。方法准确称取一定量的样品,使用透析袋在200 r/min的振荡器中将溶解后的样品透
天然β-胡萝卜素具有防癌抗癌、提高免疫力、延缓衰老等多种保健功能,在一些保健食品的开发中也常作为重要的食品添加剂使用,因此其提取开发在保健和医疗领域中的应用日益受
本文根据中国现有立法程序相对滞后、商业秘密法律保护法规分散、经济实力相对国际社会落后的国情,提出了几项对商业秘密进行法律保护的新建议,以期进一步引发完善我国商业秘