The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.04 - July/August (2010 vol.36)
pp: 528-545
George K. Baah , Georgia Institute of Technology, Atlanta
Andy Podgurski , Case Western Reserve University, Cleveland
Mary Jean Harrold , Georgia Institute of Technology, Atlanta
ABSTRACT
This paper presents an innovative model of a program's internal behavior over a set of test inputs, called the probabilistic program dependence graph (PPDG), which facilitates probabilistic analysis and reasoning about uncertain program behavior, particularly that associated with faults. The PPDG construction augments the structural dependences represented by a program dependence graph with estimates of statistical dependences between node states, which are computed from the test set. The PPDG is based on the established framework of probabilistic graphical models, which are used widely in a variety of applications. This paper presents algorithms for constructing PPDGs and applying them to fault diagnosis. The paper also presents preliminary evidence indicating that a PPDG-based fault localization technique compares favorably with existing techniques. The paper also presents evidence indicating that PPDGs can be useful for fault comprehension.
INDEX TERMS
Probabilistic graphical models, machine learning, fault diagnosis, program analysis.
CITATION
George K. Baah, Andy Podgurski, Mary Jean Harrold, "The Probabilistic Program Dependence Graph and Its Application to Fault Diagnosis", IEEE Transactions on Software Engineering, vol.36, no. 4, pp. 528-545, July/August 2010, doi:10.1109/TSE.2009.87
REFERENCES
[1] R. Alur, P. Černý, P. Madhusudan, and W. Nam, "Synthesis of Interface Specifications for Java Classes," Proc. Symp. Principles of Programming Languages, pp. 98-109, Jan. 2005.
[2] G. Ammons, R. Bodik, and J.R. Larus, "Mining Specifications," Proc. Symp. Principles of Programming Languages, pp. 4-16, Jan. 2002.
[3] S. Bates and S. Horwitz, "Incremental Program Testing Using Program Dependence Graphs," Proc. Symp. Principles of Programming Languages, pp. 384-396, Jan. 1993.
[4] J.F. Bowring, J.M. Rehg, and M.J. Harrold, "Active Learning for Automatic Classification of Software Behavior," Proc. Int'l Symp. Software Testing and Analysis, pp. 195-205, July 2004.
[5] L. Burnell and E. Horvitz, "Structure and Chance: Melding Logic and Probability for Software Debugging," Comm. ACM, vol. 38, no. 3, pp. 31-41, 1995.
[6] H. Cleve and A. Zeller, "Locating Causes of Program Failures," Proc. 27th Int'l Conf. Software Eng., pp. 342-351, May 2005.
[7] H. Do, S. Elbaum, and G. Rothermel, "Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and Its Potential Impact," Empirical Software Eng., vol. 10, no. 4, pp. 405-435, 2005.
[8] J. Ferrante, K.J. Ottenstein, and J.D. Warren, "The Program Dependence Graph and Its Use in Optimization," ACM Trans. Programming Languages and Systems, vol. 9, no. 3, pp. 319-349, July 1987.
[9] S. Galan, F. Aguado, F.J. Diez, and J. Mira, "NasoNet, Joining Bayesian Networks, and Time to Model Nasopharyngeal Cancer Spread," Artificial Intelligence in Medicine, pp. 207-216, Springer, 2001.
[10] K.B. Gallagher and J.R. Lyle, "Using Program Slicing in Software Maintenance," IEEE Trans. Software Eng., vol. 17, no. 8, pp. 751-761, Aug. 1991.
[11] M. Haran, A. Karr, A. Orso, A. Porter, and A. Sanil, "Applying Classification Techniques to Remotely-Collected Program Execution Data," Proc. European Software Eng. Conf. and ACM SIGSOFT Symp. Foundations of Software Eng., pp. 146-155, Sept. 2005.
[12] D. Heckerman, D.M. Chickering, C. Meek, R. Rounthwaite, and C.M. Kadie, "Dependency Networks for Inference, Collaborative Filtering, and Data Visualization," J. Machine Learning Research, vol. 1, pp. 49-75, 2000.
[13] M. Hutchins, H. Foster, T. Goradia, and T. Ostrand, "Experiments on the Effectiveness of Dataflow and Controlflow-Based Test Adequacy Criteria," Proc. Int'l Conf. Software Eng., pp. 191-200, May 1994.
[14] L. Jiang and Z. Su, "Context-Aware Statistical Debugging: From Bug Predictors to Faulty Control Flow Paths," Proc. Int'l Conf. Automated Software Eng., pp. 184-193, Nov. 2007.
[15] J. Jones and M.J. Harrold, "Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique," Proc. Int'l Conf. Automated Software Eng., pp. 273-282, Nov. 2005.
[16] J. Jones, M.J. Harrold, and J. Stasko, "Visualization of Test Information to Assist Fault Localization," Proc. Int'l Conf. Software Eng., pp. 467-477, May 2002.
[17] J.W. Laski and B. Korel, "A Data Flow Oriented Program Testing Strategy," IEEE Trans. Software Eng., vol. 9, no. 3, pp. 347-354, May 1983.
[18] B. Liblit, M. Naik, A.X. Zheng, A. Aiken, and M.I. Jordan, "Scalable Statistical Bug Isolation," Proc. Conf. Programming Language Design and Implementation, pp. 15-26, June 2005.
[19] C. Liu, X. Yan, L. Fei, J. Han, and S.P. Midkiff, "SOBER: Statistical Model-Based Bug Localization," Proc. European Software Eng. Conf. and ACM SIGSOFT Symp. Foundations of Software Eng., pp. 286-295, Sept. 2005.
[20] W. Masri and A. Podgurski, "An Empirical Study of the Strength of Information Flows in Programs," Proc. 2006 Int'l Workshop Dynamic Systems Analysis, pp. 73-80, 2006.
[21] K. Murphy, "Dynamic Bayesian Networks: Representation, Inference and Learning," PhD thesis, Computer Science Division, Univ. of California, Berkeley, 2002.
[22] R.E. Neapolitan, Learning Bayesian Networks. Prentice Hall, 2003.
[23] G.C. Necula, S. McPeak, S.P. Rahul, and W. Weimer, "CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs," Proc. Int'l Conf. Compiler Construction, pp. 213-228, Apr. 2002.
[24] A. Podgurski and L.A. Clarke, "A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance," IEEE Trans. Software Eng., vol. 16, no. 9, pp. 965-979, Sept. 1990.
[25] A. Podgurski, D. Leon, P. Francis, W. Masri, M.M. Sun, and B. Wang, "Automated Support for Classifying Software Failure Reports," Proc. Int'l Conf. Software Eng., pp. 465-475, May 2003.
[26] M. Renieris and S. Reiss, "Fault Localization with Nearest Neighbor Queries," Proc. Int'l Conf. Automated Software Eng., pp. 30-39, Nov. 2003.
[27] S. Thrun, "Robotic Mapping: A Survey," Exploring Artificial Intelligence in the New Millennium, pp. 1-35, Morgan Kaufmann Publishers, Inc., 2002.
[28] W. Weimer and G. Necula, "Mining Temporal Specifications for Error Detection," Proc. Int'l Conf. Tools and Algorithms for the Construction and Analysis of Systems, pp. 461-476, Apr. 2005.
[29] M. Weiser, "Program Slicing," Proc. Int'l Conf. Software Eng., pp. 439-449, Mar. 1981.
[30] Y. Yu, J.A. Jones, and M.J. Harrold, "An Empirical Study of the Effects of Test-Suite Reduction on Fault Localization," Proc. 30th Int'l Conf. Software Eng., pp. 201-210, 2008.
[31] X. Zhang, N. Gupta, and R. Gupta, "Pruning Dynamic Slices with Confidence," Proc. Conf. Programming Language Design and Implementation, pp. 169-180, June 2006.
21 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool