IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Automating first-order relational logic
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Symbolic execution and program testing
Communications of the ACM
Finding bugs with a constraint solver
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Symbolic Model Checking
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
The LOOP Compiler for Java and JML
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
TVLA: A System for Implementing Static Analyses
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
Object models as heap invariants
Programming methodology
Modular verification of software components in C
Proceedings of the 25th International Conference on Software Engineering
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
TestEra: A Novel Framework for Automated Testing of Java Programs
Proceedings of the 16th IEEE international conference on Automated software engineering
Inferring Specifications to Detect Errors in Code
Proceedings of the 19th IEEE international conference on Automated software engineering
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Checking properties of heap-manipulating procedures with a constraint solver
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Saturn: a SAT-based tool for bug detection
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Finding bugs efficiently with a SAT solver
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Finding Minimal Unsatisfiable Cores of Declarative Specifications
FM '08 Proceedings of the 15th international symposium on Formal Methods
Bounded Verification of Voting Software
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Towards Abstraction for DynAlloy Specifications
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
Tools and experiments supporting a testing-based theory of component composition
ACM Transactions on Software Engineering and Methodology (TOSEM)
An Incremental Approach to Scope-Bounded Checking Using a Lightweight Formal Method
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Kodkod: a relational model finder
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Analysis of invariants for efficient bounded verification
Proceedings of the 19th international symposium on Software testing and analysis
Efficient modular glass box software model checking
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Falling back on executable specifications
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
A framework for testing hardware-software security architectures
Proceedings of the 26th Annual Computer Security Applications Conference
A dynamic logic for unstructured programs with embedded assertions
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
Specification-based program repair using SAT
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
Relational reasoning via SMT solving
FM'11 Proceedings of the 17th international conference on Formal methods
A case for using data-flow analysis to optimize incremental scope-bounded checking
ABZ'10 Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z
Parallel bounded analysis in code with rich invariants by refinement of field bounds
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Growing solver-aided languages with rosette
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Minimizing models for tseitin-encoded SAT instances
SAT'13 Proceedings of the 16th international conference on Theory and Applications of Satisfiability Testing
SAT-Based analysis and quantification of information flow in programs
QEST'13 Proceedings of the 10th international conference on Quantitative Evaluation of Systems
Hi-index | 0.00 |
An approach is described for checking the methods of a class against a full specification. It shares with traditional model checking the idea of exhausting the entire space of executions within some finite bounds, and with traditional verification the idea of modular analysis, in which a method is analyzed, in isolation, for all possible calling contexts.The analysis involves an automatic two-phase reduction: first, to an intermediate form in relational logic (using a new encoding described here), and second, to a boolean formula (using existing techniques), which is then handed to an off the shelf SAT solver.A variety of implementations of the Java Collections Framework's List interface were checked against existing JML specifications. The analysis revealed bugs in the implementations, as well as errors in the specifications themselves.