-There are some important considerations I want to make on final state - -2
-machines. And more in general, on model based testing. The first one - -3
-is about applicability. Testing based on final state machines is a very - -4
-general approach, that we can apply in a number of contexts. And in - -5
-particular, if you are working with UML, you have state machines for - -6
-free. Because state charts are nothing else but a special kind of - -7
-state machine. So you can apply the technique that we just saw - -8
-directly on state charts, and try to cover their states and their transitions. - -9
-Another important point is that abstraction is key. You have to find the - -10
-right level of abstraction. The bigger the system, the more you have to - -11
-abstract if you want to represent it with a model, and in particular, with - -12
-the final state machine. So it's like having a slider, and you have - -13
-to decide where you want to move on that slider. The more you represent, - -14
-the more complex your system is going to be and the more thorough your - -15
-testing is going to be but also more expensive. The less you represent the - -16
-less expensive testing is going to be, but also testing might not be as - -17
-thorough as it would be otherwise. So you have to find - -18
-the right balance between abstracting the weight too much and abstracting - -19
-the weight too little. And finally there are many other approaches. - -20
-So we just scratched the surface, and we just saw one possible - -21
-approach. But for instance, other models that you can use are - -22
-decision tables, flow graphs and even historical models. Models that can - -23
-guide your testing based on problems that occurred in your system - -24
-in the past. And also, in this case, I'm going to put pointers - -25
-to additional materials in the class notes. -- cgit 1.4.1