面向方面编程在单元测试中的研究与应用

面向方面编程在单元测试中的研究与应用

论文摘要

单元测试是为了发现软件设计的最小单位(程序模块)中存在的错误而进行的测试工作。作为软件项目中最早介入的测试工作,单元测试是集成测试和系统测试的基础,单元测试的成功与否直接关系到软件的质量。在其它领域,单元测试也一样重要并受到关注:测试优先的开发方法(Test Driven Development,简称TDD),要求在写实际的代码之前,先写出单元测试用例;软件重构(Software Refactoring)的首要前提就是拥有一个可靠的单元测试环境。单元测试是当前应用和研究的热点。 面向方面编程(Aspect-Oriented Programming,简称AOP)是施乐公司帕洛阿尔托研究中心(Xerox PARC)在上世纪90年代最先提出的一种编程模型,它使开发人员可以更好地将本不该彼此纠缠在一起的辅助任务同核心任务分离开来。AOP的精髓在于关注点的分离,更准确地说是核心关注点和其它关注点(也称为核心关注点的横切关注点)的分离。使用AOP编程语言可以将每个横切关注点单独描述。在编译或者运行期间,这些横切关注点会被织入到核心关注点代码中。AOP技术作为OOP的补充,随着开发工具和环境的成熟,得到了广泛的关注研究和应用。 本文分别深入研究了面向方面编程技术和单元测试,发现了两者之间的联系。根据对单元测试本身特征的研究和Erik Ernst提出的判断AOP中关注点的标准。本文认为:从AOP的角度看,单元测试是被测单元的一个横切关注点。 随后,通过对单元测试中遇到的几个难题的研究,本文先给出传统的解决方法,再给出使用了AOP技术的更简单更有效的解决方法。从而不仅说明了使用AOP技术可以帮助解决单元测试中的难题,还给出了这些难题的解决方法。这些难题包括被测代码如何与外部依赖服务隔离的问题,测试代码如何访问被测类中封装的私有变量和函数等等。对于其它问题,如对历史遗留代码的测试也给出了基于AOP技术的解决思路。 在此基础上,本文给出了一个通过基于面向方面编程的可扩展的单元测试框架ATest(Aspect-Oriented Unit Test Framework的简称)。该框架使用了较为成熟的AspectJ语言来解决单元测试问题。对单元测试中若干难题的解决也被集成到该框架中。该框架具有一定的扩展性,对单元测试中特定问题的解决方法可以通过扩展接口加入至该框架中,从而使得该框架更具实用性。 最后,本文对相关研究工作做了总结,并展望了AOP技术在单元测试中的前景。

论文目录

  • 第一章 引言
  • 1.1 研究背景
  • 1.2 在单元测试中应用AOP技术
  • 1.3 本文的主要贡献
  • 1.4 本文的组织结构
  • 第二章 面向方面编程
  • 2.1 面向方面编程概述
  • 2.2 面向方面编程的实现
  • 2.3 介绍ASPECTJ
  • 2.4 面向方面编程的主要研究内容
  • 2.5 小结
  • 第三章 软件单元测试
  • 3.1 软件测试概述
  • 3.2 单元测试
  • 第四章 AOP技术在单元测试中的应用
  • 4.1 单元测试是一个横切关注点
  • 4.2 在单元测试中应用AOP技术
  • 4.3 对AOP单元的测试
  • 第五章 基于AOP的单元测试框架
  • 5.1 基于AOP的单元测试框架描述
  • 5.2 ATEST核心类框架详解
  • 5.3 测试框架使用演示
  • 5.4 本章小结
  • 第六章 总结与展望
  • 6.1 总结
  • 6.2 对未来工作的展望与感想
  • 参考文献
  • 致谢
  • 相关论文文献

    • [1].基于需求依赖关系识别横切关注点[J]. 电子技术与软件工程 2018(20)
    • [2].横切关注点管理中的若干关键问题综述[J]. 计算机科学 2016(07)
    • [3].准确识别横切关注点依赖关系和影响范围的方法[J]. 电信技术 2014(04)
    • [4].通过需求依赖判定横切关注点[J]. 吉林大学学报(工学版) 2011(04)
    • [5].AOP改进访问者模式—分离横切关注点[J]. 微计算机信息 2010(24)
    • [6].AOP与设计模式的比较[J]. 民营科技 2011(05)
    • [7].基于XML的切入点描述机制[J]. 计算机应用与软件 2008(11)
    • [8].基于Spring与Ajax Anywhere的面向方面编程[J]. 信息技术 2008(05)
    • [9].利用.Net4.0的特性实现AOP的方法研究[J]. 机电信息 2011(09)
    • [10].一种基于KAOS和XML的横切关注点识别方法[J]. 武汉工程大学学报 2011(09)
    • [11].应用软件的监控与AOP技术探析[J]. 中国新技术新产品 2009(24)
    • [12].针对C语言的面向方面语言设计与实现[J]. 小型微型计算机系统 2016(12)
    • [13].AOP在BPEL服务组合中的应用的研究[J]. 科技创新导报 2010(12)
    • [14].基于动态行为和模糊识别的Aspect挖掘方法[J]. 计算机工程 2009(06)
    • [15].一种.NET平台下AOP框架的实现方法[J]. 计算机与现代化 2009(11)
    • [16].一种基于面向方面机制的模型转换方法[J]. 计算机应用与软件 2008(05)
    • [17].AOP思想在项目中的应用与研究[J]. 电脑知识与技术 2010(15)
    • [18].面向方面编程在Web系统中的应用[J]. 电脑编程技巧与维护 2010(16)
    • [19].横切侵入性和横切不变性[J]. 计算机研究与发展 2008(08)
    • [20].基于模板的横切关注点重构框架的研究[J]. 电脑知识与技术 2008(27)
    • [21].一种实用的对象持久化框架[J]. 计算机科学 2010(08)
    • [22].基于AOP的数据填充在教学诊改系统中的应用[J]. 现代电子技术 2018(14)
    • [23].基于MVC模式的AOP访问控制技术研究[J]. 南京工程学院学报(自然科学版) 2010(01)
    • [24].基于Decorator AOP框架的一卡通管理系统[J]. 计算机系统应用 2009(08)
    • [25].基于AOP测试技术研究进展[J]. 青春岁月 2013(23)
    • [26].基于面向方面MDA的软件开发方法[J]. 计算机工程与设计 2009(17)
    • [27].一种AOP方面的代数语义[J]. 计算机科学与探索 2011(10)
    • [28].基于AOP和IoC的Ajax Web框架的实现[J]. 重庆工学院学报(自然科学版) 2008(12)
    • [29].面向任务协同程序设计的研究[J]. 计算机与数字工程 2010(04)
    • [30].基于面向方面的校园一卡通系统的设计[J]. 河北软件职业技术学院学报 2010(02)

    标签:;  ;  ;  

    面向方面编程在单元测试中的研究与应用
    下载Doc文档

    猜你喜欢