Software—Practice & Experience
A Theory of Fault-Based Testing
IEEE Transactions on Software Engineering
Communications of the ACM
Testing of Object-Oriented Programming Systems (OOPS): A Fault-Based Approach
ISOOMS '94 Proceedings of the International Symposium on Object-Oriented Methodologies and Systems
Identifying Reasons for Software Changes Using Historic Databases
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
ACM SIGPLAN Notices
Predicting Faults from Cached History
ICSE '07 Proceedings of the 29th international conference on Software Engineering
A Domain Strategy for Computer Program Testing
IEEE Transactions on Software Engineering
Toward an understanding of bug fix patterns
Empirical Software Engineering
Software fault prediction tool
Proceedings of the 19th international symposium on Software testing and analysis
Hi-index | 0.00 |
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.