基于程序不变量计算软件可靠性
作者:
基金项目:

国家自然科学基金(61210004,61170015)


Computing Software Reliability Based on Program Invariants
Author:
Fund Project:

National Natural Science Foundation of China (61210004, 61170015)

  • 摘要
  • | |
  • 访问统计
  • |
  • 参考文献 [39]
  • |
  • 相似文献 [20]
  • |
  • 引证文献
  • | |
  • 文章评论
    摘要:

    现有的计算软件可靠性的方法采用测试的输入/输出结果,但这些数据并不能真实地反映软件内部的真实行为,如测试中会出现假性正确的情况以及测试不能显示一个输入有多个错误的输出情况.试图通过程序不变量来计算软件的可靠性,程序不变量可以描述程序的性质.首先选取测试用例集,动态地获取程序不变量,再从这些不变量中提取失效数据,最后,基于Nelson模型计算软件的可靠性.作为实验,对西门子程序包计算软件的可靠性.采用随机、分支覆盖和分块覆盖这3种不同的测试方法得到程序不变量,据此计算程序的可靠性.为了检查结果的可行性,采用传统方法计算这些软件的可靠性.两种可靠性比较后显示:它们的差别很小,而且不依赖于对测试方法的选择.通过进一步的方差分析得知,用所提出的方法计算的可靠性比用现有的方法计算的可靠性具有更小的波动,即更平稳.因此,前者更接近系统的真实可靠性.结论说明,可用程序不变量来计算软件的可靠性.

    Abstract:

    Existing methods to compute software reliability use the testing data of input and output. However, the data cannot truly reflect the behaviors of the software. For examples, it is possible that testing has false positive outputs, and one input with multiple faults cannot be revealed in the testing. This paper attempts to use program invariants to compute software reliability. First, test cases are selected to dynamically obtain program invariants. Then, the failure data from these invariants are extracted. Finally, the software reliabilities is computed based on Nelson model. In experiments, the reliabilities of the software in the Siemens set are computed. Program invariants are obtained by applying three different testing methods:random, branch coverage and block coverage. The reliabilities are computed next based on these invariants. To check the correctness of the results, software reliabilities are also computed with traditional methods. A comparison shows that the differences between two types of reliabilities are small no matter which testing method is selected. Further variance analysis shows that reliabilities by the proposed method have lower fluctuation, i.e., more stable, than those with existing methods, thus is closer to the real reliability of the system. This suggests that software reliability can be computed based on program invariants.

    参考文献
    [1] Yamada S. Software Reliability Modeling:Fundamentals and Applications. Tokyo:Springer-Verlag, 2014. 6-15.
    [2] Wood A. Software reliability growth models. Technical Report 96.1, No.130056, Tandem Computers, 1996.
    [3] Goel AL, Okumoto K. Time-Dependent error-detection rate model for software and other performance measures. IEEE Trans. on Reliability, 1979,28:206-211.
    [4] Misra PN. Software reliability analysis. IBM Systems Journal, 1983,22:262-270.
    [5] Ohba M, Chou XM. Does imperfect debugging affect software reliability growth? In:Druffel LE, ed. Proc. of the ICSE'89. Pittsburg, 1989. 237-244.
    [6] Farr W. Software Reliability Modeling Survey. In:Lyu MR, ed. Handbook of Software Reliability Engineering. New York:IEEE Computer Society Press, 1996. 71-117.
    [7] Chen M, Lyu MR, Wong WE. Effect of code coverage on software reliability measurement. IEEE Trans. on Reliability, 2001,50(2):165-170.
    [8] Zhao J, Zhang RB, Gu GC. Study on software reliability growth model considering failure dependency. Chinese Journal of Computers, 2007,30(10):1713-1720(in Chinese with English abstract).
    [9] Li HF, Wang SQ, Liu C, Zheng J, Li Z. Software reliability model considering both testing effort and testing coverage. Ruan Jian Xue Bao/Journal of Software, 2013,24(4):749-760(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4257.htm[doi:10.3724/SP.J.1001.2013.04257]
    [10] Horgan JR, Mathur AP. Software Testing and Reliability. In:Lyu MR, ed. Handbook of Software Reliability Engineering. New York:IEEE Computer Society Press, 1996. 531-566.
    [11] Littlewood B. Software reliability modeled for modular program structure. IEEE Trans. on Reliability, 1979,28(3):241-246.
    [12] Cheung RC. A user-oriented software reliability model. IEEE Trans. on Software Engineering, 1980,6(2):118-125.
    [13] Dolbec J, Shepard T. A component based software reliability model. In:Bockus D, Bennet K, eds. Proc. of the Conf. of the Center for Advanced Studies on Collaborative Research. ACM Press, 1995. 19-29.
    [14] Wang WL, Wu Y, Chen MH. An architecture-based software reliability model. In:Proc. of the 1999 Pacific Rim Int'l Symp. on Dependable Computing. IEEE, 1999. 143-150.
    [15] Hamlet D. Are we testing for true reliability? IEEE Software, 1992,9(4):21-27.
    [16] Laprie JC, Kanoun K. Software Reliability and System Reliability. In:Lyu MR, ed. Handbook of Software Reliability Engineering. New York:IEEE Computer Society Press, 1996. 27-69.
    [17] Mao XG, Deng YJ. A general model for component-based software reliability. Ruan Jian Xue Bao/Journal of Software, 2004,15(1):27-32(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/15/27.htm
    [18] Hou CY, Cui G, Liu HW. Rate-Based component software reliability process simulation. Ruan Jian Xue Bao/Journal of Software, 2011,22(11):2749-2759(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3930.htm[doi:10.3724/SP.J.1001. 2011.03930]
    [19] Nelson E. Estimating software reliability from test data. Microelectronics Reliability, 1978,17(1):67-73.
    [20] Nguyen EA, Rexach CF, Thorpe DP, Walther AE. The importance of data quality in software reliability modeling. In:Proc. of the 21st Int'l Symp. on Software Reliability Engineering(ISSRE). IEEE, 2010. 220-228.
    [21] Buhnova B, Chren S, Fabriková L. Failure data collection for reliability prediction models:A survey. In:Seinturier L, Bures T, McGregor JD, eds. Proc. of the 10th Int'l ACM SIGSOFT Conf. on Quality of Software Architectures. ACM Press, 2014. 83-92.
    [22] Rapps S, Weyuker EJ. Selecting software test data using data flow information. IEEE Trans. on Software Engineering, 1985,(4):367-375.
    [23] Dimov A, Chandran SK, Punnekkat S. How do we collect data for software reliability estimation. In:Rachev B, Smrikarov A, eds. Proc. of the 11th Int'l Conf. on Computer Systems and Technologies and Workshop for Ph.D. Students in Computing on Int'l Conf. on Computer Systems and Technologies. ACM Press, 2010. 155-160.
    [24] Chen MH, Mathur AP, Rego VJ. Effect of testing techniques on software reliability estimates obtained using a time-domain model. IEEE Trans. on Reliability, 1995,44(1):97-103.
    [25] Pietrantuono R, Russo S, Trivedi KS. Online monitoring of software system reliability. In:Proc. of the 8th European Dependable Computing Conf. IEEE, 2010. 209-218.
    [26] Ding ZH, Chen MH, Li XX. Online reliability computing of composite services based on program invariants. Information Sciences, 2014,264:340-348.
    [27] Hangal S, Lam MS. Tracking down software bugs using automatic anomaly detection. In:Proc. of the 24th Int'l Conf. on Software Engineering. ACM Press, 2002. 291-301.
    [28] Sahoo SK, Li M, Ramachandran P, Adve SV, Adve VS, Zhou YY. Using likely program invariants to detect hardware errors. In:Proc. of the 38th Int'l Conf. on Dependable Systems and Networks(DSN). IEEE, 2008. 70-79.
    [29] Ernst MD, Cockrell J, Griswold WG, Notkin D. Dynamically discovering likely program invariants to support program evolution. IEEE Trans. on Software Engineering, 2001,27(2):99-123.
    [30] Ding ZH, Zhang K, Hu JL. A rigorous approach towards test case generation. Information Sciences, 2008,178:4057-4079.
    [31] Gupta N. Generating test data for dynamically discovering likely program invariants. In:Proc. of the ICSE 2003 Workshop on Dynamic Analysis. 2003. 21-24.
    [32] Do H, Elbaum S, Rothermel G. Supporting controlled experimentation with testing techniques:An infrastructure and its potential impact. Empirical Software Engineering, 2005,10(4):405-435.
    [33] Jeske DR, Zhang XM, Pham L. Adjust software failure rates that are estimated from test data. IEEE Trans. on Reliability, 2005, 54(1):107-114.
    [34] Zhang XM, Teng XL, Pham H. Considering fault removal efficiency in software reliability assessment. IEEE Trans. on Systems, Man, and Cybernetics, Part A:Systems and Humans, 2003,33(1):114-120.
    附中文参考文献:
    [8] 赵靖,张汝波,顾国昌.考虑故障相关的软件可靠性增长模型研究.计算机学报,2007,30(10):1713-1720.
    [9] 李海峰,王栓奇,刘畅,郑军,李霞.考虑测试工作量与覆盖率的软件可靠性模型.软件学报,2013,24(4):749-760. http://www.jos.org.cn/1000-9825/4257.htm[doi:10.3724/SP.J.1001.2013.04257]
    [17] 毛晓光,邓勇进.基于构件软件的可靠性通用模型.软件学报,2004,15(1):27-32. http://www.jos.org.cn/1000-9825/15/27.htm
    [18] 侯春燕,崔刚,刘宏伟.基于率的构件软件可靠性过程仿真.软件学报,2011,22(11):2749-2759. http://www.jos.org.cn/1000-9825/3930.htm[doi:10.3724/SP.J.1001.2011.03930]
    网友评论
    网友评论
    分享到微博
    发 布
引用本文

周远,丁佐华.基于程序不变量计算软件可靠性.软件学报,2015,26(12):3075-3087

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

京公网安备 11040202500063号