Validation of Scientific Programs
- 1 June 1982
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Computing Surveys
- Vol. 14 (2) , 193-227
- https://doi.org/10.1145/356876.356880
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.Keywords
This publication has 23 references indexed in Scilit:
- Symbolic Evaluation and the Analysis of ProgramsIEEE Transactions on Software Engineering, 1979
- Applications of Symbolic Execution to Program TestingComputer, 1978
- Hints on Test Data Selection: Help for the Practicing ProgrammerComputer, 1978
- Tutorial: Static Analysis and Dynamic Testing of Computer SoftwareComputer, 1978
- Testing Programs with the Aid of a CompilerIEEE Transactions on Software Engineering, 1977
- A Requirements Engineering Methodology for Real-Time Processing RequirementsIEEE Transactions on Software Engineering, 1977
- On program analysisInformation Processing Letters, 1976
- Data Flow Analysis in Software ReliabilityACM Computing Surveys, 1976
- A System to Generate Test Data and Symbolically Execute ProgramsIEEE Transactions on Software Engineering, 1976
- SELECT---a formal system for testing and debugging programs by symbolic executionPublished by Association for Computing Machinery (ACM) ,1975