Now here are sorts of fault-failure relationship. A fault could manifest itself as a variety of failure. In failure 2 are a result of a fault 1, or fault 2 could only result in failure 2. Or fault 3 could result in failure 2, 3, 4. Now, on the other hand the failure 2 could have occurred because of fault 1, of fault 2 or fault 3. This sort of many to many relationships makes it difficult to test a software for faults.