节点文献

基于动态切片和关联规则的软件故障诊断系统的设计与实现

Design And Implementation of Software Fault Diagnosis System Based on Dynamic Slicing And Association Rules

【作者】 陈娣

【导师】 班鹏新;

【作者基本信息】 华中科技大学 , 计算机技术, 2016, 硕士

【摘要】 由于软件的复杂性越来越高,软件发生故障的可能性也就越来越大。因此,软件发生故障后,如何快速有效地定位故障是一个很重要的研究问题。针对传统的故障定位方法的定位效率低的问题,设计并实现了一个软件故障诊断系统,可以对包含单故障的Java程序进行故障诊断。该系统基于动态切片和关联规则,设计了动态切片算法来缩小故障检查的规模,设计了关联规则算法来对被检查语句进行排序,从而提高故障定位的效率。该系统主要包括数据采集、动态切片生成、动态切片后处理、关联规则分析以及故障报告生成等模块。数据采集模块首先对源程序进行规范化处理,然后利用Java编译优化框架Soot获取程序的定义使用分析结果和静态依赖分析结果。动态切片生成模块首先根据测试用例集执行源程序,同时利用Java调试接口JDI获取执行轨迹和执行结果,然后根据定义使用分析结果和静态依赖分析结果,采用动态切片算法计算执行轨迹中所有执行实例的动态切片,最后根据切片准则生成动态切片结果集。动态切片后处理模块首先统计动态切片结果集的覆盖信息,然后结合执行结果构造覆盖向量矩阵。关联规则分析模块首先采用关联规则算法计算语句的可疑度,然后结合覆盖向量矩阵构造可疑度矩阵。故障报告生成模块负责生成按语句可疑度降序排列的故障报告,完成软件故障诊断的工作流程。在测试数据集Siemens Suite上进行了实验,并与传统的软件故障定位方法Tarantula、Jaccard以及Ochiai进行了对比分析。实验结果表明,基于动态切片和关联规则的方法提高了软件故障定位的效率。

【Abstract】 With the increasing complexity of software, the possibility of the occurrence of software failure is increasing. Therefore, how to locate the fault quickly and effectively is a significant research question after the occurrence of software failure.Considering the low efficiency of traditional fault location method, a software fault diagnosis system is designed and implemented, which can diagnose the fault of Java program that contains single fault. Based on dynamic slicing and association rules, a dynamic slicing algorithm is designed to reduce the program scale which need check, and an association rules algorithm is designed to sort the statement which need check, so as to improve the efficiency of the fault location. The data acquisition, dynamic slicing generation, dynamic slicing post-processing, association rules analysis and fault report generation modules are consisted by the system.In data acquisition module, the source program is normalized firstly, and then analysis results of definition and using and static dependency are obtained with Java compiler optimization framework Soot. In dynamic slicing module, source program is executed with test cases firstly, and then the execution path and the execution result are obtained with Java debug interface JDI at the same time, and then dynamic slicing algorithm is adopted to generate dynamic slicing of all instances in execution path according to the analysis results of definition and using and static dependency, finally dynamic slicing result set are generated according to the slicing criterion. In dynamic slicing post-processing module, firstly the covering information of dynamic slicing result set is counted, and then coverage vector matrix is construct combined with the execution results. In association rule analysis module, the association rule algorithm is adopted to calculate the suspicious degree of the statements in the program firstly, and then suspicious degree matrix is constructed combined with the coverage vector matrix. In fault report generation module, the fault report is generated, which contains program statements with suspicious degree in descending order, and the work process of software fault diagnosis is finished.Experiments were carried out on the test data set Siemens Suite, and compared with the traditional software fault location method such as Tarantula, Jaccard and Ochiai. The experimental results show that the method based on dynamic slicing and association rules can improve the efficiency of fault location.

  • 【分类号】TP311.53
  • 【下载频次】112
节点文献中: 

本文链接的文献网络图示:

本文的引文网络