International Journal of Information Engineering and Electronic Business(IJIEEB)
ISSN: 2074-9023 (Print), ISSN: 2074-9031 (Online)
Published By: MECS Press
IJIEEB Vol.5, No.2, Aug. 2013
A Non-Parametric Statistical Debugging Technique with the Aid of Program Slicing (NPSS)
Full Text (PDF, 219KB), PP.8-14
A method is introduced in this paper, which promotes automated bug localization. It is based on the combination of two bug localization techniques, Non-Parametric Statistical Debugging and Backward Slicing. The proposed method, computes some vectors (called execution vectors) based on the status of each basic-block’s execution in running of test-cases. According to the behavior of each basic-block in failed test-cases and passed ones, two likelihoods are computed and regards to them, basic-blocks become prioritized. At last static slice of program and dynamic backward slice for one failed test-case are computed. While seeking for faulty statement in ranked basic-blocks, the method either returns the basic-block’s statements in the static backward slice or the part of it presented in the computed dynamic backward slice. NPSS has been applied on the Siemens test suite, space, grep and gzip. Our experimental study shows the accuracy and effectiveness of the method in accurate bug localization.
Cite This Paper
Farzaneh Zareie,Saeed Parsa,"A Non-Parametric Statistical Debugging Technique with the Aid of Program Slicing (NPSS)", IJIEEB, vol.5, no.2, pp.8-14, 2013. DOI: 10.5815/ijieeb.2013.02.02
P. Ammann and J. Offutt, Introduction to Software Testing. New York: the United States of America by Cambridge University Press, 2008.
X. Zhang, N. Gupta, and R. Gupta, "Pruning dynamic slices with confidence," in Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation Ottawa, Ontario, Canada: ACM, 2006; 169-180.
A. J. Jones and M. J. Harrold, "Empirical evaluation of the tarantula automatic fault-localization technique," in Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering Long Beach, CA, USA: ACM, 2005; 273-282.
C. Liu, X. Yan, L. Fei, J. Han, and P. S. Midkiff, "SOBER: statistical model-based bug localization," in Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering Lisbon, Portugal: ACM, 2005; 286-295.
S. Horwitz, B. Liblit, and M. Polishchuk, "Better Debugging via Output Tracing and Callstack-Sensitive Slicing," IEEE Trans. Softw. Eng., 2010; 36 (1): 7-19.
B. Liblit, M. Naik, X. A. Zheng, A. Aiken, and I. M. Jordan, "Scalable statistical bug isolation," SIGPLAN Not., 2005; 40 (6): 15-26.
D. Jeffrey, N. Gupta, and R. Gupta, "Effective and efficient localization of multiple faults using value replacement," in ICSM 2009. IEEE International Conference on Software Maintenance, 2009; 221-230.
M. Weiser, "Program slicing," IEEE Transactions on Software Engineering (TSE), 1982; 10 (4): 352–357.
H. Agrawal and J. R. Horgan, "Dynamic program slicing," in Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation White Plains, New York, United States: ACM, 1990; 246-256.
X. Zhang, N. Gupta, and R. Gupta, "Locating faulty code by multiple points slicing," Softw. Pract. Exper., 2007; 37 (9): 935-961.
T. Y. Chen and Y. Y. Cheung, "Dynamic Program Dicing," in Proceedings of the Conference on Software Maintenance: IEEE Computer Society, 1993; 378-385.
N. Gupta, H. He, X. Zhang, and R. Gupta, "Locating faulty code using failure-inducing chops," in Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering Long Beach, CA, USA: ACM, 2005.
K. Jens, "Slicing, Chopping, and Path Conditions with Barriers," Software Quality Control, 2004; 12 (4): 339-360.
X. Zhang, N. Gupta, and R. Gupta, "Locating faults through automated predicate switching," in Proceedings of the 28th international conference on Software engineering Shanghai, China: ACM, 2006; 272-281.
T. Gyimothy, A. Beszedes, and I. Forgacs, "An efficient relevant slicing method for debugging," in Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering Toulouse, France: Springer-Verlag, 1999; 303-321.
R. Hildebrandt and A. Zeller, "Simplifying failure-inducing input," SIGSOFT Softw. Eng. Notes, 2000; 25 (5): 135-145.
A. Zeller, "Yesterday, my program worked. Today, it does not. Why?" SIGSOFT Softw. Eng. Notes, 1999; 24 (6): 253-267.
A. Zeller and R. Hildebrandt, "Simplifying and Isolating Failure-Inducing Input," IEEE Trans. Softw. Eng., 2002; 28 (2): 183-200.
X. Zhang, H. He, N. Gupta, and R. Gupta, "Experimental evaluation of using dynamic slices for fault location," in Proceedings of the sixth international symposium on automated analysis-driven debugging Monterey, California, USA: ACM, 2005; 33-42.
X. Zhang, N. Gupta, and R. Gupta, "A study of effectiveness of dynamic slicing in locating real faults," Empirical Softw. Eng., 2007; 12 (2): 143-160.
X. Zhang, R. Gupta, and Y. Zhang, "Precise dynamic slicing algorithms," in Proceedings of the 25th International Conference on Software Engineering Portland, Oregon: IEEE Computer Society, 2003; 319-329.
S. Parsa, F. Zareie, and M. Vahidi-Asl, "Fuzzy clustering the backward dynamic slices of programs to identify the origins of failure," in Proceedings of the 10th international conference on Experimental algorithms, Crete, Greece, 2011; 352-363.
A. V. Aho, R. Sethi, and J. D. Ullman, Compilers: principles, techniques, and tools, 2nd ed.: Addison-Wesley, 1986.
Do Hyunsook, Elbaum Sebastian, and R. Gregg. “Software-artifact Infrastructure Repository”, http://sir.unl.edu/portal/index.html [June 2012].