论文部分内容阅读
面向方面编程AOP是一种全新的软件开发技术,它解决了在面向对象编程中有横切关注点所引起的代码分散和代码纠缠问题。由于AOP引入了新的语言机制:连接点、切入点和通知等,这影响了程序的状态和行为,导致方面和类之间的交互复杂化。因此,开发适合面向方面的新的软件测试技术是AOP的一项迫切而艰巨的任务。
在本文中,我们提出一种基于A—FREE模型的面向方面测试技术。A—FREE是对FREE状态模型的扩展,通过基于现有的面向方面建模技术,添加横切关注点、横切特性、横切接口、横切元素等AOP特性而得到。我们通过分析方面对类的影响,提出一种编织机制,进而得到编织状态模型WSM。
方面转换树A—TT基于A—FREE模型并通过转换规则得到。本文中,我们扩展了以往显式路径转换树的方法,提出多条件覆盖A—TT规则和N+测试A—TT规则,分别用来识别潜行路径和状态控制错误。其中,我们详细分析了状态控制错误如何导致基于A—FREE模型测试的失败,并研究了基于A—FREE模型的测试如何能够检测方面错误。另外,由于测试用例是软件测试的核心和关键,我们研究了测试用例的重用规则,并以改进的迭代松弛法自动产生测试数据。
最后,我们提出基于A—FREE模型测试框架AFMAT,基于框架我们从三个方面扩展已有的基于模型的方面/类检测和测试工具MACT,并以扩展的MACT来实验、评估基于A—FREE模型的面向方面测试技术。