Abstract
Software testing is a very delicate aspect of software development, since designing good test sets is a non-trivial task. In this article, we describe a testing technique for testing business rules using property-based testing and the property-based automatic testing tool QuickCheck. Systematic, effective, and efficient testing of business rules increases the confidence on the validation of business concepts and domain rules which are specifically critical to data consistency. The approach is presented on the basis of small but representative examples in order to facilitate the readers’ understanding, but it has been successfully evaluated in a number of different industrial examples, demonstrating that it generalises to much larger systems and is, thus, broadly applicable.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
From now, we will refer to ‘Quviq QuickCheck’ just as ‘QuickCheck’.
The other field, products, gets a default value, the empty list.
References
Arts, T., Hughes, J., Johansson, J., Wiger, U. (2006). Testing telecoms software with Quviq QuickCheck. In Proceedings of 5th ACM SIGPLAN Workshop on Erlang. ACM Press.
Bajec, M., & Krisper, M. (2005). A methodology and tool support for managing business rules in organisations. Information Systems, 30(6), 423–443.
Beizer, B. (1990). Software testing techniques, 2nd edn. New York: Van Nostrand Reinhold Co.
Bizerra, E., Silveira, D., Cruz, M., Wanderley, F. (2012). A method for generation of tests instances of models from business rules expressed in OCL. IEEE Latin America Transactions, 10(5), 2105–2111.
Blanco, R., Tuya, J., Seco, R.V. (2012). Test adequacy evaluation for the user-database interaction: A specification-based approach. In Proceedings of 5th IEEE International Conference on Software Testing, Verification and Validation, (pp. 71–80).
Cabrero, D., Abalde, C., Varela, C., Castro, L.M. (2003). AR-MIS-TICE: An experience developing management software with erlang. In Proceedings of 2nd ACM SIGPLAN Workshop on Erlang. ACM Press, (pp. 23–28).
Chanana, V., & Koronios, A. (2007). Data quality through business rules. In Proceedings of International Conference on Information and Communication Technology, (pp. 262–265).
Claessen, K., & Hughes, J. (2000). Quickcheck: a lightweight tool for random testing of haskell programs. In Proceedings of 5th International Conference on Functional Programming, (pp. 268–279).
Codd, E.F. (1970). A relational model of data for large shared data banks. Communications of the ACM, 13(6), 377–387.
Diana, R., Marques-Neto, H., Zárate, L., Song, M. (2012). A symbolic model checking appproach to verifying transact-SQL. In Proceedings of IEEE International Conference on Systems, Man and Cybernetics, (pp. 1735–1741).
Dietrich, J., & Paschke, A. (2005). On the test-driven development and validation of business rules. In Proceedings of 4th International Conference on Information Systems Technology and its Applications, (Vol. 63, pp. 31–48).
Duran, J.W., & Ntafos, S.C. (1984). An evaluation of random testing. IEEE Transactions on Software Engineering, 10(4), 438–444.
Gulías, V.M., Abalde, C., Castro, L.M., Varela, C. (2005). A new risk management approach deployed over a client/server distributed functional architecture. In Proceedings of 18th International Conference on Systems Engineering. IEEE Computer Society Press, Los Alamitos, CA, (pp. 370–375).
Gulías, V.M., Abalde, C., Castro, L.M., Varela, C. (2006). Formalisation of a functional risk management system. In Proceedings of 8th International Conference on Enterprise Information Systems. INSTICC Press, (pp. 516–519).
Haerder, T., & Reuter, A. (1983). Principles of transaction-oriented database recovery. ACM Computing Survey, 15(4), 287–317.
Hamlet, D. (2006). When only random testing will do. In Proceedings of 1st International Workshop on Random Testing. ACM Press, (pp. 1–9).
Hamlet, R.G. (1988). Special section on software testing. Communications of the ACM, 31(6), 662–667.
Hughes, J. (2007). Quickcheck testing for fun and profit. Lecture Notes in Computer Science, 4354, 1–32.
Jung, T. (2010). Java implementation of quickchek. http://quickcheck.dev.java.net/.
Junit (2008). Testing framework for java. http://www.junit.org.
Kaner, C., Falk, J.L., Nguyen, Q. (1999). Testing Computer Software, 2nd edn. New York: Wiley.
King, J.C. (1976). Symbolic execution and program testing. Communications of the ACM, 19(7), 385–394.
League, C. (2010). Qcheck/sml. http://contrapunctus.net/league/haques/qcheck/.
López, M., Castro, L., Cabrero, D. (2013). Feasibility of property-based testing for time-dependent systems. Lecture Notes in Computer Science, 8112, 527–535.
Neto, P., Resende, R., Pádua, C. (2005). A method for information systems testing automation. Lecture Notes in Computer Science, 3520, 504–518.
Packevičius, S., Ušaniov, A., Bareiša, E. (2008). Unit tests construction based on business rules. Innovations and Advanced Techniques in Systems. Computing Sciences and Software Engineering, 443–447.
Paladi, N., & Arts, T. (2009). Model based testing of data constraints: testing the business logic of a mnesia application with Quviq QuickCheck. In Proceedings of 8th ACM SIGPLAN Workshop on Erlang. ACM Press, (pp. 71–82).
Quviq, A.B. (2008). http://www.quviq.com.
Rodríguez, F., Lamancha, B., Usaoloa, M. (2012). Data model based test case design: Model-driven information system testing. In Proceedings of 4th International Conference on Advances in System Testing and Validation Lifecycle, (pp. 127–132).
Sharma, M., & Chandra, B.S. (2010). Automatic generation of test suites from decision table – theory and implementation. In Proceedings of 5th International Conference on Software Engineering Advances, (pp. 459–464).
Sneed, H., Demuth, B., Freitag, B. (2013). A process for assessing data quality. In Proceedings of 6th IEEE International Conference on Software Testing, Verification and Validation, (pp. 114–119).
Software Engineering Institute (2010). Summary report of appraisal results. Tech. rep., Carnegie Mellon. http://sas.sei.cmu.edu/pars/pars.aspx.
Soldani, C. (2010). Quickcheck++. http://software.legiasoft.com/quickcheck/.
Sriganesh, S., & Ramanathan, C. (2012). Externalizing business rules from business processes for model based testing. In Proceedings of IEEE International Conference on Industrial Technology, (pp. 312–318).
Standard, A.I. (1999). Database language SQL. http://www.cse.iitb.ac.in/dbms/Data/Papers-Other/SQL1999/ansi-iso-9075-2-1999.pdf.
Meservy, T.O., Zhang, C., Lee, E., Dhaliwal, J. (2012). The business rules approach and its effect on software testing. IEEE Software, 29(4), 60–66.
Tosanguan, P., & Suwannasart, T. (2012). An approach for defining rules as functions in rule-based software development. In Proceedings of 7th International Conference on Digital Information Management, (pp. 30–34).
van der Aalst, L., & Vink, J. (2008). Testing expensive? Not testing is more expensive!. In Proceedings of Test Excellence through Speed and Technology International Conference, (pp. 1–12).
Vegas, S. (2002). A characterisation schema for software testing techniques. Ph.D. thesis, Universidad Politécnica de Madrid.
Willmor, D., & Embury, S.M. (2006). Testing the implementation of business rules using intensional database tests. In Proceedings of Testing: Academic & Industrial Conference on Practice And Research Techniques. IEEE Computer Society Press, (pp. 115–126).
Acknowledgements
This research has been partially supported by MICIN TIN2010-20959.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Castro, L.M. Advanced management of data integrity: property-based testing for business rules. J Intell Inf Syst 44, 355–380 (2015). https://doi.org/10.1007/s10844-014-0335-2
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10844-014-0335-2