CS447 Lecture 1: L13.pdf
Document Summary
We can also model the behaviour of software using a nite-state machine. Such models are higher- level than the control- ow graphs and call graphs that we"ve seen to date. They instead capture the design of the software. There is generally no obvious mapping between a design-level fsm and the code. We propose the use of graph coverage criteria to test with fsms: nodes: software states, edges: transitions between software states, i. e. someone enters a command. something changes in the environment or. The fsm enables exploration of the software system"s state space. A software state consists of values for (possibly abstract) program variables, while a transition represents a change to these program variables. Data ow coverage doesn"t apply very well to fsms. We could associate defs and uses with fsm edges; however, even if we make sure to achieve edge coverage, we might not be able to individually control all of the abstract variables underlying the fsm.