Calculation coverage testing in scientific applications

Calculation coverage testing in scientific applications
复制标题

DOI:
10.1145/2771783.2771807
复制
发表时间:
2015-07
期刊:
Proceedings of the 2015 International Symposium on Software Testing and Analysis
影响因子:
--
通讯作者:
Yoshiki Sato;Shumpei Hozumi;S. Chiba
Yoshiki Sato;Shumpei Hozumi;S. Chiba
中科院分区:
其他
文献类型:
--
作者:
Yoshiki Sato;Shumpei Hozumi;S. Chiba

文献摘要

相似文献

科学应用的典型实现包括大量的迭代计算。为了优化性能,这些计算通常被分区、分组和重新排序以供执行。由于这种重构在开发过程中被反复执行,因此它是bug的主要来源之一,因此工具支持对于调试是必要的。本研究讨论了这个问题,并提出了通过测试框架的工具支持。这个测试框架可以帮助开发人员执行我们称之为计算覆盖测试的测试。它调查分组计算是否涵盖原始(并且通常是天真地实现的)程序执行的所有计算。它还调查他们的执行顺序是否正确。为了证明这一点,我们还介绍了HPCUnit,我们的Java原型测试框架,然后报告了一个实证研究,将其应用到Java Grande Forum Benchmark Suite。
A typical implementation of scientific applications includes a large number of iterative calculations. For performance optimization, these calculations are often partitioned, grouped, and reordered for execution. Since this refactoring is repeatedly performed during development, it is one of the major source of bugs and thus tool support is necessary for debugging. This study discusses this problem and proposes tool support through a testing framework. This testing framework can help developers perform the tests we call calculation coverage testing. It investigates whether the grouped calculations cover all the calculations performed by the original (and often naively implemented) program. It also investigates whether their execution order is correct. To demonstrate this idea, we also presents HPCUnit, our prototype testing framework for Java, and then reports an empirical study applying it to the Java Grande Forum Benchmark Suite.