End-to-end test execution