loading...
 This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
EPIC: Profiling the Propagation and Effect of Data Errors in Software
May 2004 (vol. 53 no. 5)
pp. 512-530
We present an approach for analyzing the propagation and effect of data errors in modular software enabling the profiling of the vulnerabilities of software to find 1) the modules and signals most likely exposed to propagating errors and 2) the modules and signals which, when subjected to error, tend to cause more damage than others from a systems operation point-of-view. We discuss how to use the obtained profiles to identify where dependability structures and mechanisms will likely be the most effective, i.e., how to perform a cost-benefit analysis for dependability. A fault-injection-based method for estimation of the various measures is described and the software of a real embedded control system is profiled to show the type of results obtainable by the analysis framework.

[1] 512 J. Arlat et al., "Fault Injection for Dependability Validation: A Methodology and Some Applications," IEEE Trans. Software Eng., Feb. 1990, pp. 166-182.[2] R. Chillarege and N.S. Bowen, “Understanding Large System Failures—A Fault Injection Experiment,” Proc. IEEE Int'l Symp. Fault-Tolerant Computing, pp. 356–363, June 1989.[3] J. Christmansson, M. Hiller, and M. Rimén, An Experimental Comparison of Fault and Error Injection Proc. Ninth Int'l Symp. Software Reliability Eng., (ISSRE '98), pp. 369-378, 1998.[4] Gy. Csertán, A. Pataricza, and E. Selenyi, Dependability Analysis in HW-SW Codesign Proc. Int'l Computer Performance and Dependability Symp. (IPDS '95), pp. 306-315, 1995.[5] M. Cukier, D. Powell, and J. Arlat, “Coverage Estimation Methods for Stratified Fault-Injection,” IEEE Trans. Computers, vol. 48, no. 7, pp. 707-723, July 1999.[6] J.C. Fabre et al., "Assessment of COTS Microkernels by Fault Injection," Proc. 7th IFIP Working Conf. Dependable Computing for Critical Applications (DCCA-7), IEEE Press, 1999, pp. 25-44.[7] H. Fujiwara and T. Shimono, "On the Acceleration of Test Generation Algorithms," Proc. 13th Int'l Symp. Fault-Tolerant Computing, IEEE CS Press, 1983, pp. 98-105.[8] S.J. Geoghegan and D. Avresky, Method for Designing and Placing Check Sets Based on Control Flow Analysis of Programs Proc. Int'l Symp. Software Reliability Eng. (ISSRE '96), pp. 256-265, 1996.[9] P. Goel, An Implicit Enumeration Algorithm to Generate Tests for Combinational Logic Circuits IEEE Trans. Computers, vol. 30, no. 3, pp. 215-222, Mar. 1981.[10] J. Güthoff and V. Sieh, Combining Software-Implemented and Simulation-Based Fault Injection into a Single Fault Injection Method Proc. 25th Int'l Symp. Fault-Tolerant Computing (FTCS-25), pp. 196-206, 1995.[11] M. Hiller, “Executable Assertions for Detecting Data Errors in Embedded Control Systems,” Proc. Int'l Conf. Dependable Systems and Networks (DSN 2000), pp. 24-33, June 2000.[12] M. Hiller, A. Jhumka, and N. Suri, An Approach for Analysing the Propagation of Data Errors in Software Proc. Int'l Conf. Dependable Systems and Networks (DSN 2001), pp. 161-170, 2001.[13] M. Hiller, A. Jhumka, and N. Suri, On the Placement of Software Mechanisms for Detection of Data Errors Proc. Int'l Conf. Dependable Systems and Networks (DSN 2002), pp. 135-144, 2002.[14] M. Hiller, A. Jhumka, and N. Suri, PROPANE: An Environment for Examining the Propagation of Errors in Software Proc. Int'l Symp. Software Testing and Analysis (ISSTA '02), pp. 81-85, 2002.[15] R.K. Iyer and D. Tang, Experimental Analysis of Computer System Dependability Fault-Tolerant Computer System Design, D.K. Pradhan, ed, chapter 5, Prentice Hall, 1996.[16] J. Karlsson, P. Folkesson, J. Arlat, Y. Crouzet, G. Leber, and J. Reisinger, Application of Three Physical Fault Injection Techniques to the Experimental Assessment of the MARS Architecture Proc. Dependable Computing for Critical Applications (DCCA-5), pp. 267-287, 1995.[17] J.C. Laprie, Dependable Computing and Fault Tolerance: Concepts and Terminology Proc. 15th IEEE Int'l Symp. Fault-Tolerant Computing (FTCS-15), pp. 2-11, June 1985.[18] N.G. Leveson, S.S. Cha, and J.C. Knight, T.J. Shimeall, “The Use of Self Checks and Voting in Software Detection: An Empirical Study,” IEEE Trans. Software Eng., vol. 16, pp. 432-443, 1990.[19] A. Mahmood, D.M. Andrews, and E.J. McCluskey, Executable Assertions and Flight Software Proc. Digital Avionics Systems Conf. (DASC-6), pp. 346-351, 1984.[20] H. Madeira, D. Costa, and M. Vieira, On the Emulation of Software Faults by Software Fault Injection Proc. Int'l Conf. Dependable Systems and Networks (DSN-2000), pp. 417-426, 2000.[21] C.C. Michael and R.C. Jones, On the Uniformity of Error Propagation in Software Proc. Int'l Conf. Computer Assurance (COMPASS '97), pp. 68-76, 1997.[22] L. Morell, B. Murrill, and R. Rand, Perturbation Analysis of Computer Programs Proc. Int'l Conf. Computer Assurance (COMPASS'97), pp. 77-87, 1997.[23] D. Powel, E. Martins, J. Arlat, and Y. Crouzet, “Estimators for Fault Tolerance Coverage Evaluation,” IEEE Trans. Computers, vol. 44, no. 2, pp. 261-274, Feb. 1995.[24] C. Rabéjac, J.-P. Blanquart, and J.-P. Queille, “Executable Assertions and Timed Traces for On-Line Software Error Detection,” Proc. 26th Int'l Symp. Fault-Tolerant Computing (FTCS-26), pp. 138-147, 1996.[25] M. Rimen, J. Ohlsson, and J. Torin, "On Microprocessor Error Behavior Modeling," Proc. 24th Int'l Symp. Fault-Tolerant Computing FTCS-24,Austin, Texas, pp. 76-85, 1994.[26] J.P. Roth, Computer Logic, Testing and Verification. Computer Press, 1980.[27] S.H. Saib, Executable Assertions An Aid To Reliable Software Proc. 11th Asilomar Conf. Circuits, Systems, and Computers, pp. 277-281, 1978.[28] F. Salles, M. Rodríguez, J.-C. Fabre, and J. Arlat, “Metakernels and Fault Containment Wrappers,” Proc. 29th IEEE Int'l Symp. Fault-Tolerant Computing (FTCS-29), pp. 22-29, 1999.[29] K.G. Shin and T.-H. Lin, "Modeling and Measurement of Error Propagation in a Multi-Module Computing System," IEEE Trans. Computers, vol. 37, no. 9, pp. 1,053-1,066, Sept. 1988.[30] D. Smith, B.W. Johnson, and J.A. Profeta III, “System Dependability Evaluation via a Fault List Generation Algorithm,” IEEE Trans. Computers, vol. 45, no. 8, pp. 974-979, Aug. 1996.[31] A. Steininger and C. Scherrer, “On Finding an Optimal Combination of Error Detection Mechanisms Based on Results of Fault Injection Experiments,” Proc. 27th Ann. Int'l Symp. Fault-Tolerant Computing (FTCS-27), pp. 238-247, 1997.[32] US Air Force - 99, MIL-SPEC: Aircraft Arresting System BAK-12A/E32A; Portable, Rotary Friction MIL-A-38202C, Notice 1, US Dept. of Defense, Sept. 1986.[33] J. Voas and L.J. Morell, Propagation and Infection Analysis (PIA) Applied to Debugging Proc. Southeastcon '90 Conf., pp. 379-383, 1990.[34] J. Voas, “PIE: A Dynamic Failure-Based Technique,” IEEE Trans. Software Eng., vol. 18, no. 8, pp. 717–727, Aug. 1992.[35] J. Voas, F. Charron, and L. Beltracchi, "Error Propagation Analysis Studies in a Nuclear Research Code," Proc. IEEE Aerospace, IEEE Aerospace and Electronics Systems Soc.,Manhattan Beach, Calif., 1998.

Index Terms:
Data error propagation, data error effect, software profiling, fault injection, dependability assessment.
Citation:
Martin Hiller, Arshad Jhumka, Neeraj Suri, "EPIC: Profiling the Propagation and Effect of Data Errors in Software," IEEE Transactions on Computers, vol. 53, no. 5, pp. 512-530, May 2004, doi:10.1109/TC.2004.1275294
Usage of this product signifies your acceptance of the Terms of Use.