论文部分内容阅读
面向方面编程范式通过引入方面实现横切关注点的分离和封装,很好的解决了代码纠结和代码分散等面向对象程序所面临的难题,使系统易于实现和扩展,同时提升了软件的模块性和可重用性。然而,AOP方法主要被应用于软件开发生命周期中的问题分析、软件设计与代码实现阶段,面向方面测试技术和方法的研究相对较少。另外,AOP的实现引入了新的语言构造,可能给软件带来新的类型的缺陷,给测试带来极大的挑战。随着无线射频技术以及计算能力的提升,Cyber-Physical网络环境成为继物联网之后又一热门研究领域。作为实时系统的重要应用场所,CPS集通信、计算和控制于一体,注重物理资源与计算资源的紧密结合与协调。其应用范围也相当广泛,小到机器人系统,大到国家电网、智能交通系统等。当前面临的挑战主要包括系统设计、开发和集成等理论的缺乏,系统的实时性、安全性及可靠性等非功能特性也是亟待解决的重要内容,特别是软件的设计与开发在质量保证上面临着巨大的挑战。基于上述需求,本文通过分析Cyber-Physical网络环境下实时系统的特点,综合分析基于错误模型、基于状态模型和基于方面流图等常用的面向方面程序测试方法的优缺点,提出基于优先级的的面向方面状态增量测试方法。在基于模型的方面测试框架指导下,首先构建符合正确程序的面向方面的有限状态机模型,这个正确的程序能够通过所有的面向方面状态模型的测试;然后由系统状态模型产生状态转换树,从而得到测试套件;最后通过识别一个方面改变其对应基类的程度来确定对该方面的测试优先次序,分别采用具有优先级和无优先级的测试套件进行测试,得出测试结果并进行合理性分析。本课题的研究第一次详细提出基于优先级的面向方面状态增量测试方法,文章最后以车辆自适应巡航系统实例加以说明和验证。结果表明,该方法能高效地检测出面向方面程序中可能存在的方面交互的错误,可以加快测试进度,提高面向方面程序的正确性和健壮性。