ABSTRACT

Finite state machines (FSMs) have become a fairly standard notation for requirements specification. This chapter is particularly important for model-based testing (MBT) because most of the commercial and open source MBT tools are designed for FSMs. Most FSM notations add information to the edges to indicate the cause of the transition and actions that occur as a result of the transition. In some circles, this is referred to as an Extended Finite State Machine (EFSM). There are two common textual representations of a finite state machine—a Transition Table and an Event Table. Since FSM are directed graphs, two matrices from directed graph theory also apply—the Adjacency Matrix and the Reachability Matrix. Although the matrix representations are well known, they are not as helpful as more textual forms. Finite state machines offer excellent support for identifying test cases for event-driven systems; however, they are almost useless for computational applications such as the Insurance Premium Problem.