A Statement Level Bug Localization Technique using Statement Dependency Graph

Shanto Rahman, Md. Mostafijur Rahman, Kazi Sakib

2017

Abstract

Existing bug localization techniques suggest source code methods or classes as buggy which require manual investigations to find the buggy statements. Considering that issue, this paper proposes Statement level Bug Localization (SBL), which can effectively identify buggy statements from the source code. In SBL, relevant buggy methods are ranked using dynamic analysis followed by static analysis of the source code. For each ranked buggy method, a Method Statement Dependency Graph (MSDG) is constructed where each statement acts as a node of the graph. Since each of the statements contains few information, it is maximized by combining the contents of each node and its predecessor nodes in MSDG, resulting a Node Predecessor-node Dependency Graph (NPDG). To identify relevant statements for a bug, similarity is measured between the bug report and each node of the NPDG using Vector Space Model (VSM). Finally, the buggy statements are ranked based on the similarity scores. Rigorous experiments on three open source projects named as Eclipse, SWT and PasswordProtector show that SBL localizes the buggy statements with reasonable accuracies.

References

  1. Alhindawi, N., Dragan, N., Collard, M. L., and Maletic, J. I. (2013). Improving feature location by enhancing source code with stereotypes. In 2013 IEEE International Conference on Software Maintenance, pages 300-309. IEEE.
  2. Croft, W. B., Metzler, D., and Strohman, T. (2010). Search engines: Information retrieval in practice. AddisonWesley Reading.
  3. Eisenbarth, T., Koschke, R., and Simon, D. (2003). Locating features in source code. IEEE Transactions on Software Engineering, 29(3):210-224.
  4. Lukins, S. K., Kraft, N., Etzkorn, L. H., et al. (2008). Source code retrieval for bug localization using latent dirichlet allocation. In 15th Working Conference on Reverse Engineering, WCRE'08, pages 155-164. IEEE.
  5. Moreno, L., Bandara, W., Haiduc, S., and Marcus, A. (2013). On the relationship between the vocabulary of bug reports and source code. In International Conference on Software Maintenance (ICSM), pages 452- 455. IEEE.
  6. Nichols, B. D. (2010). Augmented bug localization using past bug information. In 48th Annual Southeast Regional Conference, page 61. ACM.
  7. Poshyvanyk, D., Gueheneuc, Y.-G., Marcus, A., Antoniol, G., and Rajlich, V. C. (2007). Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval. IEEE Transactions on Software Engineering, 33(6):420-432.
  8. Rahman, S. (2016). shanto-rahman/source code: 2016. https://github.com/shanto-Rahman/SBL.
  9. Rahman, S., Ganguly, K., and Kazi, S. (2015). An improved bug localization using structured information retrieval and version history. In 18th International Conference on Computer and Information Technology (ICCIT), pages 190-195. IEEE.
  10. Rahman, S., Rahman, M. M., and Sakib, K. (2016). An improved method level bug localization approach using minimized code space. Communications in Computer and Information Science (Accepted).
  11. Rahman, S. and Sakib, K. (2016). An appropriate method ranking approach for localizing bugs using minimized search space. In Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering, pages 303-309.
  12. Saha, R. K., Lease, M., Khurshid, S., and Perry, D. E. (2013). Improving bug localization using structured information retrieval. In 28th International Conference on Automated Software Engineering (ASE), pages 345-355. IEEE.
  13. Sisman, B. and Kak, A. C. (2012). Incorporating version histories in information retrieval based bug localization. In 9th IEEE Working Conference on Mining Software Repositories, pages 50-59. IEEE Press.
  14. Tantithamthavorn, C., Ihara, A., and Matsumoto, K.-i. (2013). Using co-change histories to improve bug localization performance. In Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), 2013 14th ACIS International Conference on, pages 543-548. IEEE.
  15. Wang, S. and Lo, D. (2014). Version history, similar report, and structure: Putting them together for improved bug localization. In 22nd International Conference on Program Comprehension, pages 53-63. ACM.
  16. Wilde, N., Gomez, J. A., Gust, T., and Strasburg, D. (1992). Locating user functionality in old code. In Software Maintenance, 1992. Proceerdings., Conference on, pages 200-205. IEEE.
  17. Zhou, J., Zhang, H., and Lo, D. (2012). Where should the bugs be fixed? more accurate information retrievalbased bug localization based on bug reports. In 34th International Conference on Software Engineering (ICSE), pages 14-24. IEEE.
Download


Paper Citation


in Harvard Style

Rahman S., Rahman M. and Sakib K. (2017). A Statement Level Bug Localization Technique using Statement Dependency Graph . In Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-250-9, pages 171-178. DOI: 10.5220/0006261901710178


in Bibtex Style

@conference{enase17,
author={Shanto Rahman and Md. Mostafijur Rahman and Kazi Sakib},
title={A Statement Level Bug Localization Technique using Statement Dependency Graph},
booktitle={Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},
year={2017},
pages={171-178},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006261901710178},
isbn={978-989-758-250-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - A Statement Level Bug Localization Technique using Statement Dependency Graph
SN - 978-989-758-250-9
AU - Rahman S.
AU - Rahman M.
AU - Sakib K.
PY - 2017
SP - 171
EP - 178
DO - 10.5220/0006261901710178