DocumentCode :
235733
Title :
Towards Test Driven Development for Computational Science with pFUnit
Author :
Rilee, Michael ; Clune, Thomas
fYear :
2014
fDate :
21-21 Nov. 2014
Firstpage :
20
Lastpage :
27
Abstract :
Developers working in Computational Science & Engineering (CSE)/High Performance Computing (HPC) must contend with constant change due to advances in computing technology and science. Test Driven Development (TDD) is a methodology that mitigates software development risks due to change at the cost of adding comprehensive and continuous testing to the development process. Testing frameworks tailored for CSE/HPC, like pFUnit, can lower the barriers to such testing, yet CSE software faces unique constraints foreign to the broader software engineering community. Effective testing of numerical software requires a comprehensive suite of oracles, i.e., use cases with known answers, as well as robust estimates for the unavoidable numerical errors associated with implementation with finite-precision arithmetic. At first glance these concerns often seem exceedingly challenging or even insurmountable for real-world scientific applications. However, we argue that this common perception is incorrect and driven by (1) a conflation between model validation and software verification and (2) the general tendency in the scientific community to develop relatively coarse-grained, large procedures that compound numerous algorithmic steps.We believe TDD can be applied routinely to numerical software if developers pursue fine-grained implementations that permit testing, neatly side-stepping concerns about needing nontrivial oracles as well as the accumulation of errors. We present an example of a successful, complex legacy CSE/HPC code whose development process shares some aspects with TDD, which we contrast with current and potential capabilities. A mix of our proposed methodology and framework support should enable everyday use of TDD by CSE-expert developers.
Keywords :
parallel processing; program testing; program verification; CSE software; TDD; complex legacy CSE-HPC code; computational science and engineering; finite-precision arithmetic; high performance computing; model validation; numerical errors; numerical software effective testing; pFUnit; scientific community; software development risk mitigation; software verification; test driven development; Approximation methods; Communities; Magnetic domains; Numerical models; Scientific computing; Software; Testing;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering for High Performance Computing in Computational Science and Engineering (SE-HPCCSE), 2014 Second International Workshop on
Conference_Location :
New Orleans, LA
Type :
conf
DOI :
10.1109/SE-HPCCSE.2014.5
Filename :
7017328
Link To Document :
بازگشت