Analysis and testing of multicore software is one of the hot topics in software engineering. After a thorogh study of current dynamic analyses on multicore softare, we found that they have three disadvantages:(1) current dynamic instrumentation techniques are not efficient enough to serve the more demanding multicore dynamic analysis;(2)current dynamic analyses don't have a uniform description to concurrency bugs in multicore software, and this causes some difficulties in the understanding of concurrency bugs; (3)there are no guided schedule search algorithms specially designed for dynamic analysis of multicore software. Those three shortcommings make existing dynamic analyses from applying to large-scale multicore software. To change this situation, we plan to design a novel execution-feedback based dynamic analysis for multicore software. Our research is based on the fact that valuable feature information is hidden in the runtime data of multicore software. We proposed a three step research plan to fulfil our research goal:(1) first, we build a highly efficient execution feedback mechanism, which will serve as the basic execution engine for runtime data generation; (2)then, we will design a method to extract bug features from the runtime data set; (3)we will design a feature directed search algorithm, to help search for new data and update the runtime data set. The results of the three parts of research will build a feedback system, which will provide strong support for the dynamic analysis. The successful conduction of our research will provide us an efficient and precise dynamic analysis for multicore software. In the meantime, the data set built and maintained in the analysis system can give people a better understanding of the behavior of concurrency bugs. The analysis can serve the purpose of systematic testing, and reduce the development cycle of multicore software.
多核软件分析与测试是软件工程研究领域的热点问题。目前,该领域研究存在一系列挑战:动态分析方法所依赖的动态插桩方法无法适应多核软件动态分析的要求;缺乏并发bug的统一特征描述,影响并发bug的理解;缺乏对多核软件执行空间的高效搜索算法等。 针对以上挑战,本课题基于多核软件运行时数据及其中所蕴藏的能够精确分析软件行为的特征数据,研究:(1)如何建立高效的执行反馈机制,作为运行时数据生成的基础引擎;(2)如何在多核软件运行时数据集中有效提取特征数据;(3)如何设计基于特征的软件执行空间搜索算法,驱动反馈体系不断更新完善运行时数据集。上述三方面研究的结果将形成一个完整的反馈体系,为多核软件动态分析提供有力支撑。 课题的成功实施,将形成一套高效准确的多核软件动态分析方法。同时形成的运行时数据集将能够帮助具体分析多核软件中异常并发行为,有利于提高多核软件系统测试的效果,缩短多核软件的研发周期。
本课题的研究主题是基于执行反馈的并发软件动态测试方法。研究的主要内容包括:(1)高效的代码插桩机制,帮助快速准确地搜集程序的运行时数据;(2)运行时数据的汇总、分析,与特征提取;(3)基于运行时数据特征,设计搜索算法,进行高效的测试用例生成与bug检测。通过课题的研究,已经达成的主要的研究目标包括:(1)形成了基于LLVM的静态插桩与基于动态二进制插桩工具的动态插桩相结合的高效插桩方法,集成在测试工具PEDAL中;(2)对运行时数据的分析与特征提取已经去的较好的结果,应用于并发软件、移动应用等的分析与测试,形成了较为精确的模型;(3)基于运行时数据引导的启发式搜索算法的研究也取得预期的进展。. 课题的研究着重解决了并发软件动态分析,特别是Bug重现,中核心问题,并以较高的效率实现了相关工具,能够应用于实际的大规模软件。同时,对于三方面主要研究内容的深入研究过程,也逐渐拓宽了研究的内涵,研究内容拓展到方法在开发者社交网络、移动应用分析等热门软件工程研究领域的应用方向上,对未来的研究能够起到极大的推进作用。
{{i.achievement_title}}
数据更新时间:2023-05-31
玉米叶向值的全基因组关联分析
涡度相关技术及其在陆地生态系统通量研究中的应用
正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究
硬件木马:关键问题研究进展及新动向
基于SSVEP 直接脑控机器人方向和速度研究
基于知识的可执行软件定义方法研究
基于平行执行的网络化软件动态建模方法和关键技术研究
多核实时软件分析理论与技术研究
基于监控与反馈的软件重构机会检测方法研究