Specifying and Generating Test Cases Using Observer Automata -- Semi-formal Development