How does software fail? Author: Lena Feinbube Software is becoming more ubiquitous and therefore plays an increasingly prevalent role in dependability research. Fault and error models need to be tailored and adapted for software systems. The understanding of complex propagation chains is essential for increasing and comparing the dependability of real world software systems. My research focusses on evaluating software dependability both from a theoretical, and a practical perspective. Fault injection is a useful tool for practical experimentation. It can be used to test the fault tolerance features by artificially inserting faulty behaviour and error states into the running system. Thus, fault injection represents the notion that the faultload needs to be incorporated into the software testing process. To increase representativeness and coverage, the questions of when and where to inject faults need to be answered.