How do you design an automation framework from scratch, and what tools would you select for testing a dynamic web application?