A testing technique applied at code level. Unlike error seeding and other testing techniques, fault injection is about assessing software behaviour rather than software correctness: the aim is to determine how well or badly a piece of software will behave under a variety of anomalous events. The great difficulty of software fault injection lies in the determination of an acceptable collection of so-called anomalous events.