An evaluation of the effectiveness of symbolic testing
- 1 July 1978
- journal article
- Published by Wiley in Software: Practice and Experience
- Vol. 8 (4) , 381-397
- https://doi.org/10.1002/spe.4380080402
Abstract
The effectiveness in discovering errors of symbolic evaluation and of testing sad static program analysis are studied. The three techniques are applied to a diverse collection of programs and the results compared. Symbolic evaluation is used to carry out symbolic testing and to generate symbolic systems of path predicates. The use of the predicates for automated test data selection is analysed. Several conventional types of program testing strategies are evaluated. The strategies include branch testing, structured testing and testing on input values having special properties. The static source analysis techniques that are studied include anomaly analysis and interface analysis.Examples are included which describe typical situations in which one technique is reliable but another unreliable. The effectiveness of symbolic testing is compared with testing on actual data and with the use of an integrated methodology that includes both testing and static source analysis. Situations in which symbolic testing is difficult to apply or not effective are discussed. Different ways in which symbolic evaluation can be used for generating test data are described. Those ways for which it is most effective are isolated. The paper concludes with a discussion of the most effective uses to which symbolic evaluation can he put in an integrated system which contains all three of the validation techniques that are studied.Keywords
This publication has 18 references indexed in Scilit:
- Dave—a validation error detection and documentation system for fortran programsSoftware: Practice and Experience, 1976
- Observations of Fallibility in Applications of Modern Programming MethodologiesIEEE Transactions on Software Engineering, 1976
- Reliability of the Path Analysis Testing StrategyIEEE Transactions on Software Engineering, 1976
- A System to Generate Test Data and Symbolically Execute ProgramsIEEE Transactions on Software Engineering, 1976
- Symbolic execution and program testingCommunications of the ACM, 1976
- An Approach to Program TestingACM Computing Surveys, 1975
- Toward a theory of test data selectionIEEE Transactions on Software Engineering, 1975
- An experiment in structured programmingBIT Numerical Mathematics, 1972
- Programming by action clustersBIT Numerical Mathematics, 1969
- PL360, a Programming Language for the 360 ComputersJournal of the ACM, 1968