An integrated methodology for the specification, verification and testing of systems

The practical use of formal methods in the specification and verification of software systems is an area where the U.K. and Europe have a significant competitive edge and from the point of view of research there has been much emphasis on this area. However, little of the work also addresses testing issues—there is almost an implication that testing is unnecessary when a system has been formally developed and certainly testing issues are very rarely discussed by those involved in formal methods. This position is challenged and a mechanism is proposed whereby: (a) testing is integrated more fully into the design process and, in particular, is considered at the beginning of the life cycle; (b) there is the potential that as the design is refined and transformed into an implementation, the top level abstract test strategy is similarly transformed into detailed test sets. The test strategy is based on the derivation of test sets from formal specifications (new generation functional testing).