论文摘要
面向方面的程序设计(Aspect-Oriented Programming,AOP)是最新流行的一种软件开发技术,是对面向对象软件开发方法的进一步发展和补充。AOP的主要目标是分离关注点,将所有关注点分离成核心关注点和横切方面。使用AOP可以减少代码纠缠和混乱状况。不过,这样在形成新的代码片断或量化指令的同时也可能会引入新的bug。因此,AOP测试的研究也应该随着AOP的广泛应用而越来越受到人们的重视。现在的面向方面软件开发(Aspect-Oriented Software Development, AOSD)的研究大部分集中于问题的分析、软件设计和执行技术。虽然应用面向方面开发技术最终能开发出高质量的软件,但是面向方面也不能保证软件在应用和开发中不会出错。面向方面的程序开发语言加强了编码类型的规范,但是这也不能防护程序员的错误或对规格说明书的不充分理解。结果在面向方面的软件开发中软件测试仍然是一项非常重要的任务。基于AOP自身的特点,一些现有的传统的测试架构和测试技术不能直接的应用于面向方面程序。这些特殊性在测试过程中需要特殊考虑。因此需要对面向方面的软件测试进行深入地研究,寻求合适的测试方法和测试架构,设计更有效的测试用例。本文对面向方面的软件开发中可能会出现的一些故障进行了详细的分析,得出了AOP故障类型。此故障类型为面向方面的测试提供了很好的指导作用,可以作为面向方面测试研究和应用的依据。程序中有很多故障是隐性的,不易被发现的。简单使用覆盖规则测试,很难覆盖被测程序的所有分支,为此采用程序变异的方法对被测软件进行故障注入,用强制的方法执行被测分支,使隐性的故障变为显性的故障暴露出来,从而提高测试的覆盖率。本文以AOP故障分类为基础,结合基于变异的故障注入技术,提出了基于故障分类的AOP故障注入测试过程。以AOP切入点故障类型为指导,研究了切入点变异体的生成方法。将基于变异的故障注入技术应用于面向方面程序测试,提高了测试的覆盖率,并能检测测试用例集的灵敏性。
论文目录
摘要ABSTRACT第一章 绪论1.1 课题的意义和目的1.2 国内外研究现状1.2.1 基于模型方法的面向方面程序测试1.2.2 基于状态的面向方面测试方法1.2.3 基于数据流的对类和方面的测试1.2.4 基于方面流图生成横跨类和方面的测试集1.2.5 检查AspectJ 中冗余的单元测试1.2.6 无编织的方面单元测试架构1.3 课题研究的背景知识1.3.1 AOP 的概念1.3.2 AspectJ 概述1.3.3 面向方面程序设计的步骤1.3.4 AOP 与OOP 的不同1.3.5 AOP 的研究现状及发展趋势1.4 本文的主要工作1.5 论文的组织结构第二章 AOP 故障类型分析2.1 AOP 的技术特性2.1.1 关注点分离2.1.2 横切技术2.2 AOP 易发故障的原因2.3 AOP 故障类型2.3.1 切入点模式强弱不均2.3.2 不正确的方面优先级2.3.3 设立期望的后置条件失败2.3.4 保持状态不变量的状态失败2.3.5 使用控制流指示符定位不正确2.3.6 控制流依赖不正确的变化2.3.7 异常导致控制流不正确的变化2.3.8 类型间声明引起的失败2.3.9 多形态调用不正确的变化2.4 小结第三章 AOP 切入点测试3.1 AOP 切入点概述3.1.1 pointcut 的结构3.1.2 pointcut 的模式3.2 AOP 切入点故障类型3.2.1 不正确的模式3.2.2 不正确的原始切入点选择3.2.3 不正确的动态环境匹配3.2.4 不正确的切入点合成3.3 切入点测试3.3.1 测试AOP 切入点描述3.3.2 AspectJ 程序的自动的切入点测试3.4 小结第四章 基于变异的故障AOP 切入点测试技术4.1 基于变异的故障注入技术4.2 基于故障类型的AOP 故障注入测试过程4.3 基于变异的故障注入应用于切入点测试的分析4.4 切入点变异体的生成4.4.1 基于切入点类型名称的变异4.4.2 基于指示符的变异4.4.3 基于切入点签名中参数的变异4.4.4 基于切入点组合的变异4.5 切入点故障注入测试实例4.6 小结第五章 总结与展望5.1 工作总结5.2 工作展望参考文献成果目录致谢
相关论文文献
标签:面向方面编程论文; 故障分类论文; 故障注入论文; 变异测试论文; 软件测试论文;