QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
A New Risk Management Approach Deployed over a Client/Server Distributed Functional Architecture
ICSENG '05 Proceedings of the 18th International Conference on Systems Engineering
Testing telecoms software with quviq QuickCheck
Proceedings of the 2006 ACM SIGPLAN workshop on Erlang
Implementing an LTL-to-Büchi translator in Erlang: a protest experience report
Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
Property driven development in Erlang, by example
Proceedings of the 5th Workshop on Automation of Software Test
Property-based testing: the ProTest project
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
Testing Data Consistency of Data-Intensive Applications Using QuickCheck
Electronic Notes in Theoretical Computer Science (ENTCS)
Model-based testing of data types with side effects
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
A language-independent parallel refactoring framework
Proceedings of the Fifth Workshop on Refactoring Tools
Model based testing with logical properties versus state machines
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Automatic generation of test models and properties from UML models with OCL constraints
Proceedings of the 12th Workshop on OCL and Textual Modelling
Turning web services descriptions into quickcheck models for automatic testing
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
A language-independent approach to black-box testing using Erlang as test specification language
Journal of Systems and Software
Hi-index | 0.00 |
When creating software, data types are the basic bricks. Most of the time a programmer will use data types defined in library modules, therefore being tested by many users over many years. But sometimes, the appropriate data type is unavailable in the libraries and has to be constructed from scratch. In this way, new basic bricks are created, and potentially used in many products in the future. It pays off to test such data types thoroughly. This paper presents a structured methodology to follow when testing data types using Quviq QuickCheck, a tool for random testing against specifications. The validation process will be explained carefully, from the convenience of defining a model for the datatype to be tested, to a strategy for better shrinking of failing test cases, and including the benefits of working with symbolic representations. The leading example in this paper is a data type implemented for a risk management information system, a commercial product developed in Erlang, that has been used on a daily basis for several years.