Abstract
Most Unified Modeling Language (UML) computer-aided software engineering tools have been insufficient in the development process because they provide little support for conceptual model testing. Model testing aims to ensure the correctness of a UML/OCL class diagram, or, in other words, that a given class diagram can perfectly meet the user’s requirements. This study proposes the validation of class diagrams with black-box testing, a technique used to test software without focusing on the software’s implementation or structure. An approach is proposed for the automatic transformation of the constraints of a UML/OCL class diagram into test cases. Following the creation of the test cases, they are executed with JUnit and the results produced are shown to the tester. To demonstrate the applicability of this approach, an effectiveness evaluation and an efficiency evaluation are performed here. Evaluation studies show that all faults included in a class diagram have been detected within an efficient time.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Aljumaily, H., Cuadra, D., & Martínez, P. (2008). OCL2Trigger: Deriving active mechanisms for relational databases using model-driven architecture. Journal of Systems and Software, 81(12), 2299–2314.
ArgoUML. (2011). http://argouml.tigris.org/. Accessed June 2011.
Blaha, M., & Premerlani, W. (1998). Object-oriented modeling and design for database applications. Prentice Hall.
Bronshtein, I. N., & Semendyayev, K. A. (2004). Handbook of mathematics (4th ed.). New York: Springer.
Calafat, A. Q. (2009). Validation of UML conceptual schemas with OCL constraints and operations. PhD. Thesis, Universitat Politecnica de Catalunya, Spain.
Chan, W. K., Cheung, S. C., & Tse, T. H. (2005). Fault-based testing of database application programs with conceptual data model. In Proceedings of the fifth international conference on quality software (pp. 187–196). Los Alamitos, CA: IEEE Computer Society Press.
Chays, D., Dan, S., Frankl, P. G., Vokolos, F., & Weyuker E. J. (2000). A framework for testing database applications. In ACM SIGSOFT international symposium on Software testing and analysis, Portland, OA.
Chen, P. (1976). The entity-relationship model—toward a unified view of data. ACM Transactions on Database Systems, 1(1), 9–36.
Chernak, Y. (2001). Validating and improving test-case effectiveness. IEEE Software Archive, 18(1), 81–88.
Codd, E. F. (1970). A relational model of data for large shared data banks. CACM, 13(6), 377–387.
Costa, M., Cunningham, J., & Booth, J. (1990). Logical animation. In Proceedings of the international conference on software engineering.
Debroy, V., & Wong, W. E., (2009). Are fault failure rates good estimators of adequate test set size? In Proceedings of the 9th international conference on quality software (QSIC), Jeju Korea.
Egyed, A. (2006). Instant consistency checking for the UML. ICSE, 2006, 381–390.
Egyed, A. (2007). Fixing inconsistencies in UML design models. ICSE, 2007, 292–301.
Eldh, S., Hansson, H., Punnekkat, S., Pettersson, A., & Sundmark, D. (2006). A framework for comparing efficiency, effectiveness and applicability of software testing techniques, pp. 159–170.
Elmasri, R., & Navathe, S. (2000). Fundamentals of database systems (3rd ed.). Reading, MA: Addison-Wesley.
Elmstrøm, R., Larsen, P. G., & Lassen, P. B. (1994). A practical approach to formal specifications. ACM SIGPLAN Notices, 29(9), 77–80.
Giraudo, G., & Tonella, P. (2003). Designing and conducting an empirical study on test management automation. Empirical Software Engineering, 8(1), 59–81.
Gogolla, M., Büttner, F., & Richters, M. (2007). USE: A UML-based specification environment for validating UML and OCL. Science of Computer Programming, 69, 27–34.
Gogolla, M., Conrad, S., Denker, G., Herzig, R., & Vlachantonis, N. (1995). A development environment for an object specification language. IEEE Transactions on Knowledge and Data Engineering, 7, 505–508.
Gordon, V. S., & Bieman, J. M. (1995). Rapid prototyping: lessons learned. IEEE Software, 12(1), 85–95.
Heumann, J. (2001). Generating test cases from use cases, Rational Software, IBM. https://ecs.victoria.ac.nz/twiki/pub/Courses/SWEN301_2010T1/Assignments/GeneratingTestCasesFromUseCasesJune01.pdf.
Hong, M., Zeng, Q., Wang, Z., Zhang, Y., & Wang, H. (2010). An approach of automated test cases generation in database stored procedure testing. In Second international workshop on education technology and computer science, Vol. 1, pp. 533–537.
HSQLDB. (2011) 100% Java database, http://hsqldb.org/, Accessed June 2011.
JUnit. (2011). http://www.junit.org/, Accessed June 2011.
Kassoff, M., & Genesereth, M. R. (2011) The Markov reformulation theorem. In Proceedings of the ninth symposium on abstraction, reformulation, and approximation (SARA 2011), Spain, July 17–18, 2011.
Larman, C. (2001). Applying UML and patterns: An introduction to object-oriented analysis and design and the unified process (2nd ed.). Englewood Cliffs, NJ: Prentice-Hall.
Lehmann E., & Wegener J. (2000). Test case design by means of the CTE XL. In Proceedings of the 8th European international conference on software testing, analysis and review, Kopenhagen, Denmark.
Luqi, L., & Steigerwald, R. (1992). Rapid software prototyping. In System Sciences, Proceedings of the twenty-fifth Hawaii international conference.
MetaEdit+. (2011). http://www.metacase.com/. Accessed June 2011.
Meyer, B. (2008). Seven principles of software testing. IEEE Computer, 41, 99–101.
Mohagheghi, P., Dehlen, V., & Neple, T. (2009). Definitions and approaches to model quality in model-based software development—a review of literature. Information and Software Technology, 51, 1646–1669.
Moody, D. L., Sindre, G., Brasethvik, T., & Sølvberg, A. (2003) Evaluating the quality of information models: Empirical testing of a conceptual model quality framework. In Proceedings of the 25th international conference on software engineering (ICSE ‘03).
Myers, G. J. (2004). The art of software testing (2nd ed.). John Wiley & Sons.
OMG, Object Management Group. UML 2.0 OCL Specification, Inc. (2011). http://www.omg.org/. Accessed Jan 2011.
Objecteering/UML. (2011). Objecteering/SQL designer user guide version 5.2.2, http://depinfo.u-bourgogne.fr/docs/Objecteering522/SQLDesigner.pdf, Accessed June 2011.
OCL22SQL. (2011). Dresden OCL Toolkit. http://dresden-ocl.sourceforge.net/, Accessed June 2011.
Offutt, A. J., & Hayes, J. H., (1996). A semantic model of program faults. In Proceedings of ISSTA’1996, pp. 195–200.
Oliver, I., & Stuart, K. (1999). Validation of object-oriented models using animation. In Proceedings of the 25th EuroMicro’99 conference, Sep 8–10, Milan, Italy.
Overmyer, S. P. (1991). Revolutionary vs. evolutionary rapid prototyping: Balancing software productivity and HCI Design Concerns. In Proceedings of the fourth international conference on human-computer interaction, pp. 303–307.
Pressman, R. S. (2005). Software engineering: A practitioner’s approach. New York: McGraw-Hill Higher Education.
Purchase, H. C., Welland, R., McGill, M., & Colpoys, L. (2004). Comprehension of diagram syntax: An empirical study of entity relationship notations. Int. J. Human-Computer Studies, 61, 187–203.
Rational Enterprise Edition. (2011). www-306.ibm.com/software/rational. Accessed June 2011.
Reder, A., & Egyed, A. (2010). Model/analyzer: A tool for detecting, visualizing and fixing design errors in UML. In ASE 2010, pp. 347–348.
Richters, M., & Gogolla, M. (2000). Validating UML models and OCL constraints. In UML2000. LNCS, Vol. 1939, pp. 265–277.
Sommerville, I. (2007). Software engineering (8th ed.). Addison-Wesley.
ISO/IEC 9075 Standard (2008), Information technology—database languages—SQL:2008 International Organization for Standardization. Accessed June 2011.
Teorey, T. J. (1999) Database modeling & design (3rd ed.), Morgan Kaufmann Series in Data Management Systems.
Tort, A., & Olivé, A. (2010). An approach to testing conceptual schemas. Data & Knowledge Engineering, 69(6), 598–618.
Tort A., Olivé A., & Sancho M. R. (2011). The CSTL processor: A tool for automated conceptual schema testing, pp. 349–352
Tsai, W. T., Chen, Y., Paul R., Liao N., & Huang, H. (2004). Cooperative and group testing in verification of dynamic composite Web services. In Proceedings of the 28th annual international conference on computer software and applications..
Tsiolakis, A., & Ehrig, H. (2000) Consistency analysis of UML class and sequence diagrams using attributed graph grammars. Proceedings of Workshop on Graph Transformation Systems (GRATRA), pp. 77–86.
Tuya, J., Suárez-Cabal, M. J., & de la Riva, C. (2006). SQL mutation: A tool to generate mutants of SQL database queries. In Second workshop on mutation analysis, Raleigh, NC.
Vincenzi, A. M. R., Maldonado, J. C., Delamaro, M. E., Spoto, E. S., & Wong, W. E. (2003). Component-based software: An overview of testing. In Proceedings of component-based software quality, pp. 99–127.
Visual Case Tool. (2011). http://visualcase.com/index.htm/. Accessed June 2011.
Zhang, K., Song, G., & Kong, J. (2004). Rapid software prototyping using visual language techniques. In Proceedings of 15th IEEE international workshop on rapid system prototyping.
Zhu, H., Hall, P., & May, J. (1997). Software unit test coverage and adequacy. ACM Computing Surveys, 29(4), 366–427.
Acknowledgments
We sincerely thank the anonymous referees for their valuable suggestions, which have improved the paper. This work has been partially supported by the project Thuban: Natural Interaction Platform for Virtual Attending in Real Environments (TIN2008-02711).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Aljumaily, H., Cuadra, D. & Martínez, P. Applying black-box testing to UML/OCL database models. Software Qual J 22, 153–184 (2014). https://doi.org/10.1007/s11219-012-9192-9
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-012-9192-9