Table 7: Comparison of D
∗
with HD
∗
and DD
∗
based on the Exam Score metric for multiple fault localization.
S.No. Program No. of faults D
∗
(Best) D
∗
(Worst) HD
∗
(Best) HD
∗
(Worst) DD
∗
(Best) DD
∗
(Worst)
1 Tot Info V1 2 36.88% 45.90% 34.42% 43.44% 31.14% 40.16%
2 Tot Info V2 4 52.45% 68.85% 49.18% 65.57% 49.18% 65.57%
3 Schedule V1 3 35.52% 43.42% 28.94% 36.84% 28.94% 36.84%
4 Schedule V2 3 21.71% 35.52% 16.44% 30.26% 15.13% 28.94%
5 Schedule2 V1 4 37.50% 49.21% 45.31% 57.03% 43.75% 55.46%
6 Schedule2 V2 3 28.12% 46.87% 26.56% 45.31% 26.56% 45.31%
7 Tcas V1 3 55.38% 92.30% 52.30% 89.23% 52.30% 89.23%
8 Tcas V2 4 43.07% 89.23% 43.07% 89.23% 43.07% 89.23%
9 Print Tokens V1 2 22.56% 29.74% 24.61% 31.79% 23.58% 30.76%
10 Replace V2 4 49.18% 65.57% 45.08% 61.47% 40.98% 57.37%
In the literature, various slicing based FL tech-
niques are reported (Weiser, 1984; Agrawal and Hor-
gan, 1990). Slicing focused techniques return a list
of suspicious instructions, but these techniques do not
assign ranks to the instructions. Also, it is possible
that a slice may contain all the program instructions,
and this nullifies the performance of slicing. On the
other hand, our FDBD
∗
approach returns a ranked
list of statements present in the most suspicious func-
tions.
Wong et al. (Wong and Qi, 2009) was the first
to introduce neural networks (NN) for FL. Wong et
al. (Wong et al., 2010) also used RBF (radial basis
function) NN for the same. Dutta et al. (Dutta et al.,
2019) reported a hierarchical approach for FL using
deep neural networks (DNN). They have used DNNs
for both function and statement prioritization. NNs
easily map complex functions with the help of the
training set. However, NNs require a large amount
of time for parameter estimation and model training.
Whereas, the time required in each step of the pro-
posed FDBD
∗
is reasonable and deterministic. Hence,
our proposed approach will work efficiently for large-
size programs.
8 CONCLUSION
We have presented a hierarchical FL technique using
Weighted Function Dependency Graph (WFDG) and
existing SBFL technique D
∗
. The WFDG models the
function dependency information, and the weights as-
signed in the dependency edges indicate the relevance
of an edge in propagating a fault. With the help of
the weighted dependency edges, the functions are pri-
oritized. To differentiate between the functions with
equal suspiciousness value, we have incorporated the
information computed using static analysis. From our
experimental evaluation, it is observed that the pro-
posed FDBD
∗
technique is, on average, 41.27% more
effective than the existing SBFL technique D
∗
.
We extend our technique to handle object-oriented
programs. We also intend to investigate learning-
oriented methods to estimate the heuristic parameters.
REFERENCES
Abreu, R., Zoeteweij, P., and Van Gemund, A. J. (2009).
Localizing software faults simultaneously. In 2009
Ninth International Conference on Quality Software,
pages 367–376. IEEE.
Agrawal, H. and Horgan, J. R. (1990). Dynamic program
slicing. ACM SIGPlan Notices, 25(6):246–256.
Agrawal, H., Horgan, J. R., London, S., and Wong, W. E.
(1995). Fault localization using execution slices and
dataflow tests. In Proceedings of Sixth International
Symposium on Software Reliability Engineering. IS-
SRE’95, pages 143–151. IEEE.
Ardimento, P., Bernardi, M. L., Cimitile, M., and Ruvo,
G. D. (2019). Reusing bugged source code to support
novice programmers in debugging tasks. ACM Trans-
actions on Computing Education (TOCE), 20(1):1–
24.
Ascari, L. C., Araki, L. Y., Pozo, A. R., and Vergilio, S. R.
(2009). Exploring machine learning techniques for
fault localization. In 2009 10th Latin American Test
Workshop, pages 1–6. IEEE.
Cellier, P., Ducass
´
e, M., Ferr
´
e, S., and Ridoux, O. (2011).
Multiple fault localization with data mining. In SEKE,
pages 238–243.
Choi, S.-S., Cha, S.-H., and Tappert, C. C. (2010). A survey
of binary similarity and distance measures. Journal of
Systemics, Cybernetics and Informatics, 8(1):43–48.
Cleve, H. and Zeller, A. (2005). Locating causes of program
failures. In Proceedings. 27th International Con-
ference on Software Engineering, 2005. ICSE 2005.,
pages 342–351. IEEE.
Deng, F. and Jones, J. A. (2012). Weighted system depen-
dence graph. In 2012 IEEE Fifth International Con-
ference on Software Testing, Verification and Valida-
tion, pages 380–389. IEEE.
Dutta, A., Jain, R., Gupta, S., and Mall, R. (2019). Fault
localization using a weighted function dependency
graph. In 2019 International Conference on Quality,
Reliability, Risk, Maintenance, and Safety Engineer-
ing (QR2MSE), pages 839–846. IEEE.
ICSOFT 2020 - 15th International Conference on Software Technologies
282