End-to-End Testing Blockchain Applications