Object test coverage using finite state machines
Abstract
Objects have been described as having identity, state and behaviour, but there are differing views as to what are an object's states. For a programmer using an object-oriented programming language, the state is the current values of all the attributes, hidden and accessible. In most object-oriented design methods, an object's state is an abstraction of this: design states are determined by the observable behaviour of the object. The difference is significant, for example the two views behave differently under inheritance, and this can make it difficult to validate an implementation against its design specification. We describe a technique for resolving these different views of state. The representation states of an object can be partitioned into abstract states by predicates on the attributes. We relate this to an operational semantics for the object-oriented programming language Sather. A direct implication is that the behaviour of objects can be described by finite state machines. Since there are testing techniques based on proving the equivalence of two state machines (for example, a design specification and its implementation), it is now feasible to prove test coverage of automatically generated tests for object oriented programs to the level of abstract states.
Description
Citation
Collections
Source
Book Title
Entity type
Access Statement
License Rights
DOI
Restricted until
Downloads
File
Description