面向方面程序的方面交互测试工具的设计与实现

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:iris_1204
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
多年以来,面向对象编程(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提供的接口编写测试用例实现自动化的集成测试和回归测试,检测出面向方面程序中可能有的方面交互的错误,很好提高面向方面程序的正确性和健壮性。同时,它在有效性、适用性和性能等方面都有着不错的表现。
其他文献
当今社会,越来越多的企业认识到,只有靠充分利用、挖掘其现有数据,才能实现企业效益最大化。大多数企业并不缺乏数据,而是受阻于数据冗余和不一致。传统的数据库应用系统是面向业务操作设计的,简化了具体操作人员的劳动强度,而企业的中高层领导却没有相应的系统。企业需要新的技术来弥补原有数据系统的不足,需要把已经广泛收集到的数据集成到数据仓库中,以便从业务数据中提取有用的信息,帮助他们在业务管理和发展上做出及时
随着Web服务数量的急剧增多,用户面临大量的服务选择。因此如何从众多功能相似的Web服务中高效地发现满足条件的服务,如何判定服务组合的正确性等问题,已成为业界研究的热点
无线传感器网络由部署在监测区域内的大量传感器节点组成。传感器节点一般依靠电池供电,其电能有限,并且传感器节点一旦配置后,由于其工作环境等因素的限制就很难对电池进行
随着Web的快速发展,丰富的Web资源构成了一个巨大的全球信息仓库。如何从Web网站中获得想要的信息成为亟待解决的问题,因此Web信息抽取成为必要,Web信息抽取技术也成为当今的一
研究表明,网络已成为现实世界中许多系统的存在形式,而大多数现实网络中都普遍具有一个共同特征,即社区结构。针对在线社会网络的众多研究方向中,有一个非常有商业价值的研究
说话人识别技术被认为是最自然的生物认证技术,它是一项根据语音中反映的说话人生理和行为特征的语音参数,自动识别说话人身份的技术。传统说话人识别系统当使用者在平静状态
等高线地图是用二维平面表示三维地形的重要工具,是地图学中最常用的地理要素。以等高线为代表的大量具备三维属性的二维数据转换为的三维直观图像已成为国内外学者的研究热点
对等网(P2P)技术现在已经成为了人们研究的一个热门技术,BT、PPLive等P2P软件的使用日益频繁,新的应用也随着研究的深入而不断出现。本文就是在这样的背景下提出的,主要研究
数据挖掘(Data Mining)是人工智能与数据库领域当前研究的一个热点,引起了大量学者与专家的关注。数据挖掘有许多功能,比如关联分析、聚类分析、例外分析等,其中例外分析也称
在软件测试基础上发展起来的协议测试是协议开发过程中的重要环节。协议测试中的协议一致性测试是最重要的协议测试。通过对协议实现(待测实体)的协议一致性测试,我们可以找