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