Automating End-to-End Testing