Parallel debugging: An investigative study. Issue 11 (9th July 2019) - Zakari, Abubakar; Lee, Sai Peck
Abstract: In 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 distance metric used. However, clustering algorithms that group failed tests based on their execution profile similarity with distance metrics such as Euclidean distance, Jaccard distance, and Hamming distance are considered to be problematic and not appropriate. In this paper, we conducted an investigative study on the usefulness of the problematic parallel debugging approach that makes use of k ‐means clustering algorithm (that groups failed tests based on their execution profile similarity) with Euclidian distance metric on three similarity coefficient‐based fault localization techniques in terms of localization effectiveness. Secondly, we compare the effectiveness of the problematic parallel debugging approach with one‐bug‐at‐a‐time debugging approach (OBA) and a state‐of‐the‐art parallel debugging approach named MSeer. The empirical evaluation is conducted on 540 multiple‐fault versions of eight medium‐sized to large‐sized subject programs with two, three, four, and five faulty versions. Our results suggest that clustering failed tests based on their execution profile similarity and the utilization of distance metrics such as Euclidean distance is indeed problematic and contributes to the reduction of effectiveness in localizing multiple faults. Abstract : 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 compared with the existing state‐of‐the‐art parallel debugging approach.Therefore, the result affirms the previous studies claims that performing failed tests clustering based on their execution profile similarity, estimating the number of clusters based on the number of failed tests, and the utilization of metrics like Euclidian distance to measure the due‐to relationship between failed test cases are problematic and not appropriate which indeed reduces the effectiveness of a parallel debugging approach.