When, Why and How Should We Automate Testing?