Conditional rewriting logic as a unified model of concurrency
Selected papers of the Second Workshop on Concurrency and compositionality
Test data generation and feasible path analysis
ISSTA '94 Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity
Journal of the ACM (JACM)
Specification and proof in membership equational logic
Theoretical Computer Science - Trees in algebra and programming
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Symbolic execution and program testing
Communications of the ACM
A Comparison of Some Structural Testing Strategies
IEEE Transactions on Software Engineering
Unification in Conditional Equational Theories
EUROCAL '85 Research Contributions from the European Conference on Computer Algebra-Volume 2
Counterexamples to Completeness Results for Basic Narrowing (Extended Abstract)
Proceedings of the Third International Conference on Algebraic and Logic Programming
Systematic generation of glass-box test cases for functional logic programs
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Smallcheck and lazy smallcheck: automatic exhaustive testing for small values
Proceedings of the first ACM SIGPLAN symposium on Haskell
Using formal specifications to support testing
ACM Computing Surveys (CSUR)
Compiling and verifying security protocols
LPAR'00 Proceedings of the 7th international conference on Logic for programming and automated reasoning
Symbolic model checking of infinite-state systems using narrowing
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Model based testing with labelled transition systems
Formal methods and testing
All about maude - a high-performance logical framework: how to specify, program and verify systems in rewriting logic
Directed random testing
Test case generation for object-oriented imperative languages in clp*
Theory and Practice of Logic Programming
Test-Case generation for maude functional modules
WADT'10 Proceedings of the 20th international conference on Recent Trends in Algebraic Development Techniques
Using semantics specified in maude to generate test cases
ICTAC'12 Proceedings of the 9th international conference on Theoretical Aspects of Computing
Hi-index | 0.00 |
Testing is one of the most important and most time-consuming tasks in the software developing process and thus techniques and systems to automatically generate and check test cases have become crucial. In previous work we have presented techniques to test membership equational logic specifications; these techniques consist of two steps: first several ground terms are generated by using all the available constructor symbols in a breadth-first search, and then these terms are processed to check whether they fulfill some properties. This approach presents the drawback of separating two related processes, thus examining several terms that are indistinguishable from the point of view of testing. We present here a narrowing-based test-case generator that improves the performance of the tool and extends its use to rewriting logic specifications. First, we present two mechanisms to improve the narrowing commands currently available in Maude to use conditional statements and equational modules. Then, we show how to use these new narrowing commands to perform three different approaches to testing for any Maude specification: code coverage, property-based testing, and conformance testing. Finally, we present trusting mechanisms to improve the performance of the tool. We illustrate the tool by means of an example.