Testing Data Abstractions through Their Implementations.

Abstract
A data abstraction can be specified by a syntactic (domainrange) description of its objects and operations on them, plus a set of axioms describing the behavior of the operations. In a programming language that supports abstraction, abstract objects are given a representation in terms of built-in data types (or other, previously defined abstractions), and the abstract operations are defined as procedures. The implemented abstraction has a meaning, acquired from the definition of the programming language; the axioms also specify an independent meaning. The crucial question is then whether or not either meaning is 'correct,' that is, whether it corresponds to the desired abstraction that the programmer has in mind. Using a finite collection of tests, the axiom meaning and the code meaning can be compared for consistency. A compiler-based system, DAISTS, is described for automating this process.

This publication has 0 references indexed in Scilit: