|
ABSTRACT
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) in Java web services 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 (i) identifies the exception-flow 'def-uses' to be tested in this manner, (ii) determines the kind of fault to be requested at a program point, and (iii) 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 Java web services benchmarks.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
2
|
|
| |
3
|
|
 |
4
|
David F. Bacon , Peter F. Sweeney, Fast static analysis of C++ virtual function calls, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.324-341, October 06-10, 1996, San Jose, California, United States
|
| |
5
|
|
 |
6
|
|
 |
7
|
Ramkrishna Chatterjee , Barbara G. Ryder , William A. Landi, Relevant context inference, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.133-146, January 20-22, 1999, San Antonio, Texas, United States
[doi> 10.1145/292540.292554]
|
 |
8
|
Jong-Deok Choi , David Grove , Michael Hind , Vivek Sarkar, Efficient and precise modeling of exceptions for the analysis of Java programs, Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.21-31, September 06-06, 1999, Toulouse, France
|
 |
9
|
Michał Cierniak , Guei-Yuan Lueh , James M. Stichnoth, Practicing JUDO: Java under dynamic optimizations, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.13-26, June 18-21, 2000, Vancouver, British Columbia, Canada
|
| |
10
|
|
 |
11
|
David Grove , Greg DeFouw , Jeffrey Dean , Craig Chambers, Call graph construction in object-oriented languages, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.108-124, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
12
|
S. Dawson, F. Jahanian, and T. Mitton. ORCHESTRA: A Fault Injection Environment for Distributed Systems. In Proc. 26th Int. Symp. on Fault Tolerant Computing(FTCS-26), pages 404--414, Sendai, Japan, June 1996.
|
| |
13
|
|
| |
14
|
|
| |
15
|
C. Fu, R. P. Martin, K. Nagaraja, T. D. Nguyen, B. G. Ryder, and D. Wonnacott. Compiler-directed program-fault coverage for highly available Java internet services. In Proceedings of the International Conference on Dependable Systems and Networks (DSN 2003), June 2003.
|
 |
16
|
|
| |
17
|
R. G. Hamlet. Testing programs with the aid of a compiler. IEEE Transactions on Software Engineering, 3(4):279--290, July 1977.
|
| |
18
|
|
 |
19
|
|
| |
20
|
|
| |
21
|
G. A. Kanawati, N. A. Kanawati, and J. A. Abraham. FERRARI: A Tool for the Validation of System Dependability Properties. In Proc. 22nd Int. Symp. on Fault Tolerant Computing(FTCS-22), pages 336--344, Boston, Massachusetts, 1992. IEEE Computer Society Press.
|
| |
22
|
S. Lee, B.-S. Yang, S. Kim, S. Park, S.-M. Moon, K. Ebcioglu, and E. Altman. Efficient Java exception handling in just-in-time compilation.
|
| |
23
|
O. Lhoták and L. Hendren. Scaling Java points-to analysis using Spark. LNCS 2622, pages 153--169, 2003.
|
| |
24
|
X. Li, R. P. Martin, K. Nagaraja, T. D. Nguyen, and B. Zhang. Mendosus: A SAN-Based Fault-Injection Test-Bed for the Construction of Highly Available Network Services. In Proceedings of the 1st Workshop on Novel Uses of System Area Networks (SAN-1), Cambridge, MA, Jan. 2002.
|
| |
25
|
|
| |
26
|
|
 |
27
|
|
| |
28
|
The Muffin world wide web filtering system. See http://muffin.doit.org/.
|
| |
29
|
|
| |
30
|
|
 |
31
|
Takeshi Ogasawara , Hideaki Komatsu , Toshio Nakatani, A study of exception handling and its dynamic optimization in Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.83-95, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
32
|
M. J. Radwin. The java network file system. See http://www.radwin.org/michael/projects/jnfs/.
|
| |
33
|
|
 |
34
|
|
 |
35
|
Atanas Rountev , Ana Milanova , Barbara G. Ryder, Points-to analysis for Java using annotated constraints, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.43-55, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
36
|
B. G. Ryder. Dimensions of precision in reference analysis of object-oriented programming languages. In Proceedings of the Twelveth International Conference on Compiler Construction, pages 126--137, April 2003. invited paper.
|
| |
37
|
M. Sable. Soot: a java optimization framework. See http://www.sable.mcgill.ca/soot/.
|
| |
38
|
|
| |
39
|
Z. Segall, D. Vrsalovic, D. Siewiorek, D. Yaskin, J. Kownacki, J. Barton, D. Rancey, A. Robinson, and T. Lin. FIAT -- Fault Injection based Automated Testing environment. In Proc. 18th Int. Symp. on Fault-Tolerant Computing (FTCS-18), pages 102--107, Tokyo, Japan, 1988. IEEE Computer Society Press.
|
| |
40
|
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, pages 189--234. 1981.
|
| |
41
|
|
| |
42
|
|
| |
43
|
|
| |
44
|
S. Sinha, A. Orso, and M. J. Harrold. Automated support for development, maintenance, and testing in the presence of implicit control flow. Technical Report GIT-CC-03-48, College of Computing, Georgia Institute of Technology, September 2003.
|
| |
45
|
A. L. Souter and L. L. Pollock. Type infeasible call chains. In Proceedings of the IEEE International Workshop on Source Code Analysis and Manipulation, 2001.
|
| |
46
|
A. L. Souter and L. L. Pollock. Characterization and automatic identification of type infeasible call chains. Information and Software Technology, 44(13):721--732, October 2002.
|
| |
47
|
Specbench.org. Java client/server benchmarks.
|
 |
48
|
Matt Welsh , David Culler , Eric Brewer, SEDA: an architecture for well-conditioned, scalable internet services, Proceedings of the eighteenth ACM symposium on Operating systems principles, October 21-24, 2001, Banff, Alberta, Canada
|
CITED BY 8
|
|
|
|
|
|
|
|
Massimiliano Di Penta , Gerardo Canfora , Gianpiero Esposito , Valentina Mazza , Marcello Bruno, Search-based testing of service level agreements, Proceedings of the 9th annual conference on Genetic and evolutionary computation, July 07-11, 2007, London, England
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|