Programming in Prolog (2nd ed.)
Programming in Prolog (2nd ed.)
Selecting Software Test Data Using Data Flow Information
IEEE Transactions on Software Engineering
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
Application of PROLOG to test sets generation from algebraic specifications
Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT) on Formal Methods and Software, Vol.2: Colloquium on Software Engineering (CSE)
Software reliability: measurement, prediction, application
Software reliability: measurement, prediction, application
IEEE Transactions on Software Engineering
Comparing the Effectiveness of Software Testing Strategies
IEEE Transactions on Software Engineering
Algebraic specification
Confluence of conditional rewrite systems
1st international workshop on Conditional Term Rewriting Systems
SbReve2: a term rewriting laboratory with (AC-) unfailing completion
RTA-89 Proceedings of the 3rd international conference on Rewriting Techniques and Applications
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
Partition Testing Does Not Inspire Confidence (Program Testing)
IEEE Transactions on Software Engineering
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
Dynamic Verification of C++ Generic Algorithms
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
ICSE '85 Proceedings of the 8th international conference on Software engineering
Data Abstraction, Implementation, Specification, and Testing
ACM Transactions on Programming Languages and Systems (TOPLAS)
The operational versus the conventional approach to software development
Communications of the ACM
Abstract data types and software validation
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Object-Oriented Software Construction
Object-Oriented Software Construction
Fundamentals of Algebraic Specification I
Fundamentals of Algebraic Specification I
A Comparison of Some Structural Testing Strategies
IEEE Transactions on Software Engineering
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
Gypsy: A language for specification and implementation of verifiable programs
Proceedings of an ACM conference on Language design for reliable software
Specification Based Testing: Towards Practice
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
CASCON '03 Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research
A Tool for Writing and Debugging Algebraic Specifications
Proceedings of the 26th International Conference on Software Engineering
Using Transient/Persistent Errors to Develop Automated Test Oracles for Event-Driven Software
Proceedings of the 19th IEEE international conference on Automated software engineering
STLlint: lifting static checking from languages to libraries
Software—Practice & Experience
When only random testing will do
Proceedings of the 1st international workshop on Random testing
Random testing of formal software models and induced coverage
Proceedings of the 1st international workshop on Random testing
Tool support for randomized unit testing
Proceedings of the 1st international workshop on Random testing
Designing and comparing automated test oracles for GUI-based software applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Detecting object usage anomalies
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Nighthawk: a two-level genetic-random unit test data generator
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Developing and debugging algebraic specifications for Java classes
ACM Transactions on Software Engineering and Methodology (TOSEM)
PROMISE '09 Proceedings of the 5th International Conference on Predictor Models in Software Engineering
Automatic Generation of Runtime Failure Detectors from Property Templates
Software Engineering for Self-Adaptive Systems
The axioms strike back: testing with concepts and axioms in C++
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
ProTest: An Automatic Test Environment for B Specifications
Electronic Notes in Theoretical Computer Science (ENTCS)
Multi-paradigm Models as Source for Automated Test Construction
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards model-driven unit testing
MoDELS'06 Proceedings of the 2006 international conference on Models in software engineering
Functional testing in the focal environment
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
An experimental assessment of module documentation-based testing
Information and Software Technology
Runtime verification for generic classes with CONGU2
SBMF'10 Proceedings of the 13th Brazilian conference on Formal methods: foundations and applications
Mining temporal specifications from object usage
Automated Software Engineering
Checking the conformance of java classes against algebraic specifications
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Checking formal specifications by testing
IW-FM'99 Proceedings of the 3rd Irish conference on Formal Methods
Hi-index | 0.00 |
We propose checking the execution of an abstract data type's imperative implementation against its algebraic specification. An explicit mapping from implementation states to abstract values is added to the imperative code. The form of specification allows mechanical checking of desirable properties such as consistency and completeness, particularly when operations are added incrementally to the data type. During unit testing, the specification serves as a test oracle. Any variance between computed and specified values is automatically detected. When the module is made part of some application, the checking can be removed, or may remain in place for further validating the implementation. The specification, executed by rewriting, can be thought of as itself an implementation with maximum design diversity, and the validation as a form of multiversion-programming comparison.