Fault-Injection Techniques for Dependability Analysis: An Overview