Validation of Scientific Programs

Abstract
This paper descmbes a comprehensive approach to the validation of computer programs. It concentrates on the use of informal validation methods, such as testing and static analysis, as opposed to more formal methods such as proofs of correctness. Although many of the methods are general and can be apphed to any software system, the emphasis ~s on the validation of individual scientific subroutines Most of the examples are m FORTRAN and some of the described techniques are closely related to features of the FORTRAN programming language. The paper describes methods for detecting programming errors (i.e., errors that arise due to mistakes in the software development process) rather than mathematmal or number representation errors. No material is included, for example, on precision errors due to cancellatmn, truncation, or round-off. One of the more important concepts in contemporary validation methodology is that specifications and design mformatmn should be used to validate programs. In order to indicate how this information is used, the paper contains a detailed discussion of specifications and design techniques for scientific programs. Both the validation of specifications and deslgu, as well as their use in generating test data, are described. The inclusion of detailed information on specification and design techniques for scmntific programs was necessary due to the lack of commonly agreed-upon standards for these parts of the software development process It is expected that many of the techmques described in the paper will be familiar to some of the readers. The paper will be useful to these readers in conf~rming that thenc knowledge of testing is consistent with research m th~s area For less knowledgeable readers, it can serve both as an introductmn to testing technology and as a set of guidelines for an integrated approach to validation.

This publication has 23 references indexed in Scilit: