Principles and methods of testing finite state machines-a survey
- 1 August 1996
- journal article
- review article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in Proceedings of the IEEE
- Vol. 84 (8), 1090-1123
- https://doi.org/10.1109/5.533956
Abstract
With advanced computer technology, systems are getting larger to fulfill more complicated tasks: however, they are also becoming less reliable. Consequently, testing is an indispensable part of system design and implementation; yet it has proved to be a formidable task for complex systems. This motivates the study of testing finite stare machines to ensure the correct functioning of systems and to discover aspects of their behavior. A finite state machine contains a finite number of states and produces outputs on state transitions after receiving inputs. Finite state machines are widely used to model systems in diverse areas, including sequential circuits, certain types of programs, and, more recently, communication protocols. In a testing problem we have a machine about which we lack some information; we would like to deduce this information by providing a sequence of inputs to the machine and observing the outputs produced. Because of its practical importance and theoretical interest, the problem of testing finite state machines has been studied in different areas and at various times. The earliest published literature on this topic dates back to the 1950's. Activities in the 1960's mid early 1970's were motivated mainly by automata theory and sequential circuit testing. The area seemed to have mostly died down until a few years ago when the testing problem was resurrected and is now being studied anew due to its applications to conformance testing of communication protocols. While some old problems which had been open for decades were resolved recently, new concepts and more intriguing problems from new applications emerge. We review the fundamental problems in testing finite state machines and techniques for solving these problems, tracing progress in the area from its inception to the present and the stare of the art. In addition, we discuss extensions of finite state machines and some other topics related to testing.Keywords
This publication has 77 references indexed in Scilit:
- Testing linear operatorsBIT Numerical Mathematics, 1995
- Testing Finite State Machines: Fault DetectionJournal of Computer and System Sciences, 1995
- Testing finite-state machines: state identification and verificationIEEE Transactions on Computers, 1994
- Fault detection with multiple observersIEEE/ACM Transactions on Networking, 1993
- Strategic testing environment with formal description techniquesIEEE Transactions on Computers, 1991
- An optimization technique for protocol conformance testing using multiple UIO sequencesInformation Processing Letters, 1990
- Formal methods for protocol testing: a detailed studyIEEE Transactions on Software Engineering, 1989
- A protocol test generation procedureComputer Networks and ISDN Systems, 1988
- Failure diagnosis of automataCybernetics and Systems Analysis, 1975
- Check words for the states of a finite automatonCybernetics and Systems Analysis, 1975