An Integer Linear Programming Approach to General Fault Covering Problems