ABSTRACT
In practice, a program may contain multiple bugs. The simultaneous presence of these bugs may deteriorate the effectiveness of existing fault-localization techniques to locate program bugs. While it is acceptable to use all failed and successful tests to identify suspicious code for programs with exactly one bug, it is not appropriate to use the same approach for programs with multiple bugs because the due-to relationship between failed tests and underlying bugs cannot be easily identified. One solution is to generate fault-focused clusters by grouping failed tests caused by the same bug into the same clusters. We propose MSeer - an advanced fault localization technique for locating multiple bugs in parallel. Our major contributions include the use of (1) a revised Kendall tau distance to measure the distance between two failed tests, (2) an innovative approach to simultaneously estimate the number of clusters and assign initial medoids to these clusters, and (3) an improved K-medoids clustering algorithm to better identify the due-to relationship between failed tests and their corresponding bugs. Case studies on 840 multiple-bug versions of seven programs suggest that MSeer performs better in terms of effectiveness and efficiency than two other techniques for locating multiple bugs in parallel.
- R. Gao and W. E. Wong, "MSeer - An Advanced Technique for Locating Multiple Bugs in Parallel," Transactions on Software Engineer, accepted on November 2017Google ScholarDigital Library
- W. E. Wong, X. Li, P. A. Laplante, "Be More Familiar with Our Enemies and Pave the Way Forward: A Review of the Roles Bugs Played in Software Failures," Journal of Systems and Software, vol. 133, pp. 68--94, November 2017Google ScholarCross Ref
- W. E. Wong, R. Gao, Y. Li, R. Abreu and F. Wotawa, "A Survey on Software Fault Localization," IEEE Transactions on Software Engineering, vol. 42, issue. 8, pp. 707--740, August 2016 Google ScholarDigital Library
Index Terms
- MSeer: an advanced technique for locating multiple bugs in parallel
Recommendations
Parallel debugging: An investigative study
AbstractIn the simultaneous localization of multiple software faults, a parallel debugging approach has consistently been utilized. The effectiveness of a parallel debugging approach is critically determined by the type of clustering algorithm and the ...
Figure 1 shows a program with test cases. The results of our controlled experiments showed that, even though the problematic parallel debugging approach is useful and better in comparison with the OBA debugging approach, yet, it is not as effective when ...
Extending a traditional debugger to debug massively parallel applications
Beowulf systems, and other proprietary approaches, are placing systems with four or more CPUs in the hands of many researchers and commercial users. In the near future, systems with hundreds of CPUs will become commonly available, with some programmers ...
PGDB: A Debugger for MPI Applications
XSEDE '14: Proceedings of the 2014 Annual Conference on Extreme Science and Engineering Discovery EnvironmentAs MPI applications scale to larger machines, errors that had been hidden from testing at smaller scales begin to manifest themselves. It is therefore necessary to extend debuggers to work at these scales, in order for efficient development of correct ...
Comments