Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
Online minimization of transition systems (extended abstract)
STOC '92 Proceedings of the twenty-fourth annual ACM symposium on Theory of computing
A shorter model theory
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Generating finite state machines from abstract state machines
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Abstraction-based deductive-algorithmic verification of reactive systems
Abstraction-based deductive-algorithmic verification of reactive systems
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Deriving object typestates in the presence of inter-object references
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Mining object behavior with ADABU
Proceedings of the 2006 international workshop on Dynamic systems analysis
Specification and verification challenges for sequential object-oriented programs
Formal Aspects of Computing
The software model checker Blast: Applications to software engineering
International Journal on Software Tools for Technology Transfer (STTT)
Randoop: feedback-directed random testing for Java
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
Symbolic mining of temporal specifications
Proceedings of the 30th international conference on Software engineering
Automatic generation of software behavioral models
Proceedings of the 30th international conference on Software engineering
PLURAL: checking protocol compliance under aliasing
Companion of the 30th international conference on Software engineering
Model-Based Quality Assurance of Windows Protocol Documentation
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Interface Generation and Compositional Verification in JavaPathfinder
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Synthesizing intensional behavior models by graph transformation
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatic Extraction of Heap Reference Properties in Object-Oriented Programs
IEEE Transactions on Software Engineering
Automatic Generation of Object Usage Specifications from Large Method Traces
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Generalized symbolic execution for model checking and testing
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Using contracts and Boolean queries to improve the quality of automatic test generation
TAP'07 Proceedings of the 1st international conference on Tests and proofs
Generating test cases for specification mining
Proceedings of the 19th international symposium on Software testing and analysis
Model-based quality assurance of protocol documentation: tools and methodology
Software Testing, Verification & Reliability
Contractor.NET: inferring typestate properties to enrich code contracts
Proceedings of the 1st Workshop on Developing Tools as Plug-ins
Probabilistic, modular and scalable inference of typestate specifications
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Leveraging existing instrumentation to automatically infer invariant-constrained models
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
An empirical study of object protocols in the wild
Proceedings of the 25th European conference on Object-oriented programming
Automated Abstractions for Contract Validation
IEEE Transactions on Software Engineering
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Hi-index | 0.00 |
Code artifacts that have nontrivial requirements with respect to the ordering in which their methods or procedures ought to be called are common and appear, for instance, in the form of API implementations and objects. This work addresses the problem of validating if API implementations provide their intended behavior when descriptions of this behavior are informal, partial, or nonexistent. The proposed approach addresses this problem by generating abstract behavior models which resemble typestates. These models are statically computed and encode all admissible sequences of method calls. The level of abstraction at which such models are constructed has shown to be useful for validating code artifacts and identifying findings which led to the discovery of bugs, adjustment of the requirements expected by the engineer to the requirements implicit in the code, and the improvement of available documentation.