Equational logic as a programming language
Equational logic as a programming language
Proc. of the first international conference on Rewriting techniques and applications
The C++ programming language
An experimental evaluation of the assumption of independence in multiversion programming
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Algebraic specification
Confluence of conditional rewrite systems
1st international workshop on Conditional Term Rewriting Systems
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
The Use of Self Checks and Voting in Software Error Detection: An Empirical Study
IEEE Transactions on Software Engineering
Algebraic system specification and development
Algebraic system specification and development
Run-time consistency checking of algebraic specifications
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Case studies on testing object-oriented programs
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Automated consistency checking of requirements specifications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Dynamic Verification of C++ Generic Algorithms
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Automatically Checking an Implementation against Its Formal Specification
IEEE Transactions on Software Engineering
Data Abstraction, Implementation, Specification, and Testing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstract data types and software validation
Communications of the ACM
Fundamentals of Algebraic Specification I
Fundamentals of Algebraic Specification I
Using Term Rewriting to Verify Software
IEEE Transactions on Software Engineering
Operational Semantics for Order-Sorted Algebra
Proceedings of the 12th Colloquium on Automata, Languages and Programming
Design Strategies for Rewrite Rules
Proceedings of the 2nd International CTRS Workshop on Conditional and Typed Rewriting Systems
Notes on Type Abstraction (Version 2)
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Formal specification methods hold promise for bridging the wide gap between an intuitive idea for solving a problem by computer, and the executable program that attempts to do the job. The use of formalism is itself a good thing, allowing professionals to understand and analyze their work better. However, formal methods are an aid to human effort, not a panacea. Conventional software testing can be an ideal complement to formally directed development. Tests are concrete and immediately comprehensible to end users, and they are unlikely to miss mistakes because of a pernicious correlation with the formal work. Research is needed on ways to make formal specifications and testing work together to realize the potential of both. Tests should serve to increase confidence that a formal method has been correctly applied. Such tests would free the developers from tedious checking of formalism details, and the success of only a few tests would have real significance for the software's correctness. As an example of a formalism/testing partnership, this talk describes joint work with Sergio Antoy [4] on automatically checking a conventional implementation of an abstract data type against its formal algebraic specification.