How do you design an automation framework from scratch, and what key factors influence your choice of tools?