As software systems have grown in scale and complexity the test suites built alongside those systems have also become increasingly complex. Understanding key aspects of test suites, such as their coverage of production code, is important when maintaining or reengineering systems. This work investigates the distribution of unit tests in Open Source Software (OSS) systems through the visualization of data obtained from both dynamic and static analysis. Our long-term aim is to support developers in their understanding of test distribution and the relationship of tests to production code. We first obtain dynamic coupling information from five selected OSS systems and we then map the test and production code results. The mapping is shown in graphs that depict both the dependencies between classes and static test information. We analyze these graphs using Centrality metrics derived from graph theory and SNA. Our findings suggest that, for these five systems at least, unit test and dynamic coupling information 'do not match', in that unit tests do not appear to be distributed in line with the systems' dynamic coupling. We contend that, by mapping dynamic coupling data onto unit test information, and through the use of software metrics and visualization, we can locate central system classes and identify to which classes unit testing effort has (or has not) been dedicated.
翻译:随着软件系统的规模和复杂性的增长,与这些系统一起建造的测试套件也变得日益复杂。了解测试套件的关键方面,例如生产代码的覆盖范围,在维护或重新设计系统时非常重要。这项工作调查了开放源码软件系统单元测试的分布,通过对动态和静态分析获得的数据进行可视化。我们的长期目标是支持开发者了解测试分布以及测试与生产代码之间的关系。我们首先从五个选定的开放源码软件系统中获得动态的连接信息,然后绘制测试和生产代码结果图。绘图在图表中显示,说明各类别和静态测试信息之间的依赖关系。我们用图表理论和SNA得出的中央度指标分析这些图表。我们的研究结果表明,至少对这五个系统来说,单元测试和动态组合信息“不匹配”的分布似乎与系统动态组合不相符。我们争论的是,通过将动态组合数据绘制到单元测试信息上,并通过使用软件测量和可视化数据来显示。我们可以用这些图表分析这些图表来分析这些图表。我们发现,至少对这五个系统来说,单元测试和动态组合信息“不匹配 ”,在这个单元测试中,我们发现,通过对哪个单元进行了专门测试。