{'fraction_non_alphanumeric': 0.0196078431372549, 'fraction_numerical': 0.0005159958720330237, 'mean_word_length': 5.378289473684211, '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}}
On the improvement of a fault classification scheme with implications for white-box testing

Different testing techniques can be more or less effective on different fault types; therefore, testing methods that are most likely to detect the most common fault types should be preferred. However, to enable such a selection of testing methods, a suitable and effective fault classification scheme is essential. Much software testing research proposes techniques to generate test cases and evaluates these techniques based on some hypothesized fault classification scheme. However, there is a lack in the justification of whether such 'hypothesized faults' are realistic and how often these faults occur. Recently, Pan et al. analyzed the syntactic changes in the source code, made in fixing faults, of 7 open source software projects implemented in Java. Based on their experience, they proposed a fault classification scheme with relative frequencies of each fault type. As always, readers may question whether the resulting fault classification is reasonable and appropriate. Hence, we applied their method to Checkstyle, another open source Java program, as the subject of our study, hoping to validate the appropriateness of their fault classification scheme, with particular application for selecting testing methods. While we generally found their classification scheme reasonable, we also noted that some faults could be classified in multiple ways. We also found that the frequencies of fault categories in Checkstyle were significantly different to the seven systems studied by Pan et al., which had all shown to have quite similar frequencies. We identified several potential improvements to their classification, permitting the classification of a larger proportion of faults. We have identified new implications of the combined results for white-box testing, and proposed follow-up studies to examine these issues in more detail.