Towards Robust Deep Neural Networks Against Design-Time and Run-Time Failures