An integration testing method that is proved to find all faults

Although a great deal of research has been done in the area of formal methods and their practical use for the specification and verification of software systems, testing issues are very seldom mentioned by those within the formal methods community. Almost all the methods currently used for testing software are experience based rather than theoretically founded methods. In particular, very few methods allow us to make any statement about the type or number of faults that remain undetected after testing is completed. This paper describes a method for using the existence of a formal specification as the basis for the development of a detailed functional testing strategy. By considering testing from a theoretical point of view we demonstrate that this method can provide a more convincing approach to the problem of detecting all faults. The formal method used, X-machines, is a blend of finite state machines, data structures and processing functions and provides a simple and intuitive way for specifying compute...