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

来源 :华东师范大学 | 被引量 : 0次 | 上传用户:haru
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
单元测试是为了发现软件设计的最小单位(程序模块)中存在的错误而进行的测试工作。作为软件项目中最早介入的测试工作,单元测试是集成测试和系统测试的基础,单元测试的成功与否直接关系到软件的质量。在其它领域,单元测试也一样重要并受到关注:测试优先的开发方法(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技术在单元测试中的前景。
其他文献
卷取温度对带钢的金相组织影响很大,是决定成品带钢加工性能、力学性能、物理性能的重要工艺参数之一。层流冷却过程具有强非线性、不确定性、时变的特点,采用传统的基于传热机
目前对包括树木在内的计算机虚拟植物形态绘制的方法中主要有分形和粒子系统等,与分形比较其他方法对树木的绘制在外界影响下动态变换效果不够理想,真实感比较差。 本文根据
Ad hoc网络是由一组通过无线链路连接的移动路由终端组成的自治系统,移动终端具有路由功能,可以通过无线连接构成任意的网络拓扑,这种网络可以独立工作,也可以与Internet或更大规
继电控制系统是最早采用的控制系统之一,其控制动作可靠、控制装置比较简单,在各种场合中得到了广泛应用。在继电控制系统的设计、运行和维护等各阶段,都需要对其进行功能分
随着Internet技术的迅速发展,网络规模的逐渐扩大,网络资源的日益丰富,使得网络用户之间的资源共享和信息交流越来越普遍,网络文件共享系统成为网络资源方便共享的重要途径。为了
随着电信企业业务运营支撑系统的建设逐渐完善,电信企业的经营分析系统建设已经成为近年来各电信企业的信息化建设重点。基于数据仓库的经营分析系统能够为电信企业的分析与决
随着WebServices技术的逐渐普及,企业或组织有必要更多的了解其特征和性能。为了保持WebServices的开放性以及支持多客户类型,安全性问题应最先考虑。用户需要去了解怎样保护We
移动互联网是下一代网络发展的趋势之一,移动IPv6 是移动互联网的基石。 目前,移动设备越来越多,这些设备也迫切地希望能在任何地点、以任意的接入方式(有线或无线)、用固定
图像检索涉及到的研究范围比较广。本文仅对图像检索中所涉及到的图像分割、图像的自动语义标注以及标注图像的语义分类等几个关键性问题,进行了深入和系统的研究,提出了一些新
分布式查询优化的研究领域是分布式数据库中的研究热点。由于集中式数据库和分布式数据库的区别在于,分布式数据库需要站点间的数据传输。所以大多数研究分布式查询优化以减少