Partition Analysis: A Method Combining Testing and Verification
- 1 December 1985
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. SE-11 (12) , 1477-1490
- https://doi.org/10.1109/tse.1985.231892
Abstract
The partition analysis method compares a procedure's implementation to its specification, both to verify consistency between the two and to derive test data. Unlike most verification methods, partition analysis is applicable to a number of different types of specification languages, including both procedural and nonprocedural languages. It is thus applicable to high-level descriptions as well as to low-level designs. Partition analysis also improves upon existing testing criteria. These criteria usually consider only the implementation, but partition analysis selects test data that exercise both a procedure's intended behavior (as described in the specifications) and the structure of its implementation. To accomplish these goals, partition analysis divides or partitions a procedure's domain into subdomains in which all elements of each subdomain are treated uniformly by the specification and processed uniformly by the implementation. This partition divides the procedure domain into more manageable units. Information related to each subdomain is used to guide in the selection of test data and to verify consistency between the specification and the implementation. Moreover, the testing and verification processes are designed to enhance each other. Initial experimentation has shown that through the integration of testing and verification, as well as through the use of information derived from both the implementation and the specification, the partition analysis method is effective for evaluating program reliability. This paper describes the partition analysis method and reports the results obtained from an evaluation of its effectiveness.Keywords
This publication has 27 references indexed in Scilit:
- Testing Formal Specifications to Detect Design ErrorsIEEE Transactions on Software Engineering, 1985
- Functional Program TestingIEEE Transactions on Software Engineering, 1980
- Test data as an aid in proving program correctnessCommunications of the ACM, 1978
- Algebraic program testingActa Informatica, 1978
- Symbolic Testing and the DISSECT Symbolic Evaluation SystemIEEE Transactions on Software Engineering, 1977
- On the Automated Generation of Program Test DataIEEE Transactions on Software Engineering, 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 view of program verificationACM SIGPLAN Notices, 1975
- SELECT---a formal system for testing and debugging programs by symbolic executionPublished by Association for Computing Machinery (ACM) ,1975