Abstract
Imperfect debugging of software development faults (called primary faults) will lead to the creation of new software faults denoted secondary faults. Secondary faults are typically fewer in numbers than the initial primary faults and are introduced late in the testing phase. As such it is unlikely that they will be observed during testing and their failure characteristics are unlikely to be assessed accurately. This is an issue since they may possibly display different propagation characteristics than the primary faults that led to their creation. In particular their location will be distributed non-uniformly around the fault being fixed. This paper proposes a methodology to assess the impact of secondary faults on reliability-based on predicting their possible types and locations. The methodology combines a fault taxonomy, code mutation and Bayesian statistics. The methodology is applied to portions of the application software code of a nuclear reactor protection system. This paper concludes with a discussion on the integration of the results within existing Software Reliability Growth Models.
Similar content being viewed by others
References
Jelinski, Z and Moranda, P (1972) Software Reliability Research. Statistical Computer Performance Evaluation, Academic. Press, New York, pp. 465–484
Goel AL, Okumoto T (1979) Time-dependent error detection rate model for software reliability and other performances measures. IEEE Trans Reliab 28:206–211
Goel AL (1985) Software reliability models: assumptions, limitations and applicability. IEEE Trans Reliab SE-II: 1411–1423
Ohba M, Chou X (1989) Does Imperfect Debugging Affect Software Reliability Growth? in The 11th International Conference on Software Engineering, Pittsburg, PA, pp. 237–244
Littlewood B (1981) Stochastic reliability-growth: A model for fault removal in computer programs and hardware designs. IEEE Trans Reliab 30(4):313–320
Yamada S, Tokuno K, Osaki S (1992) Imperfect debugging models with fault introduction rate for software reliability assessment. Int J Sys Sci 23(12)
Zeephongsekul P, Xia G, Kumar S (1994) Softwarereliability growth model: primary-failures generate secondary-faults under imperfect debugging. IEEE Trans Reliab 43(3):408–413
Kapur PK, Younes S (1996) Modelling an imperfect debugging phenomenon in software reliability. Microelectron Reliab 36(5):645–650
Pham H, Nordman L, Zhang X (1999) A general imperfectsoftware-debugging model with S-shaped fault-detection rate. IEEE Trans Reliab 48(2):169–175
Gokhale SS (2004) Software failure rate and reliability incorporating repair policies. in Proceeding of the 10th International Symposium on Software Metrics
Lyu MR (1996) Ed., Handbook of Software Reliability Engineering. New York: McGraw-Hill
Gokhale SS, Philip T, Marinos PN (1996) Non-homogeneous Markov software reliability model with imperfect repair. in Proceedings IEEE International Computer Performance and Dependability Symposium pp. 262–270
Levendel Y (1990) Reliability analysis of large software systems: defect data modeling. IEEE Trans Reliab 16(2): 141–152
Jones C (1996) Software defect-removal efficiency. Computer 29:94–95
Jones C (2008) Software Engineering: The State of the Art in 2008. Software Productivity Research LLC
Zeephongsekul P (1996) Reliability growth of a software model under imperfec debugging and generation of errors. Microelectron Reliab 36(10):1475–1482
Knuth D (1989) The error of Tex. Software: Pract and Exp 19:607–685
Johnson WL, Soloway E, Cutler B, Draper S (1983) Bug Catalogue I. Yale University
Ploski J (2007) Research Issues in Software Fault Categorization. ACM Sigsoft Software Engineering Notes 32:8
James C (1998) Errors in Language Learning and Use: exploring error analysis. London, UK: Longman: Pearson Education
Park RE (2001) Software Size Measurement: A Framework for Counting Source Statements. Software Engineering Institute, Camegie-Mellon University
Wu L (1997) Application of Functional Modeling to Software Reliability in Materials and Nuclear Engineering. Department of Mechanical Engineering, University of Maryland-College Park
Schank RC, Rieger CJ (1974) Inference and the computer understanding of natural language. Artif Intell 5:373–412
Allen J (1987) Natural language understanding. Redwood City, CA, USA: Benjamin/Cummings Publishing Company
Offutt AJ (1994) Practical system for mutation testing: help for the common programmer. in Proceeding of the International Test Conference, Altoona, PA, pp. 824–830
Spohrer J (1985) Bug Catalogue: II≈IV. Yale University
Voas JM (1992) PIE: A dynamic failure-based technique. IEEE Trans Software Eng 18:717–727
Li M et al. (2004) Validation of a Methodology for Assessing Software Reliability. in Proceeding of the 15th International Symposium on Software Reliability Engineering, Saint-Malo, France, pp. 66–76
Smidts CS, Li M (2004) Preliminary Validation of a Methodology for Assessing Software Quality. US Nuclear Regulatory Commission NUREG/CR-6848
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Shi, Y., Smidts, C. Predicting the types and locations of faults introduced during an imperfect repair process and their impact on reliability. Int J Syst Assur Eng Manag 1, 36–43 (2010). https://doi.org/10.1007/s13198-010-0009-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-010-0009-6