User Tools

Site Tools


publication

Publication details

Abstract

Unit testing is an established practice in professional software development. However, in high-performance computing (HPC) with its scientific applications, it is not widely applied. Besides general problems regarding testing of scientific software, for many HPC applications the effort of creating small test cases with a consistent set of test data is high. We have created a tool called FortranTestGenerator to reduce the effort of creating unit tests for subroutines of an existing Fortran application. It is based on Capture & Replay (C&R), that is, it extracts data while running the original application and uses the extracted data as test input data. The tool automatically generates code for capturing the input data and a basic test driver which can be extended by the developer to a meaningful unit test. A static source code analysis is conducted, to reduce the number of captured variables. Code is generated based on flexibly customizable templates. Thus, both the capturing process and the unit tests can easily be integrated into an existing software ecosystem.

BibTeX

@misc{FAAFUTGFLH17,
	author	 = {Christian Hovy and Julian Kunkel},
	title	 = {{FortranTestGenerator: Automatic and Flexible Unit Test Generation for Legacy HPC Code}},
	year	 = {2017},
	month	 = {06},
	location	 = {Frankfurt},
	activity	 = {ISC High Performance 2017},
	abstract	 = {Unit testing is an established practice in professional software development.
      However, in high-performance computing (HPC) with its scientific applications, it is not widely applied.
      Besides general problems regarding testing of scientific software, for many HPC applications the effort of creating small test cases with a consistent set of test data is high.
      We have created a tool called FortranTestGenerator to reduce the effort of creating unit tests for subroutines of an existing Fortran application.
      It is based on Capture \& Replay (C\&R), that is, it extracts data while running the original application and uses the extracted data as test input data.
      The tool automatically generates code for capturing the input data and a basic test driver which can be extended by the developer to a meaningful unit test.
      A static source code analysis is conducted, to reduce the number of captured variables.
      Code is generated based on flexibly customizable templates.
      Thus, both the capturing process and the unit tests can easily be integrated into an existing software ecosystem.},
}

publication.txt · Last modified: 2019-01-23 10:26 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki