基于数据链的软件故障定位方法
作者:
基金项目:

国家自然科学基金(61370051)


Software Fault Localization Based on Data Chain
Author:
  • 摘要
  • | |
  • 访问统计
  • |
  • 参考文献 [26]
  • |
  • 相似文献 [20]
  • |
  • 引证文献
  • | |
  • 文章评论
    摘要:

    软件中存在的故障很多与数据流紧密相关,对数据流故障定位是一个具有相当难度的研究问题.通过分析变量的定义-使用关系和变量间的依赖关系,并跟踪程序运行时各种操作对变量值的影响,即,变量操作状态的变化等基本信息,提出了一种综合考虑变量操作状态变化以及变量操作状态间依赖关系的数据链模型,利用该模型对程序中数据流故障进行定位.经过实验验证,所提出的基于数据链的故障定位方法的定位结果与基于定义-使用对、基于程序切片、基于概率依赖图和基于语句覆盖这4种典型的故障定位方法进行了对比,取得了更好的定位效果.

    Abstract:

    Data flow related faults are very common in program and difficult to locate. This paper proposes a data chain model that takes account of variable change and dependencies information, and puts forward a fault location approach based on the data chain model. The main research of this paper is verified by experiments. The experimental results show that the proposed approach achieves better results comparing with other fault location approaches such as DU-pair, program slice, PPDG, and statement coverage.

    参考文献
    [1] Myers GJ, Sandler C, Badgett T. The Art of Software Testing. 3rd ed., Hoboken: John Wiley & Sons, 2011. 1-255.
    [2] Liu C, Yan XF, Han JW. Mining control flow abnormality for logic error isolation. In: Proc. of the 6th SIAM Int'l Conf. on Data Mining. Philadelphia: SIAM, 2006. 10-22.[doi: 10.1137/1.9781611972764]
    [3] Yu K, Lin MX, Gao Q, Zhang H, Zhang XY. Locating faults using multiple spectra-specific models. In: Proc. of the 2011 ACM Symp. on Applied Computing. New York: ACM Press, 2011. 1404-1410.[doi: 10.1145/1982185.1982490]
    [4] Santelices R, Jones JA, Yu YB, Harrold MJ. Lightweight fault-localization using multiple coverage types. In: Proc. of the IEEE 31st Int'l Conf. Washington: IEEE Computer Society, 2009. 56-66.[doi: 10.1109/ICSE.2009.5070508]
    [5] Zeller A. Isolating cause-effect chains from computer programs. In: Proc. of the 10th ACM SIGSOFT Symp. on Foundations of Software Engineering. New York: ACM Press, 2002. 1-10.[doi: 10.1145/587051.587053]
    [6] Parnin C, Orso A. Are automated debugging techniques actually helping programmers. In: Proc. of the 2011 Int'l Symp. on Software Testing and Analysis. New York: ACM Press, 2011. 199-209.[doi: 10.1145/2001420.2001445]
    [7] Xie XY, Chen TY, Kuo FC, Xu BW. A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization. ACM Trans. on Software Engineering and Methodology, 2013,22(4):31-70.[doi: 10.1145/2522920.2522924]
    [8] Binkley D, Gold N, Harman M. An empirical study of static program slice size. ACM Trans. on Software Engineering and Methodology, 2007,16(2):8-40.[doi: 10.1145/1217295.1217297]
    [9] Wong WE, Debroy V. A survey of software fault localization. Technical Report, UTDCS-45-09, Department of Computer Science, University of Texas at Dallas, 2009. 1-19.
    [10] Yang B, Wu J, Liu C. Mining data chain graph for fault localization. In: Proc. of the Computer Software and Applications Conf. on Workshops (COMPSACW). Washington: IEEE Computer Society, 2012. 464-469.[doi: 10.1109/COMPSACW.2012.88]
    [11] Zhang YQ, Zheng Z, Ji XH, Zhang WB, Zhang ZY. Markov model-based effectiveness predicting for software fault localization. Jisuanji Xuebao (Chinese Journal of Computers), 2013,36(2):445-456 (in Chinese with English abstract).[doi: 10.3724/SP.J.1016. 2013.00445]
    [12] Cheng H, Lo D, Zhou Y, Wang XY, Yan XF. Identifying bug signatures using discriminative graph mining. In: Proc. of the 18th Int'l Symp. on Software testing and analysis. New York: ACM Press, 2009. 141-152.[doi: 10.1145/1572272.1572290]
    [13] Jones JA. Fault localization using visualization of test information. In: Proc. of the 26th Int'l Conf. on the Software Engineering, Washington: IEEE Computer Society, 2004. 54-56.[doi: 10.1109/ICSE.2004.1317420]
    [14] Francel M, Rugaber S. Fault localization using execution traces. In: Proc. of the 30th Annual Southeast Regional Conf. New York: ACM Press, 1992. 69-76.[doi: 10.1145/503720.503747]
    [15] Zhang ZY, Chan WK, Tse TH. Fault localization based only on failed runs. IEEE Computer, 2012,45(6):64-71.[doi: 10.1109/MC. 2012.185]
    [16] Eichinger F, Böhm K, Huber M. Mining edge-weighted call graphs to localize software bugs. In: Proc. of the Machine Learning and Knowledge Discovery in Databases. Berlin: Springer-Verlag, 2008. 333-348.[doi: 10.1007/978-3-540-87479-9_40]
    [17] Lei Y, Mao XG, Dai ZY, Wang CS. Effective statistical fault localization using program slices. In: Proc. of the Computer Software and Applications Conf. (COMPSAC). Washington: IEEE Computer Society, 2012. 1-10.[doi: 10.1109/COMPSAC.2012.9]
    [18] Gyimóthy T, Beszédes á, Forgács I. An efficient relevant slicing method for debugging. In: Proc. of the Software Engineering (ESEC/FSE'99). Berlin: Springer-Verlag, 1999. 303-321.[doi: 10.1007/3-540-48166-4_19]
    [19] Baah GK, Podgurski A, Harrold MJ. The probabilistic program dependence graph and its application to fault diagnosis. IEEE Trans. on Software Engineering, 2010,36(4):528-545.[doi: 10.1109/TSE.2009.87]
    [20] Masri W. Fault localization based on information flow coverage. Software Testing, Verification and Reliability, 2010,20(2): 121-147.[ doi: 10.1002/stvr.409]
    [21] Zhang ZY, Chan WK, Tse TH, Jiang B, Wang XM. Capturing propagation of infected program states. In: Proc. of the 7th Joint Meeting of the European Software Engineering Conf. and the ACM SIGSOFT Symp. on the Foundations of Software Engineering. New York: ACM Press, 2009. 43-52.[doi: 10.1145/1595696.1595705]
    [22] Laski JW, Korel B. A data flow oriented program testing strategy. IEEE Trans. on Software Engineering, 1983,(3):347-354.[doi: 10.1109/TSE.1983.236871]
    [23] Vallée-Rai R, Co P, Gagnon E, Hendren L, Lam P, Sundaresan V. Soot—A Java bytecode optimization framework. In: Proc. of the 1999 Conf. of the Centre for Advanced Studies on Collaborative Research. Cranbury: IBM Press, 1999. 13-24.[doi: 10.1145/ 1925805.1925818]
    [24] Han JW, Kamber M, Pei J. Data mining: Concepts and Techniques. 3th ed., San Francisco: Morgan Kaufmann Publishers, 2006. 1-703.
    [25] Savasere A, Omiecinski ER, Navathe SB. An efficient algorithm for mining association rules in large databases. GIT-CC-95-04, Atlanta: Institute of Technology, 1995. 432-444.
    [26] Santelices R, Zhang YJ, Cai HP, Jiang S. DUA-Forensics: A fine-grained dependence analysis and instrumentation framework based on Soot. In: Proc. of the 2nd ACM SIGPLAN Int'l Workshop on State of the Art in Java Program Analysis. New York: ACM Press, 2013. 13-18.[doi: 10.1145/2487568.2487574]
    网友评论
    网友评论
    分享到微博
    发 布
引用本文

杨波,吴际,刘超.基于数据链的软件故障定位方法.软件学报,2015,26(2):254-268

复制
分享
文章指标
  • 点击次数:5710
  • 下载次数: 8854
  • HTML阅读次数: 2737
  • 引用次数: 0
历史
  • 收稿日期:2014-07-01
  • 最后修改日期:2014-10-31
  • 在线发布日期: 2015-02-06
文章二维码
您是第20252253位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号