当前位置:问答库>论文摘要

题目:基于错误模式的Java多线程测试方法研究及辅助工具实现

关键词:并发程序;同步序列;并发错误;并发错误模式;并发错误隐患;动态分析

  摘要

Java 并发程序的应用越来越广泛,特别在一些分布式系统的客户/服务器模式中得到了大量的应用。因此,对并发程序的测试也就愈发重要。Java 并发程序中由于对并发机制的使用不当会导致并发错误的出现。常见的并发错误的表现形式有死锁、活锁、竞争资源等。相比顺序程序,并发程序由于其运行不确定性,很难对并发错误发生的具体原因和发生地点定位。并发程序的每次执行都对应一个同步序列。根据并发错误发生时的不同同步序列特征,可以将并发错误发生的原因分类。对错误同步序列特征的描述形成了并发错误模式。本文研究了Java 多线程程序运行时常见的几种并发错误模式和并发错误隐患,并在此基础上给出了一种基于同步序列分析的测试方法。该方法通过收集同步序列、分析同步序列、报告并发错误及隐患、扰动时序等过程发现程序中“隐藏”的并发错误和并发错误隐患。基于这种方法,本文实现了一个Java 多线程程序辅助测试工具。工具集成在QESat/Java 框架下,结合QESat/Java 的结构和工作流程,本文在第四章介绍了工具的总体结构和测试流程。工具采用基于源代码的插装方法收集线程信息和共享对象信息,并在程序运行后合并两类信息。工具针对不同的并发错误模式,给出了不同的分析算法,这些算法通过并发错误分析器实现。发现并发错误隐患后,工具还提供扰动时序选择,显现造成并发错误的同步序列。文章最后给出工具的交互界面和具体实例分析并给出与其他相关工具比较的评测结果。