Lessons from Software Engineering at Google: Part 7 - Automated Testing