Using Model-Based Diagnosis to Improve Software Testing