Selecting Software Test Data Using Data Flow Information
IEEE Transactions on Software Engineering
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
An Applicable Family of Data Flow Testing Criteria
IEEE Transactions on Software Engineering
Properties of data flow frameworks: a unified model
Acta Informatica
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
Set-based analysis of ML programs
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Call graph construction in object-oriented languages
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Refining data flow information using infeasible paths
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Programming language pragmatics
Programming language pragmatics
Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
Practicing JUDO: Java under dynamic optimizations
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Analysis and Testing of Programs with Exception Handling Constructs
IEEE Transactions on Software Engineering
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Points-to analysis for Java using annotated constraints
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A study of exception handling and its dynamic optimization in Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A framework for call graph construction algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Art of Software Testing
Parameterized object sensitivity for points-to and side-effect analyses for Java
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Fault Injection and Dependability Evaluation of Fault-Tolerant Systems
IEEE Transactions on Computers
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Fault Injection Based on a Partial View of the Global State of a Distributed System
SRDS '99 Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems
Criteria for Testing Exception-Handling Constructs in Java Programs
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
DOCTOR: an integrated software fault injection environment for distributed real-time systems
IPDS '95 Proceedings of the International Computer Performance and Dependability Symposium on Computer Performance and Dependability Symposium
Generalized aliasing as a basis for program analysis tools
Generalized aliasing as a basis for program analysis tools
Static analysis to support the evolution of exception structure in object-oriented systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Precise and practical flow analysis of object-oriented software
Precise and practical flow analysis of object-oriented software
An uncaught exception analysis for Java
Journal of Systems and Software
Dimensions of precision in reference analysis of object-oriented programming languages
CC'03 Proceedings of the 12th international conference on Compiler construction
Scaling Java points-to analysis using SPARK
CC'03 Proceedings of the 12th international conference on Compiler construction
Parameterized object sensitivity for points-to analysis for Java
ACM Transactions on Software Engineering and Methodology (TOSEM)
Robustness Testing of Java Server Applications
IEEE Transactions on Software Engineering
Fault-Based Testing of Database Application Programs with Conceptual Data Model
QSIC '05 Proceedings of the Fifth International Conference on Quality Software
Search-based testing of service level agreements
Proceedings of the 9th annual conference on Genetic and evolutionary computation
Applying Concept Analysis to User-Session-Based Testing of Web Applications
IEEE Transactions on Software Engineering
Exceptional situations and program reliability
ACM Transactions on Programming Languages and Systems (TOPLAS)
On quality assurance of web services in agile projects: an experience report
Proceedings of the 3rd ACM workshop on Software engineering for pervasive services
Service-Oriented Architectures Testing: A Survey
Software Engineering
Mining exception-handling rules as sequence association rules
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Exception analysis and points-to analysis: better together
Proceedings of the eighteenth international symposium on Software testing and analysis
Exhaustive testing of exception handlers with enforcer
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
An extensible technique for high-precision testing of recovery code
USENIXATC'10 Proceedings of the 2010 USENIX conference on USENIX annual technical conference
Towards automated robustness testing of BPEL orchestrators
Proceedings of the 12th International Conference on Computer Systems and Technologies
PREFAIL: a programmable tool for multiple-failure injection
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Efficient Testing of Recovery Code Using Fault Injection
ACM Transactions on Computer Systems (TOCS)
A simple approach for testing web service based applications
IICS'05 Proceedings of the 5th international conference on Innovative Internet Community Systems
Exception-Handling bugs in java and a language extension to avoid them
Advanced Topics in Exception Handling Techniques
Enforcer – efficient failure injection
FM'06 Proceedings of the 14th international conference on Formal Methods
Amplifying tests to validate exception handling code
Proceedings of the 34th International Conference on Software Engineering
A systematic review of software robustness
Information and Software Technology
Efficient and effective handling of exceptions in java points-to analysis
CC'13 Proceedings of the 22nd international conference on Compiler Construction
Hi-index | 0.00 |
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.