The design and implementation of a grammar-based data generator
Software—Practice & Experience
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using production grammars in software testing
Proceedings of the 2nd conference on Domain-specific languages
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Remote Procedure Calls and Java Remote Method Invocation
IEEE Concurrency
Generating Test Data with Enhanced Context-Free Grammars
IEEE Software
Automated Software Engineering
Interface Compatibility Checking for Software Modules
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Using attributed grammars to test designs and implementations
ICSE '81 Proceedings of the 5th international conference on Software engineering
Test input generation with java PathFinder
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Verifiable Concurrent Programming Using Concurrency Controllers
Proceedings of the 19th IEEE international conference on Automated software engineering
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
Compilers: Principles, Techniques, and Tools (2nd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
Interface grammars for modular software model checking
Proceedings of the 2007 international symposium on Software testing and analysis
Client and server verification for web services using interface grammars
TAV-WEB '08 Proceedings of the 2008 workshop on Testing, analysis, and verification of web services and applications
Generating Interface Grammars from WSDL for Automated Verification of Web Services
ICSOC-ServiceWave '09 Proceedings of the 7th International Joint Conference on Service-Oriented Computing
Hi-index | 0.00 |
An important challenge in software verification is the ability to verify different software components in isolation. Achieving modularity in software verification requires development of innovative interface specification languages. In this paper we focus on the idea of using grammars for specification of component interfaces. In our earlier work, we investigated characterizing method call sequences using context free grammars. Here, we extend this approach by adding support for specification of complex data structures. An interface grammar for a component specifies the sequences of method invocations that are allowed by that component. Our current extension provides support for specification of valid input arguments and return values in such sequences. Given an interface grammar for a component, our interface compiler automatically generates a stub for that component that 1) checks the ordering of the method calls to that component, 2) checks that the input arguments are valid, and 3) generates appropriate return values based on the interface grammar specification. These automatically generated stubs can be used for modular verification and/or testing. We demonstrate the feasibility of this approach by experimenting with the Java Path Finder (JPF) using the stubs generated by our interface compiler.