首页> 中文学位 >基于谓词动态切片技术的AOP测试用例生成方法研究
【6h】

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

代理获取

摘要

面向方面的软件开发是一种新出现的软件开发方法,面向方面程序设计是面向对象程序设计技术的补充和完善,它引入方面实现对横切关注点的封装,解决了代码混乱和代码分散的问题,提高了软件开发效率。高效的面向方面程序(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简化动态依赖图的算法和生成谓词动态切片算法。最后,将各路径的实际输出数据与期望输出数据相比较,即可判断该程序是否有错误。经实例分析和实验验证,此方法可以系统地测试一个完整的面向方面程序,通过引入谓词动态切片技术,提高了测试数据的生成效率,并产生有效、完备的测试用例。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号