一种基于异常控制流的错误程序行为分析方法
CSTR:
作者:
作者单位:

同济大学,同济大学,同济大学

中图分类号:

TP311

基金项目:

国家自然科学基金项目(61432017)


An Approach to Analyzing Erroneous Program Behavior Based on Exception Control Flow
Author:
  • 摘要
  • | |
  • 访问统计
  • |
  • 参考文献 [34]
  • |
  • 相似文献 [20]
  • | | |
  • 文章评论
    摘要:

    通过静态分析程序显式异常控制流收集到程序中可引起异常的差错信息,采用故障注入实验,分析了程序的“故障差错异常”传播过程.结合函数级异常控制流的描述,对异常相关的差错及其对程序行为的影响进行了分析,建立了基于异常控制流的错误程序行为模型,开发了相应的分析工具.以OpenStack核心组件为对象进行实验,结果表明从异常层次对错误程序行为进行分析是合理而有效的.该方法为具有异常处理机制的大规模程序的错误行为自动分析和差错数据的收集提供了新手段.

    Abstract:

    In this paper, the propagation process of “fault-error-exception” chain in programs is analyzed by fault injection experiments. With representation of the exception control flow at function level, the error and its impact on program behavior are analyzed, a model of erroneous program behavior is established. An automatic analysis tool based on the proposed approach is developed and is used to analyze the erroneous behaviors of the significant components in OpenStack. The experimental results validate the validity and rationality of the proposed approach, which provides a new means to automatically analyze the erroneous behavior and collect the valid error set for largescale programs with exception handling mechanism.

    参考文献
    Duraes J A, Madeira H S. Emulation of software faults: a field data study and a practical approach[J]. IEEE Transactions on Software Engineering, 2006, 32(11): 849-867.
    Marinescu P D, Candea G. LFI: A practical and general library-level fault injector[C]//Proceedings of the IEEE/IFIP International Conference on Dependable Systems and Networks. Estoril, 2009: 379-388.
    Natella R, Cotroneo D, Duraes J A, et al. On fault representativeness of software fault injection[J]. IEEE Transactions on Software Engineering, 2013, 39(1): 80-96.
    Silva N, Barbosa R, Cunha J C, et al. A view on the past and future of fault injection[C]//Proceedings of the 43rd IEEE/IFIP International Conference on Dependable Systems and Networks.SBudapest, 2013: 1-2.
    Christmansson J, Chillarege R. Generation of an error set that emulates software faults based on field data[C]//Proceedings of the 26th IEEE Symposium on Fault Tolerant Computing. Sendai, 1996: 304-313.
    Moraes R, Barbosa R, Duraes J, et al. Injection of faults at component interfaces and inside the component code: are they equivalent[C]//Proceedings of the 6th EuropeanSDependable Computing Conference. Coimbra, 2006: 53-64.
    Zhang P, Elbaum S. Amplifying tests to validate exception handling code[C]//Proceedings of the 34th International Conference on Software Engineering. Zurich, 2012S: 595-605.
    Arlat J, Moraes R. Collecting, analyzing and archiving results from fault injection experiments[C]//Proceedings of 5th Latin-American Symposium onSDependable Computing. Sao Jose dos Campos 2011:100-105.
    张丹青, 江建慧, 陈林博.一种对程序故障行为和失效行为的聚类有效性验证方法[J]. 中国科学: 信息科学, 2014, 44(10):1323-1344.
    ZHANG Danqing, JIANG Jianhui, CHEN Linbo. A method for validating the effectiveness of fault clustering and failure clustering of programs[J]. SCIENCE CHINA Information Sciences, 2014, 44(10): 1323-1344.
    Shah H B, Gorg C, Harrold M J. Understanding exception handling: Viewpoints of novices and experts [J]. IEEE Transactions on Software Engineering, 2010, 36(2): 150-161.
    Cristian F. Exception handling and software fault tolerance[J]. IEEE Transactions on Computers, 1982, 100(6): 531-540.
    Lei B, Li X, Liu Z, et al. Robustness testing for software components[J]. Science of Computer Programming, 2010, 75(10): 879-897.
    Shahrokni A, Feldt R. A systematic review of software robustness[J]. Information and Software Technology, 2013, 55(1): 1-17.
    Johansson A, Suri N, Murphy B. On the impact of injection triggers for OS robustness evaluation[C]//Proceedings of 18th IEEE International Symposium on Software Reliability. Trollhattan, 2007: 127-136.
    姜淑娟, 徐宝文, 史亮. 一种基于异常传播分析的数据流分析方法[J]. 软件学报, 2007, 18(1): 74-84.
    JIANG Shujuan, XU Baowen, SHI Liang. An approach of data-flow analysis based on exception propagation analysis[J]. Journal of Software, 2007, 18(1): 78-84
    姜淑娟, 徐宝文, 史亮. 一种基于异常传播分析的依赖性分析方法[J]. 软件学报, 2007, 18(4): 832-841.
    JIANG Shujuan, XU Baowen, SHI Liang. An approach to analyzing dependence based on exception propagation analysis[J]. Journal of Software, 2007, 18(4): 832-841
    Sinha S, Harrold M J. Analysis and testing of programs with exception handling constructs[J]. IEEE Transactions on Software Engineering, 2000, 26(9): 849-871.
    Harrold M J, Rothermel G, Sinha S. Computation of interprocedural control dependence[J]. ACM SIGSOFT Software Engineering Notes, 1998, 23(2): 11-20.
    Sinha S, Orso A, Harrold M J. Automated support for development, maintenance, and testing in the presence of implicit flow control[C]//Proceedings of the 26th IEEE International Conference on Software Engineering. Edinburgh, 2004: 336-345.
    Coelho R, Rashid A, Garcia A, et al. Assessing the impact of aspects on exception flows: An exploratory study[C]//Proceedings of the 22nd European Conference on Object-Oriented Programming. Berlin Heidelberg: Springer, 2008: 207-234.
    Jo J W, Chang B M, Yi K, et al. An uncaught exception analysis for Java[J]. Journal of Systems and Software, 2004, 72(1): 59-69.
    金大海, 宫云战, 杨朝红, 等. 运行时异常对软件静态测试的影响研究[J]. 计算机学报, 2011, 34(6): 1090.
    JIN Dahai, GONG Yunzhan, YANG Zhaohong, et al. Research on the effect of runtime exception in software static testing[J]. Journal of Computers, 2011, 34(6):1090.
    Csallner C, Smaragdakis Y. JCrasher: an automatic robustness tester for Java[J]. Software: Practice and Experience, 2004, 34(11): 1025-1050.
    Maji A K, Arshad F A, Bagchi S, et al. An empirical study of the robustness of Inter-component Communication in Android[C]//Proceedings of the 42nd IEEE/IFIP International Conference on Dependable Systems and Networks. Boston, 2012: 1-12.
    姜淑娟, 徐宝文. 异常处理:一种提高软件健壮性的方法[J]. 计算机科学, 2004, 30(9): 169-172.
    JIANG Shujuan, XU Baowen. Exception handling: an approach to improving software robustness[J]. Journal of Computer Science, 2004, 30(9):169-172.
    Mao Cheng-Ying, Lu Yan-Sheng. Improving the robustness and reliability of object-oriented programs through exception analysis and testing[C]//Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems. Shanghai, 2005: 432-439.
    Oh N, Shirvani P P, McCluskey E J. Control-flow checking by software signatures[J]. IEEE Transactions on Reliability, 2002, 51(1): 111-122.
    Koopman P, DeVale J. The exception handling effectiveness of POSIX operating systems[J]. IEEE Transactions onSSoftware Engineering, 2000, 26(9): 837-848.
    Ryder B G. Constructing the call graph of a program[J]. IEEE Transactions on Software Engineering, 1979, (3): 216-226.
    引证文献
    网友评论
    网友评论
    分享到微博
    发 布
引用本文

江建慧,吴捷程,孙亚.一种基于异常控制流的错误程序行为分析方法[J].同济大学学报(自然科学版),2018,46(07):0972~0981

复制
分享
文章指标
  • 点击次数:1352
  • 下载次数: 2772
  • HTML阅读次数: 833
  • 引用次数: 0
历史
  • 收稿日期:2017-07-17
  • 最后修改日期:2018-05-21
  • 录用日期:2018-04-08
  • 在线发布日期: 2018-08-08
文章二维码