Finite state machine based formal methods in protocol conformance testing: from theory to implementation