Issue No. 04 - April (2005 vol. 31)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2005.51
Ana Milanova , IEEE Computer Society
Barbara Gershon Ryder , IEEE Computer Society
David G. Wonnacott , IEEE Computer Society
This paper presents a new compile-time analysis that enables a testing methodology for white-box coverage testing of error recovery code (i.e., exception handlers) of server applications written in Java, using compiler-directed fault injection. The analysis allows compiler-generated instrumentation to guide the fault injection and to record the recovery code exercised. (An injected fault is experienced as a Java exception.) The analysis 1) identifies the exception-flow "def-uses” to be tested in this manner, 2) determines the kind of fault to be requested at a program point, and 3) finds appropriate locations for code instrumentation. The analysis incorporates refinements that establish sufficient context sensitivity to ensure relatively precise def-use links and to eliminate some spurious def-uses due to demonstrably infeasible control flow. A runtime test harness calculates test coverage of these links using an exception def-catch metric. Experiments with the methodology demonstrate the utility of the increased precision in obtaining good test coverage on a set of moderately sized server benchmarks.
Index Terms- Reliability, def-use testing, Java, exceptions, test coverage metrics.
C. Fu, A. Milanova, B. G. Ryder and D. G. Wonnacott, "Robustness Testing of Java Server Applications," in IEEE Transactions on Software Engineering, vol. 31, no. , pp. 292-311, 2005.