state-machine-testing