论文部分内容阅读
多年以来,面向对象编程(Object-Oriented Programming,OOP)作为软件开发领域的主要编程范式,大大提高了软件代码的模块性、可重用性,降低了软件的复杂度以及软件的维护成本。然而随着面向对象编程的不断发展,它所带来的代码分散(code scattering)和代码纠缠(code tangling)问题也日益严重。面向方面编程(Aspect-Oriented Programming,AOP)是在面向对象编程基础上提出的一种较新的编程范式。它可以很好地解决代码分散和代码纠缠问题,使系统易于设计和扩展。面向方面软件开发(Aspect-Oriented Software Development, AOSD)将核心关注点和横切关注点分离,核心关注点仍然用面向对象的方法解决,横切关注点则用面向方面的方法解决,提高了代码开发的质量和效率以及系统的模块化、可重用性和扩展性。AOSD是未来软件发展方向之一。然而,AOP封装横切关注点的特殊结构与面向对象程序有着很大的不同,这就为测试AOP程序带来了极大的困难。同时,许多面向对象程序的测试工具已不再适用于面向方面程序,随着AOP的广泛应用和实践的不断深入,软件工程实践者们迫切需要一种与AOP技术对应的程序测试工具,以支持面向方面程序的集成测试和回归测试。本文基于上述需求,通过分析研究AspectJ程序的特殊构造、编织规律和字节码特征,开发出了用于测试方面之间交互的工具。方面之间交互测试作为面向方面集成测试和回归测试的核心,集中体现了面向方面编程的特征,对面向方面的程序重构、测试以及面向方面软件开发的发展有着重要的意义。现在国内外对面向方面测试领域的研究还比较少,而且研究也主要集中在对单元测试上,对方面之间交互的测试的研究还没有。本文基于面向方面的语言特性、方面交互的错误模型和AspectJ字节码的分析的基础上,开发出了测试面向方面交互的工具Aspat。本课题的研究第一次详细提出方面交互的概念及开发Aspat工具,并针对面向方面程序的方面交互错误模型的特点及面向方面程序中的特殊语言元素交互提出了具体的解决方案。测试人员可以通过利用Aspat提供的接口编写测试用例实现自动化的集成测试和回归测试,检测出面向方面程序中可能有的方面交互的错误,很好提高面向方面程序的正确性和健壮性。同时,它在有效性、适用性和性能等方面都有着不错的表现。