Issue No. 01 - Jan. (1986 vol. 12)
If a program is developed from a specification in a mathematically rigorous manner, work done in the development can be utilized in the testing of the program. We can apply the better understanding afforded by these methods to provide a more thorough check on the correct operation of the program under test. This should lead to earlier detection of faults (making it easier to determine their causes), more useful debugging information, and a greater confidence in the correctness of the final product. Overall, a more systematic approach should expedite the task of the program tester, and improve software reliability. The testing techniques described in this paper apply to the testing of abstract data types (modules, packages). The techniques utilize information generated during refinement of a data type, such as the data type invariant and the relationship between the specification and implementation states; this information is used to specify parts of the code to be written for testing. The techniques are illustrated by application to the implementation of a symbol table as an ordered list and as a height balanced tree.
Testing, Abstracts, Computational modeling, Debugging, Software, Software reliability, Vegetation, specification language-Z, Abstract data types, data type invariant, modules, module testing, packages, pre- and postconditions, retrieval function, software reliability
"Specification directed module testing", IEEE Transactions on Software Engineering, vol. 12, no. , pp. 124-133, Jan. 1986, doi:10.1109/TSE.1986.6312926