BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests

BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests
复制标题

BugMaps-Granger:使用 Granger 因果关系测试可视化和预测错误的工具

DOI:
--
复制
发表时间:
2014
影响因子:
--
通讯作者:
R. Bigonha
R. Bigonha
中科院分区:
--
文献类型:
--
作者:
César Couto;M. T. Valente;Pedro Pires;André C. Hora;N. Anquetil;R. Bigonha

文献摘要

被引文献

相似文献

背景尽管用于探索软件系统中的错误的错误分析工具越来越多,但是没有工具支持内部质量度量和错误之间的因果关系的调查。在本文中,我们提出了一个扩展的BugMaps工具称为BugMaps-Granger,允许分析的源代码属性,更有可能导致错误。为此,我们依靠格兰杰因果关系测试来评估是否可以使用给定时间序列的源代码度量的过去更改来预测时间序列缺陷的更改。我们的工具提取源代码版本的版本控制平台,计算源代码指标和缺陷的时间序列,计算格兰杰测试结果,并提供了交互式的可视化的因果分析的bugs.ResultsWe提供了一个例子,使用的BugMaps-格兰杰涉及的数据从春分框架和Eclipse JDT核心系统在三年内收集。对于这些系统,该工具能够识别出有更多错误的模块,错误的平均生命周期和复杂性,以及更可能导致错误的源代码属性。结论有了该工具提供的结果,维护人员可以执行至少两个主要的软件质量保证活动:(a)重构Granger导致bug的源代码属性;(B)提高bug较多的类的单元测试覆盖率。
BackgroundDespite the increasing number of bug analysis tools for exploring bugs in software systems, there are no tools supporting the investigation of causality relationships between internal quality metrics and bugs. In this paper, we propose an extension of the BugMaps tool called BugMaps-Granger that allows the analysis of source code properties that are more likely to cause bugs. For this purpose, we relied on the Granger Causality Test to evaluate whether past changes to a given time series of source code metrics can be used to forecast changes in a time series of defects. Our tool extracts source code versions from version control platforms, calculates source code metrics and defects time series, computes Granger Test results, and provides interactive visualizations for causal analysis of bugs.ResultsWe provide an example of use of BugMaps-Granger involving data from the Equinox Framework and Eclipse JDT Core systems collected during three years. For these systems, the tool was able to identify the modules with more bugs, the average lifetime and complexity of the bugs, and the source code properties that are more likely to cause bugs.ConclusionsWith the results provided by the tool in hand, a maintainer can perform at least two main software quality assurance activities: (a) refactoring the source code properties that Granger-caused bugs and (b) improving unit tests coverage in classes with more bugs.