Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
ARMISTICE: an experience developing management software with Erlang
Proceedings of the 2003 ACM SIGPLAN workshop on Erlang
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 the Implementation of Business Rules Using Intensional Database Tests
TAIC-PART '06 Proceedings of the Testing: Academic & Industrial Conference on Practice And Research Techniques
Testing telecoms software with quviq QuickCheck
Proceedings of the 2006 ACM SIGPLAN workshop on Erlang
Command-Form Coverage for Testing Database Applications
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Dynamic test input generation for database applications
Proceedings of the 2007 international symposium on Software testing and analysis
Testing Erlang data types with quviq quickcheck
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
A methodology and tool support for managing business rules in organisations
Information Systems
ERLANG Programming
QuickCheck testing for fun and profit
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Model-based testing of data types with side effects
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
Automatic generation of test models and properties from UML models with OCL constraints
Proceedings of the 12th Workshop on OCL and Textual Modelling
Towards property-based testing of RESTful web services
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
A language-independent approach to black-box testing using Erlang as test specification language
Journal of Systems and Software
Hi-index | 0.00 |
Many software systems are data-intensive and use a data management systems for data storage, such as Relational Database Management Systems (RDBMS). RDBMSs are used to store information in a structured manner, and to define several types of constraints on the data, to maintain basic consistency. The RDBMSs are mature, well tested, software products that one can trust to reliably store data and keep it consistent within the defined constraints. There are, however, scenarios in which passing the responsibility of consistency enforcement to the RDBMS is not convenient, or simply not possible. In such cases, the alternative is to have that responsibility at the business logic level of the system. Hence, from the point of view of testing data-intensive applications, one of the most relevant aspects is to ensure correctness of the business logic in terms of data consistency. In this article, we show how QuickCheck, a tool for random testing against specifications, can be used to test the business logic of an application to increase confidence on data integrity. We build an abstract model of the data containing the minimum information necessary to create meaningful test cases, while keeping its state substantially smaller than the data in the complete database. From the abstract model we automatically generate and execute test cases which check that data constraints are preserved.