{'fraction_non_alphanumeric': 0.021668472372697724, 'fraction_numerical': 0.0, 'mean_word_length': 5.328767123287672, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Multiplets, models, and the search for meaning: improving per-test fault diagnosis

The advantage to "one test at a time" fault diagnosis is its ability to implicate the components of complicated defect behaviors. The disadvantage is the large size and opacity of the diagnostic answer. In this paper, we address the problems of per-test diagnosis by improving the candidate matching, introducing scoring and ranking techniques, and by developing a method to translate the results into common defect scenarios. Our experimental results on simulated defects indicate that not only are the results improved on complex behaviors, but by considering passing test results we improve a common case where per-test algorithms can perform significantly worse than traditional diagnosis algorithms. Finally, our method of candidate analysis provides a way to bridge the per-test approach with traditional model-based fault diagnosis.