Abstract
Fault injection plays a critical role in the verification of fault-tolerant mechanism, software mutation testing and dependability benchmark for computer systems. Derived from the common java bug patterns from Findbugs, we propose a new scheme for emulation of software faults at the java bytecode level, and have developed a preliminary framework called JBugInjector to support fault injection application. Different from the traditional Orthogonal Defect Classification of faults, we analyze the peculiar bug patterns in java program development, and introduce these faults and bad practices into the target system to construct a scenario closer to reality. Through demonstration with simple examples, we find it possible to emulate many faults by mutation at bytecode level. With this method, fault injection without the source code of target application is enabled to assist dependability benchmark.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Chillarege, R., Bowen, N.: Understanding large systems failures - A fault injection experiment. In: Proc. of the 19th Int. Symp. on Fault-Tolerant Computing, Chicago, pp. 356–363 (1989)
Madeira, H., Kanoun, K., Arlat, J., et al.: Conceptual framework, deliverable CF2, preliminary dependability benchmark framework. DBench Project, IST 2000-25425 (2001)
Findbugs, http://findbugs.sourceforge.net/
Barton, J.H., Czeck, E.W., Segall, Z.Z., et al.: Fault Injection Experiments Using FIAT. IEEE Transactions on Computers 39(4), 575–582 (1990)
Kao, W.-L.: FINE: A fault injection and monitoring environment for tracing the UNIX system behavior under faults. IEEE Transactions on Software Engineering 19(11), 1105–1118 (1993)
Kanawati, G., Kanawati, N., Abraham, J.: FERRARI: A Tool for the Validation of System Dependability Properties. In: Proc. of the 22nd IEEE Int. Symp. on Fault Tolerant Computing, Boston, pp. 336–344 (1992)
Carreira, J., Madeira, H., Silva, J.G.: Xception: A Technique for the experimental evaluation of dependability in modern computers. IEEE Transactions on Software Engineering 24(2), 125–136 (1998)
Duraes, J., Madeira, H.: Definition of software fault emulation operators: A field data study. In: Proc. of Int. Conf. on Dependable Systems and Networks, San Francisco, pp. 105–114 (2003)
Leme, N.G.M., Martins, E., Rubira, C.M.F.: A Software Fault Injection Pattern System. Technical Report of Institute of Computing, Unicamp (2002)
Martins, E., Rubira, C.M.F., Leme, N.G.M.: Jaca: A Reflective Fault Injection Tool Based on Patterns. In: Proc. of International Conference on Dependable Systems and Networks (DSN 2002), pp. 483–487 (2002)
Allen, E.: Bug patterns in Java, 2nd edn. Apress (2002)
Hovemeyer, D., Pugh, W.: Finding bugs is easy. ACM SIGPLAN Notices 39(12), 92–106 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag GmbH Berlin Heidelberg
About this chapter
Cite this chapter
Zheng, Q. (2012). Java Fault Emulation and a Preliminary Fault Injection Framework. In: Jin, D., Lin, S. (eds) Advances in Electronic Commerce, Web Application and Communication. Advances in Intelligent and Soft Computing, vol 149. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28658-2_36
Download citation
DOI: https://doi.org/10.1007/978-3-642-28658-2_36
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-28657-5
Online ISBN: 978-3-642-28658-2
eBook Packages: EngineeringEngineering (R0)