Separation of synchronous and asynchronous communication via testing