common software failures and faults