Resilience Requirements, Design, and Testing