WO2010034548A1 - Test module and method for testing an o/r imaging middleware - Google Patents

Test module and method for testing an o/r imaging middleware Download PDF

Info

Publication number
WO2010034548A1
WO2010034548A1 PCT/EP2009/059846 EP2009059846W WO2010034548A1 WO 2010034548 A1 WO2010034548 A1 WO 2010034548A1 EP 2009059846 W EP2009059846 W EP 2009059846W WO 2010034548 A1 WO2010034548 A1 WO 2010034548A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
test
middleware
module
oriented
Prior art date
Application number
PCT/EP2009/059846
Other languages
German (de)
French (fr)
Inventor
Uwe Hohenstein
Michael Jäger
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to EP09781269A priority Critical patent/EP2329374A1/en
Publication of WO2010034548A1 publication Critical patent/WO2010034548A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Definitions

  • the invention relates to testing of middleware configured to inter-map object-oriented data of an object-oriented application and relational database relational data.
  • the invention describes a test environment for schematically determining the behavior of the middleware.
  • the present invention relates to a test module, a method for testing the middleware, a computer program product by which the method is implemented and / or a data carrier comprising the computer program product.
  • An object / relational (O / R) mapping middleware is software that establishes the connection between an object-oriented application and a relational database.
  • the purpose of this O / R mapping middleware is to transfer the data of an application in an object-oriented data structure to the tabular memory structure of common relational database systems and vice versa, especially if the object-oriented application queries data from the relational database.
  • the combination of an object-oriented data structure on the one hand and a relational database on the other hand represents a common application in the industrial use of software systems.
  • Fig. 1 shows a typical structure of an application case of an O / R imaging middleware.
  • An object-oriented application 11 does not access the relational database 13 directly. Instead, the O / R mapping middleware 12 is placed therebetween to establish the connection between both sides.
  • the objects of the object-oriented application 11 are converted by the O / R mapping middleware 12 into data corresponding to the relational schema or data model correspond to the relational database 13 and thus in the relational database 13 can be stored. In this way, the persistence of the data of the object-oriented application is established and a decoupling between storage and processing of the data is realized. That is, the objects of the object-oriented application 11 are permanently stored in this way in the relational database 13 and are retrievable from the database 13 and recoverable.
  • the data of the object-oriented application which are created according to the object-oriented model of the object-oriented application and thus exist as objects of the object-oriented application, can also be referred to as object-oriented data.
  • the data of the relational database which are created according to the relational schema or model of the relational database and exist in the form of tables and / or relations in the relational database, are also referred to as relational data.
  • Object-oriented software is used in many industrial applications. These object-oriented applications act e.g. managing, regulating, monitoring and / or controlling the industrial processes or processes and / or the industrial components or modules. Examples include production processes, plant control processes, plants, components and modules of the plants. There are many and different uses. Furthermore, object-oriented applications are also used to control, govern, manage, and / or monitor processes and / or components also within products (e.g., equipment, devices, etc.). Even products themselves can be controlled, controlled, managed and / or monitored by object-oriented applications.
  • object-oriented applications act e.g. managing, regulating, monitoring and / or controlling the industrial processes or processes and / or the industrial components or modules. Examples include production processes, plant control processes, plants, components and modules of the plants. There are many and different uses. Furthermore, object-oriented applications are also used to control, govern, manage, and / or monitor processes and / or components also within products (e.g., equipment, devices, etc.). Even products themselves can be controlled, controlled, managed
  • an O / R mapping middleware fulfills an important purpose by transforming the objects of an object-oriented application into relational data structures, and vice versa, and ensuring proper operation. Safe and correct handling and operation of processes or processes and / or components or modules of the respective industry or products is thus highly dependent on a secure and correctly functioning O / R imaging middleware.
  • O / R Mapping Middleware examples include Hibernate, TopLink, iBATIS, OpenJPA and Kodo.
  • These conventional software solutions differ, in particular, according to which method data in the database is persisted or permanently backed up. Differences may exist, for example, in the order, scope and / or structuring of the persistence operations.
  • the O / R imaging Middleware querying data from the database when requested by the application.
  • the software solutions differ in the order, scope and / or structure according to which data is read from the database.
  • O / R mapping middleware queried from the relational database and provided to the object-oriented application in the form of objects represents the so-called fetching behavior.
  • Fetching generally refers to the most efficient retrieval or restoration of object-oriented data from a relational database and is initiated by appropriate requests or queries from the object-oriented application. In the following, the term "fetching" is used for this retrieval or restoration of object-oriented data.
  • Eager Fetching is a very extensive and costly recovery or recovery of object-oriented data to understand a query is extended to the extent of an object graph. Again, lazy fetching refers to a reduced and fast restoration of object-oriented data. Since these terms have become commonplace in the field of object-oriented and relational modeling, these terms are used below.
  • a so-called Eager Fetching is characterized by the fact that when requesting or querying an object by the object-oriented application from a relational database not only the directly corresponding data record from the database is retrieved, but also other data are taken into account via relationships associated with the actual (core) data set.
  • This behavior is particularly advantageous if, during the processing of the actual object in the object-oriented application, processing of data associated with this object automatically also occurs.
  • this behavior can also have disadvantages. This is the case in particular when data associated with the application logic of the object-oriented application is not required and therefore its query and its receipt are superfluous. Depending on whether associated data is to be queried or ignored, it is "Eager Fetching" or "Lazy Fetching".
  • Eager Fetching results in one or more query expressions (so-called "SELECT statements") of varying complexity, as a result of which the processing time can multiply quickly by an increase in the query expressions.
  • the multitude of options for configuring the Apache OpenJPA O / R imaging middleware illustrates the problems of traditional O / R imaging middleware implementations while confirming the need to test the O / R imaging middleware.
  • Implementations in particular to ensure the safe, correct and efficient handling and operation of processes or processes and / or components or modules of the respective industry or products that depend on a secure, correct and efficient O / R imaging middleware.
  • Fetch Groups Configuration of so-called Fetch Groups, in which targeted relationships can be summarized.
  • the behavior may be e.g. towards Eager Fetching or Lazy Fetching.
  • the Fetch Groups can exist in addition to the aforementioned settings and can also be activated and deactivated at runtime.
  • Bibernate also offers XML configurations and notations for an Eager and Lazy Fetching setting, as well as several variants of expressions for querying a relational database, such as Structured Query Language (SQL) expressions ",” Select “and” subselect ", which sometimes allow a more nuanced behavior, but the Fetch Groups are missing.
  • SQL Structured Query Language
  • Eager Fetching can not only load the object of the direct relationship, but also take into account other data objects that are related to the already reloaded object. It should be noted that this is not a binary setting, but one that should be gradually adjusted. Accordingly, several test cases are created for this scenario.
  • the relevant relationships in the data model must be identified. This creates the special problem that the data model must first be analyzed when the data model and integration of the O / R imaging middleware are performed by different people. The analysis process is to identify the locations relevant to the fetching behavior in the data model.
  • O / R imaging middleware are created. This requires temporary changes in code and configuration - purely for testing purposes. It also requires the creation of test data, which in most cases is more expensive than generating test data for functional tests, since the data must have sufficient depth in terms of relationships.
  • test execution means the evaluation of the query expressions sent to the database - in the case of manual evaluation this is a time-consuming and error-prone process.
  • query expressions are printed in standard output.
  • the application In order for these to be associated with particular implementations in the application, the application must be modified to receive marks in the standard output. This, in turn, creates the risk that the application is unintentionally modified for testing the fetching behavior, or that marking instructions corresponding to the test are not removed from the application logic.
  • the object of the present invention is to provide an efficient and correct functioning O / R imaging
  • test module having the features of claim 1
  • method having the features of claim 10
  • computer program product having the features of claim 19
  • data carrier having the features of claim 20.
  • test module configured to test a middleware which is configured to mutually map object-oriented data of an object-oriented application and relational database relational data
  • the test module comprising: a data model module that specifies a data model for modeling relationship types of relational data models with respect to object-oriented data models; a test data module having test data, the test data being test data provided in accordance with a data model of the object-oriented application; a test case module having predetermined test cases for testing the middleware, the test cases having queries corresponding to data queries of the object-oriented application to the relational database via the middleware; and an analysis module configured to analyze results of the given test cases.
  • the present invention enables a systematization of previously implemented test methods dependent on specific application cases. That the present invention provides a methodology for application and / or product independent testing of O / R imaging middleware.
  • testing the O / R imaging middleware is based on a data model that generally covers the relevant cases of fetching behavior.
  • test module provides test cases that implement corresponding implementations according to the underlying object-oriented application to target fetching in the corresponding O / R mapping middleware.
  • the data model is implemented in an object-oriented programming language.
  • the test data module has an object-oriented implementation of the test data. This allows a flexible and comprehensive handling of the data model and / or the test data with all the advantages of object-oriented programming.
  • the test module is configured to apply the data model to the test data.
  • the relationships and structures contained in the test data are analyzed with regard to the relationship types of relational data models contained in the data model.
  • the test module has a write-in module which is configured to transmit the test data for storage in the relational database via the middleware to the relational database.
  • the test case module is configured to query test data stored in the relational database using the test cases through the middleware.
  • the present invention allows the inventive application and / or product-independent approach of testing to be combined with concrete configurations of a concrete object-oriented application, a concrete middleware and / or a concrete relational database,
  • the test case module is configured to analyze the test data retrieved by the middleware using the data model from the data model module and the test data from the test data module.
  • the analysis module is configured to analyze results of the predetermined test cases using analysis results of the test case module. In this way, a multi-layered analysis of the mapping of relational data to object-oriented data on the test data is made possible.
  • the analysis module is configured to provide results of the analyzes performed by the analysis module to a user of the test module.
  • the above object is further achieved by a method for testing a middleware, wherein the middleware is configured to mutually map object-oriented data of an object-oriented application and relational data of a relational database, the method comprising:
  • test cases for testing the middleware, the test cases having queries corresponding to data queries of the object-oriented application to the relational database via the middleware; and analyzing results of the given test cases.
  • the method for testing a middleware also makes it possible to systematize previously implemented, dependent on specific use cases, implemented tests, as already described above with regard to the test module.
  • the steps of the method generally correspond to the operations performed by the above-presented test module and / or the modules included in the test module. Therefore, the advantages of the features of the test module can also be listed in relation to the corresponding steps of the method introduced above.
  • the data model is implemented in an object-oriented programming language.
  • test data is provided in the form of an object-oriented implementation.
  • the method comprises applying the data model to the test data.
  • the relationships and structures contained in the test data are analyzed with regard to the relationship types of relational data models.
  • the method comprises transmitting the test data via the middleware for storing the test data in the relational database.
  • the method comprises querying the test data stored in the relational database by the middleware using the test cases.
  • the method comprises analyzing the test data queried by the middleware using the provided data model and the provided test data. According to an embodiment of the present invention, the method comprises analyzing results of the predetermined test cases using results of analyzing the test data retrieved by the middleware.
  • the method comprises providing results of analyzing the results of the predetermined test cases.
  • the coding can be contained in a data carrier.
  • the computer program product may be configured to perform the method when the computer program product is executed by a computing unit (e.g., a processor).
  • the present invention provides significant time savings for the preparation, design, and performance of the tests and analysis of the test results.
  • the infrastructure of the application must be provided for such tests, but this is not conceptually necessary for the tests. In large software projects this is associated with considerable resource expenditure and time losses.
  • the present invention avoids or circumvents this problem.
  • the present invention provides efficient O / R mapping middleware testing that is time efficient and resource efficient.
  • the present invention allows comparing the test results of different O / R imaging middleware solutions, as the testing is done in an application and / or product independent manner. Replacing the products will then reveal performance issues with each middleware.
  • the actual application in which an O / R mapping middleware is to be integrated is not affected by the tests. This rules out the possibility of accommodating unintentional modifications for analysis purposes, which can damage or disturb the actual application.
  • the data in the database is not mixed with the test data because the tests use their own data, which can be separated from the actual application data and can then be deleted so that the application data remain unaffected by the deletion.
  • FIG. 2 shows a system with a test module according to an embodiment of the present invention.
  • test device or by a test module 20.
  • test device or the test device or the test device
  • Test module 20 first, a data model module 201, which contains a data model for modeling relationship types of relational data models.
  • the data model covers various relationship types of relational databases that affect the fetching behavior of an O / R mapping middleware.
  • relationship types are, for example, 1-to-1 relationships, 1-to-n relationships, n-to-m relationships.
  • illustrations of tables on classes and vice versa treatment of attributes with complex types, mapping of associations and aggregations and / or mapping of inheritances by the data model are also discussed.
  • the data model is implemented in an object-oriented programming language.
  • provision of standardized relational database system instructions may be necessary to establish the appropriate data structure. This part is not necessary in cases where the O / R mapping middleware provides a function of creating an appropriate relational data structure in the database from an existing data model on the object-oriented page.
  • the data model is an abstract data model that is general and not focused on concrete applications or products. It defines general principles of mapping the object-oriented data to relational data and vice versa.
  • the test module 20 has a test data module 202 that is configured to provide test data. The test data are provided in such a way that they have the necessary scope to cope with the consequences of the set fetching
  • test data Being able to study behavior with different depths. That the test data is constructed for queries of varying depth, the queries corresponding to the queries actually transmitted from the object-oriented application via the O / R mapping middleware 12 to the relational database 13 to retrieve the data stored in the relational database 13 ,
  • test data are entered via an object-oriented implementation of the test module 20 and represent exemplary object-oriented data of the concrete object-oriented application.
  • the test data is used exclusively for testing the O / R imaging middleware 12. In this way, independence of the test module 20 from the O / R mapping middleware 12 used and the database system 13 used is established.
  • the data model contained in the data model module 201 is applied to the test data contained in the test data module 202. That the test data is analyzed for its object-oriented structure and relationships, and the Relational Relationship-General Data Model derives the relationships and structures necessary for O / R mapping, based only on the data model of the test module 20 or data model module
  • the test module 20 furthermore has a dubbing module 203, wherein the dubbing module 203 is configured to transmit the test data from the test data module 202 to the O / R imaging middleware 12, as would otherwise be done by the object-oriented application. Further, the test data is from the O / R imaging middleware
  • test data stored in the relational database 13 are queried by the test module 20 for test purposes.
  • the test module 20 sends queries that correspond to the queries sent by the object-oriented application.
  • the test module 20 has a test case module 204.
  • the test case module 204 has ready-made test cases that can be tested for different aspects of a fetching setting. That the test cases provide queries for the test data, with the queries matching those of the object-oriented application.
  • the test cases formulate data accesses to the relational database 13, wherein the data accesses are designed to cover the relevant places of the object-oriented data model and to trigger the fetching behavior of an O / R mapping middleware, depending on the configuration.
  • the test case module 204 obtains the test data, which is object-oriented data, from the test data module 202, results of the queries performed on test data in the relational database 13 from the O / R imaging middleware, and the data model of the data model module 201.
  • the test case module 204 establishes relationships between the obtained data which will help to determine how well the results on the queries made by the O / R blur middleware 12 correspond to the results actually desired or expected by the object-oriented application.
  • the test case module 204 detects query expressions to aid in the evaluation of the data obtained.
  • the test module 20 outputs query expressions via a standard output. Since the output is structured according to the test cases, the Order of test cases and resulting query expressions for the purpose of evaluation possible. In this way, the evaluation is automated per test case. It is also possible to machine the query expressions and to provide the test results in an aggregated form.
  • the O / R imaging middleware prepares a standard output (e.g., a log file) 21 which is analyzed by an analysis module 205.
  • a standard output e.g., a log file
  • the data obtained in the test case module 204 and the findings made in the test case module 204 are taken into account.
  • the analysis module 205 provides its evaluations to the person involved in testing the O / R imaging middleware. From this, the person can make conclusions regarding the behavior and functioning of the O / R mapping middleware and possibly make improvements in the implementation of the O / R mapping middleware.
  • the present invention relates to testing of middleware configured to inter-map object-oriented data of an object-oriented application and relational data relational data. Testing is performed using a data model to model relational data model relationship types with respect to object-oriented data models, using test data that is test data provided according to a data model of the object-oriented application, using predetermined test cases to test the middleware, the test cases Have queries that correspond to data queries of the object-oriented application to the relational database via the middleware and performed by analyzing the results of the given test cases.
  • the present invention relates in particular to applications with O / R
  • Mapping middleware and allows efficient and correct handling and operation of processes or processes and / or components or modules of an industrial sector or of products that depend on efficient and properly functioning O / R imaging middleware.

Abstract

The present invention relates to a testing of a middleware configured for the reciprocal imaging of object-oriented data of an object-oriented application and relational data of a relational database. For this purpose, testing is carried out utilizing a data model for modeling relational types of relational data models with regard to object-oriented data models, utilizing test data which is test data provided according to a data model of the object-oriented application, utilizing specified test cases for testing the middleware, wherein the test cases comprise queries corresponding to data queries of the object-oriented application to the relational database via the middleware, and by means of analysis of the results of the specified test cases. The present invention particularly relates to applications comprising O/R imaging middleware, and allows efficient and correct handling and operation of processes or sequences, and/or components or modules of an industry sector or products dependant on efficiently and correctly functioning O/R imaging middleware.

Description

Beschreibungdescription
Testmodul und Verfahren zum Testen einer O/R-Abbildungs- MiddlewareTest module and method for testing an O / R imaging middleware
Die Erfindung betrifft das Testen einer Middleware, welche zum gegenseitigen Abbilden von objektorientierten Daten einer objektorientierten Anwendung und relationalen Daten einer relationalen Datenbank konfiguriert ist. Dabei beschreibt die Erfindung eine Testumgebung zum schematischen Ermitteln des Verhaltens der Middleware. Insbesondere betrifft die vorliegende Erfindung ein Testmodul, ein Verfahren zum Testen der Middleware, ein Computerprogrammprodukt durch das das Verfahren implementiert wird und/oder einen Datenträger, welches das Computerprogrammprodukt aufweist.The invention relates to testing of middleware configured to inter-map object-oriented data of an object-oriented application and relational database relational data. The invention describes a test environment for schematically determining the behavior of the middleware. In particular, the present invention relates to a test module, a method for testing the middleware, a computer program product by which the method is implemented and / or a data carrier comprising the computer program product.
Unter einer objekt/relationalen (O/R) Abbildungs-Middleware versteht man eine Software, die die Verbindung zwischen einer objektorientierten Anwendung und einer relationalen Datenbank herstellt. Das Einsatzziel dieser O/R-Abbildungs-Middleware ist, die Daten einer Anwendung in einer objektorientierten Datenstruktur auf die tabellarische Speicherstruktur von gängigen relationalen Datenbanksystemen zu übertragen und umgekehrt, insbesondere wenn die objektorientierte Anwendung Da- ten aus der relationalen Datenbank abfragt. Die Kombination einer objektorientierten Datenstruktur auf der einen Seite und einer relationalen Datenbank auf der anderen Seite stellt einen üblichen Anwendungsfall beim industriellen Einsatz von Software-Systemen dar.An object / relational (O / R) mapping middleware is software that establishes the connection between an object-oriented application and a relational database. The purpose of this O / R mapping middleware is to transfer the data of an application in an object-oriented data structure to the tabular memory structure of common relational database systems and vice versa, especially if the object-oriented application queries data from the relational database. The combination of an object-oriented data structure on the one hand and a relational database on the other hand represents a common application in the industrial use of software systems.
Fig. 1 zeigt einen typischen Aufbau eines Anwendungsfalls einer O/R-Abbildungs-Middleware. Dabei greift eine objektorientierte Anwendung 11 nicht direkt auf die relationale Datenbank 13 zu. Stattdessen ist die O/R-Abbildungs-Middleware 12 dazwischen platziert, um die Verbindung zwischen beiden Seiten herzustellen. Die Objekte der objektorientierten Anwendung 11 werden durch die O/R-Abbildungs-Middleware 12 in Daten umgewandelt, die dem relationalen Schema bzw. Datenmodell der relationalen Datenbank 13 entsprechen und somit in die relationale Datenbank 13 speicherbar sind. Auf diese Weise wird die Persistenz der Daten der objektorientierten Anwendung hergestellt und eine Entkopplung zwischen Speicherung und Verarbeitung der Daten realisiert. D.h. die Objekte der objektorientierten Anwendung 11 werden auf diese Weise dauerhaft in die relationale Datenbank 13 gespeichert und sind von der Datenbank 13 wieder abrufbar und wiederherstellbar.Fig. 1 shows a typical structure of an application case of an O / R imaging middleware. An object-oriented application 11 does not access the relational database 13 directly. Instead, the O / R mapping middleware 12 is placed therebetween to establish the connection between both sides. The objects of the object-oriented application 11 are converted by the O / R mapping middleware 12 into data corresponding to the relational schema or data model correspond to the relational database 13 and thus in the relational database 13 can be stored. In this way, the persistence of the data of the object-oriented application is established and a decoupling between storage and processing of the data is realized. That is, the objects of the object-oriented application 11 are permanently stored in this way in the relational database 13 and are retrievable from the database 13 and recoverable.
Im nachfolgenden werden die Daten der objektorientierten Anwendung, die nach dem objektorientierten Modell der objektorientierten Anwendung erstellt sind und somit als Objekte der objektorientierten Anwendung vorliegen, auch als objektorientierte Daten bezeichnet werden. Ferner werden die Daten der relationalen Datenbank, die nach dem relationalen Schema bzw. Modell der relationalen Datenbank erstellt sind und in Form von Tabellen und/oder Relationen in der relationalen Datenbank vorliegen, auch als relationale Daten bezeichnet.In the following, the data of the object-oriented application, which are created according to the object-oriented model of the object-oriented application and thus exist as objects of the object-oriented application, can also be referred to as object-oriented data. Further, the data of the relational database, which are created according to the relational schema or model of the relational database and exist in the form of tables and / or relations in the relational database, are also referred to as relational data.
Objektorientierte Software wird in vielen Anwendungen der Industrie eingesetzt. Diese objektorientierten Anwendungen wirken dabei z.B. verwaltend, regelnd, überwachend und/oder steuernd auf die industriellen Prozesse oder Abläufe und/oder auf die industriellen Komponenten oder Module ein. Als Bei- spiele können hier Produktionsprozesse, Anlagensteuerungsprozesse, Anlagen, Komponente und Module der Anlagen genannt werden. Dabei sind viele und verschiedenartige Einsatzmöglichkeiten gegeben. Ferner werden objektorientierte Anwendungen auch eingesetzt, um Abläufe und/oder Komponenten auch in- nerhalb von Produkten (z.B. Anlagen, Geräten usw.) zu steuern, zu regeln, zu verwalten und/oder zu überwachen. Auch Produkte selbst können durch objektorientierte Anwendungen gesteuert, geregelt, verwaltet und/oder überwacht werden.Object-oriented software is used in many industrial applications. These object-oriented applications act e.g. managing, regulating, monitoring and / or controlling the industrial processes or processes and / or the industrial components or modules. Examples include production processes, plant control processes, plants, components and modules of the plants. There are many and different uses. Furthermore, object-oriented applications are also used to control, govern, manage, and / or monitor processes and / or components also within products (e.g., equipment, devices, etc.). Even products themselves can be controlled, controlled, managed and / or monitored by object-oriented applications.
All diese Anwendungsfälle haben die Gemeinsamkeit, dass die Daten als Objekte der objektorientierten Anwendung behandelt werden. Eine objektorientierte Anwendung selbst ist jedoch nicht in der Lage, diese Objekte dauerhaft zu sichern. Mit der Beendigung der Anwendung und/oder mit dem Schalten oder Wechseln zwischen verschiedenen Arbeitsbereichen der Anwendung gehen die erstellten Objekte und somit die Daten der objektorientierten Anwendung verloren. Aus diesem Grund werden relationale Datenbanken eingesetzt, um eine dauerhafte Speicherung der Daten und somit der Objekte der objektorientierten Anwendung bzw. die Persistenz der objektorientierten Anwendung sicherzustellen und um die Daten dauerhaft abspeichern zu können. Dieses ist im Hinblick auf ein sicheres und korrektes Handhaben und Betreiben von Prozessen oder Abläufen und/oder Komponenten oder Modulen der jeweiligen Industrie oder Produkte von Bedeutung.All of these use cases have the common feature of treating the data as objects of the object-oriented application. An object-oriented application itself, however, is not able to secure these objects permanently. With Upon termination of the application and / or with switching or switching between different workspaces of the application, the objects created and thus the data of the object-oriented application are lost. For this reason, relational databases are used to ensure permanent storage of the data and thus of the objects of the object-oriented application or the persistence of the object-oriented application and to be able to store the data permanently. This is important in terms of safe and correct handling and operation of processes or processes and / or components or modules of the respective industry or products.
Des Weiteren ist auch ein korrektes, fehlerfreies und umfas- sendes Wiedererhalten bzw. Wiederherstellen der Objekte aus einer relationalen Datenbank wichtig, da ein korrektes und sicheres Handhaben und Betreiben von Prozessen oder Abläufen und/oder Komponenten oder Modulen der jeweiligen Industrie oder Produkte essenziell von der Vollständigkeit und der Kor- rektheit der wieder gewonnenen Objekte abhängt. Daher erfüllt eine O/R-Abbildungs-Middleware mit der Umwandlung der Objekte einer objektorientierten Anwendung in relationale Datenstrukturen und umgekehrt eine wichtigen Zweck, wobei ein korrekter Ablauf sichergestellt sein muss. Ein sicheres und korrektes Handhaben und Betreiben von Prozessen oder Abläufen und/oder Komponenten oder Modulen der jeweiligen Industrie oder Produkte ist somit stark von einer sicher und korrekt funktionierenden O/R-Abbildungs-Middleware abhängig.Furthermore, correct, error-free and comprehensive retrieval or restoration of the objects from a relational database is also important since the correct and secure handling and operation of processes or sequences and / or components or modules of the respective industry or products is essentially dependent on the Completeness and correctness of the recovered objects. Therefore, an O / R mapping middleware fulfills an important purpose by transforming the objects of an object-oriented application into relational data structures, and vice versa, and ensuring proper operation. Safe and correct handling and operation of processes or processes and / or components or modules of the respective industry or products is thus highly dependent on a secure and correctly functioning O / R imaging middleware.
Derzeit existieren mehrere Softwarelösungen, die derartigeCurrently, there are several software solutions, such
O/R-Abbildungs-Middleware implementieren. Beispiele für solche Produkte sind unter anderem Hibernate, TopLink, iBATIS, OpenJPA und Kodo . Diese herkömmlichen Softwarelösungen unterscheiden sich insbesondere darin, nach welchem Verfahren Da- ten in der Datenbank persistiert bzw. dauerhaft gesichert werden. Unterschiede können zum Beispiel in der Reihenfolge, im Umfang und/oder in der Strukturierung der Persistenzopera- tionen bestehen. Ebenso übernimmt die O/R-Abbildungs- Middleware das Abfragen von Daten aus der Datenbank, wenn diese von der Anwendung angefordert werden. Auch hier unterscheiden sich die Softwarelösungen in der Reihenfolge, im Umfang und/oder in der Strukturierung, nach der Daten aus der Datenbank gelesen werden.Implement O / R Mapping Middleware. Examples of such products include Hibernate, TopLink, iBATIS, OpenJPA and Kodo. These conventional software solutions differ, in particular, according to which method data in the database is persisted or permanently backed up. Differences may exist, for example, in the order, scope and / or structuring of the persistence operations. Likewise, the O / R imaging Middleware querying data from the database when requested by the application. Here, too, the software solutions differ in the order, scope and / or structure according to which data is read from the database.
Es ist hervorzuheben, dass die Vorgehensweisen, nach denen die Persistierung und das Abfragen erfolgen, einen entscheidenden Einfluss auf die Geschwindigkeit der Ausführung und damit die Performanz der Anwendung haben. Daher hat man das Verhalten einer O/R-Abbildungs-Middleware bei ihrem Einsatz genau zu kennen, da ansonsten drastische Einbußen bei der Systemleistung zu erwarten sind.It should be noted that the procedures for persisting and querying have a significant impact on the speed of execution and hence the performance of the application. Therefore, one has to know exactly the behavior of an O / R imaging middleware when using it, otherwise drastic losses in system performance can be expected.
Ein Aspekt beim Abrufen der Daten (Daten werden durch dieOne aspect of getting the data (data is handled by the
O/R-Abbildungs-Middleware aus der relationalen Datenbank abgefragt und der objektorientierten Anwendung in Form von Objekten bereitgestellt) stellt das sogenannte Fetching- Verhalten dar. Fetching bezieht sich im Allgemeinen auf ein möglichst effizientes Wiedergewinnen bzw. Wiederherstellen von objektorientierten Daten aus einer relationalen Datenbank und wird durch entsprechende Anfragen bzw. Abfragen seitens der objektorientierten Anwendung initiiert. Im Folgenden wird der Begriff "Fetching" für dieses Wiedergewinnen bzw. Wieder- herstellen von objektorientierten Daten verwendet.O / R mapping middleware queried from the relational database and provided to the object-oriented application in the form of objects) represents the so-called fetching behavior. Fetching generally refers to the most efficient retrieval or restoration of object-oriented data from a relational database and is initiated by appropriate requests or queries from the object-oriented application. In the following, the term "fetching" is used for this retrieval or restoration of object-oriented data.
Wenn es um Fetching geht so wird zwischen "Eager Fetching" and "Lazy Fetching" unterschieden. Unter "Eager Fetching" ist ein sehr umfangreiches und aufwendiges Wiedergewinnen bzw. Wiederherstellen von objektorientierten Daten zu verstehen, dabei wird eine Abfrage auf den Umfang eines Objektgraphen erweitert. "Lazy Fetching" bezieht sich wiederum auf ein reduziertes und schnelles Wiederherstellen von objektorientierten Daten. Da diese Begriffe auf dem Gebiet der objektorien- tierten und relationalen Modellierung üblich geworden sind, wird im Folgenden an diesen Begriffen festgehalten. Ein sogenanntes Eager Fetching zeichnet sich dadurch aus, dass beim Anfordern oder Abfragen eines Objekts durch die objektorientierte Anwendung aus einer relationalen Datenbank nicht nur der direkt korrespondierende Datensatz aus der Da- tenbank abgerufen wird, sondern darüber hinaus noch weitere Daten mitberücksichtigt werden, die über Beziehungen mit dem eigentlichen (Kern-) Datensatz assoziiert sind. Dieses Verhalten ist besonders dann vorteilhaft, wenn bei der Verarbeitung des eigentlichen Objektes in der objektorientierten An- wendung automatisch auch eine Verarbeitung von mit diesem Objekt assoziierten Daten miteinhergeht . Dieses Verhalten kann aber auch Nachteile aufweisen. Dieses ist insbesondere dann der Fall, wenn durch die Anwendungslogik der objektorientierten Anwendung assoziierte Daten nicht benötigt werden und da- her deren Abfrage und deren Erhalt überflüssig sind. Je nachdem ob assoziierte Daten mit abgefragt oder ignoriert werden sollen, handelt es sich um "Eager Fetching" oder "Lazy Fetching" .When it comes to fetching, a distinction is made between "Eager Fetching" and "Lazy Fetching". "Eager Fetching" is a very extensive and costly recovery or recovery of object-oriented data to understand a query is extended to the extent of an object graph. Again, lazy fetching refers to a reduced and fast restoration of object-oriented data. Since these terms have become commonplace in the field of object-oriented and relational modeling, these terms are used below. A so-called Eager Fetching is characterized by the fact that when requesting or querying an object by the object-oriented application from a relational database not only the directly corresponding data record from the database is retrieved, but also other data are taken into account via relationships associated with the actual (core) data set. This behavior is particularly advantageous if, during the processing of the actual object in the object-oriented application, processing of data associated with this object automatically also occurs. However, this behavior can also have disadvantages. This is the case in particular when data associated with the application logic of the object-oriented application is not required and therefore its query and its receipt are superfluous. Depending on whether associated data is to be queried or ignored, it is "Eager Fetching" or "Lazy Fetching".
Da relationale Datenmodelle mehrere verschiedene Repräsentationsformen von Beziehungen oder Assoziationen erlauben (z.B. 1-zu-l, 1-zu-n oder n-zu-m Beziehungen) und zudem die Assoziationen je nach Anwendungsfall beliebig weit reichen können, ist hier ein großer Spielraum für Implementierungen von O/R- Abbildungs-Middleware gegeben. Diese Implementierungen können auf sehr verschiedenen Wegen gelöst werden. Dabei bietet jede O/R-Abbildungs-Middleware mehrere Stellschrauben, die das Verhalten beeinflussen können und in ihrer Anzahl und Art stark variieren.Since relational data models allow several different forms of representation of relationships or associations (eg 1-to-1, 1-to-n or n-to-m relationships) and the associations can extend as far as desired depending on the application, there is a lot of room for Given implementations of O / R mapping middleware. These implementations can be solved in very different ways. Each O / R imaging middleware offers several levers that can influence behavior and vary greatly in number and type.
Eager Fetching führt dabei je nach Einstellung zu einem oder mehreren Abfrageausdrücken (sogenannte „SELECT-Statements") unterschiedlicher Komplexität. Die Folge davon ist, dass sich durch eine Vermehrung der Abfrageausdrücke die Verarbeitungs- zeit schnell vervielfachen kann.Depending on the setting, Eager Fetching results in one or more query expressions (so-called "SELECT statements") of varying complexity, as a result of which the processing time can multiply quickly by an increase in the query expressions.
Andersherum kann durch Lazy Fetching ein Abfrageausdruck ungünstig reduziert werden, so dass zumindest eine gesonderte weitere Abfrage notwendig wird und ein zusätzlicher Aufwand entsteht. Daher ist die Konfiguration des Fetching-Verhaltens für die Optimierung der Performanz ein wichtiger Bestandteil.Conversely, lazy fetching can unfavorably reduce a query expression, leaving at least one separate further query is necessary and an additional expense arises. Therefore, configuring the fetching behavior is an important part of optimizing performance.
Ferner entstehen Probleme dadurch, dass bei existierendenFurthermore, problems arise because of existing ones
Softwarelösungen das Fetching-Verhalten nur unzureichend dokumentiert ist und/oder von der Dokumentation in Details abweicht. Aufgrund der Vielzahl an Stellschrauben, die das Verhalten beeinflussen, ist eine präzise Dokumentation auch sehr schwierig. Weiterhin kann sich die Implementierung des Fet- chings in verschiedenen Versionen einer O/R-Abbildungs- Middleware ändern. Das führt zu einer veränderten Leistung bei einem Versionswechsel. Daraus resultierend sind Tests notwendig, die das Verhalten der O/R-Abbildungs-Middleware analysieren und dokumentieren. Erst darauf basierend kann die beste Konfiguration der O/R-Abbildungs-Middleware in Hinblick auf das Fetching-Verhalten derart bewerkstelligt werden, dass eine optimale Leistung der O/R-Abbildungs-Middleware erreicht werden kann.Software solutions the fetching behavior is insufficiently documented and / or deviates from the documentation in details. Due to the large number of setting screws that influence the behavior, precise documentation is also very difficult. Furthermore, the implementation of feting may change in different versions of O / R imaging middleware. This leads to a changed performance during a version change. As a result, tests are needed to analyze and document the behavior of the O / R imaging middleware. Only then can the best configuration of the O / R mapping middleware be accomplished in terms of fetching behavior such that optimal performance of the O / R imaging middleware can be achieved.
Die Vielzahl der Möglichkeiten zur Konfiguration der O/R- Ab- bildungs-Middleware Apache OpenJPA verdeutlichen die Problematik der herkömmlichen O/R-Abbildungs-Middleware- Implementierungen und bestätigen gleichzeitig die Notwendig- keit des Testens der O/R-Abbildungs-Middleware-The multitude of options for configuring the Apache OpenJPA O / R imaging middleware illustrates the problems of traditional O / R imaging middleware implementations while confirming the need to test the O / R imaging middleware.
Implementierungen, insbesondere um ein sicheres, korrektes und effizientes Handhaben und Betreiben von Prozessen oder Abläufen und/oder Komponenten oder Modulen der jeweiligen Industrie oder Produkte zu gewährleisten, die von einer sicher, korrekt und effizient funktionierenden O/R-Abbildungs- Middleware abhängig sind.Implementations, in particular to ensure the safe, correct and efficient handling and operation of processes or processes and / or components or modules of the respective industry or products that depend on a secure, correct and efficient O / R imaging middleware.
Im Folgenden wird die Vielzahl der Möglichkeiten zur Konfiguration beispielhaft anhand der O/R- Abbildungs-Middleware Apache OpenJPA erläutert. Dabei sind bei OpenJPA folgende Mechanismen möglich: 1. Konfiguration des Ladeverhaltens in einer XML- Abbildungsdatei: Hierdurch wird das Fetching-Verhalten für Beziehungen festgelegt. Das bedeutet, dass Abfragen und Ob- jekttraversierungen bzw. Objektverfolgungen über diese Bezie- hungen, die entsprechende Datenobjekte betreffen, automatisch das eingestellte Verhalten annehmen.In the following, the multitude of configuration options are explained using the Apache OpenJPA O / R mapping middleware, for example. The following mechanisms are possible with OpenJPA: 1. Load Behavior Configuration in an XML Mapping File: This sets the fetching behavior for relationships. This means that queries and object traversals or object tracking via these relationships that affect corresponding data objects automatically assume the set behavior.
2. Konfiguration des Ladeverhaltens als Notieren entsprechender Instanzvariablen im Code: Wie bei der Konfiguration in der XML-Datei wird das Fetching für Beziehungen entsprechend eingestellt, nunmehr aber im Code.2. Configuration of the loading behavior as a note of corresponding instance variables in the code: As with the configuration in the XML file, the fetching for relationships is set accordingly, but now in the code.
3. Konfiguration von sogenannten Fetch Groups, in denen gezielt Beziehungen zusammengefasst werden können. Für diese Fetch Groups kann das Verhalten z.B. in Richtung Eager Fetching oder Lazy Fetching festgelegt werden. Die Fetch Groups können neben den zuvor genannten Einstellungen existieren und zudem zur Laufzeit aktiviert und deaktiviert werden.3. Configuration of so-called Fetch Groups, in which targeted relationships can be summarized. For these fetch groups, the behavior may be e.g. towards Eager Fetching or Lazy Fetching. The Fetch Groups can exist in addition to the aforementioned settings and can also be activated and deactivated at runtime.
4. Konfiguration einer Abfrage zur Laufzeit, um gezielt das Fetching zu konfigurieren. Hierbei ist es dem Entwickler überlassen, ob eine Abfrage in Einzelfällen oder generell mit dem jeweiligen Fetching-Verhalten durchgeführt wird. Diese Möglichkeit ist ebenfalls mit den zuvor genannten kombinier- bar.4. Configure a query at runtime to specifically configure the fetching. It is up to the developer, whether a query in individual cases or generally with the respective Fetching behavior is performed. This possibility can also be combined with the previously mentioned.
Andere Produkte bieten ähnliche Mechanismen an, allerdings in anderen Notationen und mit anderem Verhalten. So bietet Hi- bernate ebenfalls XML-Konfigurationen und Notationen für eine Eager- und Lazy-Fetching-Einstellung an, zudem auch noch verschiedene Varianten von Ausdrücken zum Abfragen einer relationalen Datenbank wie zum Beispiel von SQL- (Structured Query Language) -Ausdrücken „join", „select" und „subselect", mit denen teilweise ein differenzierteres Verhalten einstellen lässt. Dafür fehlen aber die Fetch Groups.Other products offer similar mechanisms, but in other notations and with different behavior. For example, Bibernate also offers XML configurations and notations for an Eager and Lazy Fetching setting, as well as several variants of expressions for querying a relational database, such as Structured Query Language (SQL) expressions "," Select "and" subselect ", which sometimes allow a more nuanced behavior, but the Fetch Groups are missing.
Um eine sinnvolle Leistungsanalyse durchführen zu können, muss beispielsweise bekannt sein, welcher Mechanismus Priori- tät bzw. Vorrang vor einem anderen hat. Dies ist insbesondere bei sich widersprechenden Definitionen wichtig. Im OpenJPA zum Beispiel ist die Priorisierung nicht dokumentiert und muss daher durch Tests ermittelt werden. Des Weiteren beste- hen neben den oben genannten Mechanismen auch Abstufungen des Eager Fetching-Verhaltens an sich, die angepasst werden können :In order to be able to carry out a meaningful performance analysis, it must be known, for example, which has priority over another. This is especially important in conflicting definitions. For example, in OpenJPA, prioritization is not documented and therefore needs to be determined through testing. Furthermore, in addition to the above-mentioned mechanisms, there are also gradations of the Eager Fetching behavior per se, which can be adapted:
1. Es besteht die Möglichkeit, festzulegen, mit welcher Tiefe hintereinander folgende Beziehungen verfolgt werden sollen. Grundsätzlich kann durch Eager Fetching nicht nur das Objekt der direkten Beziehung geladen werden, sondern auch weitere Datenobjekte berücksichtigt werden, die in Relation zum bereits nachgeladenen Objekt stehen. Hierbei ist zu be- achten, dass es sich nicht um eine binäre Einstellung handelt, sondern um eine, die graduell angepasst werden sollte. Dementsprechend entstehen für dieses Szenario gleich mehrere Testfälle.1. It is possible to determine the depth with which the following relationships should be followed. Basically, Eager Fetching can not only load the object of the direct relationship, but also take into account other data objects that are related to the already reloaded object. It should be noted that this is not a binary setting, but one that should be gradually adjusted. Accordingly, several test cases are created for this scenario.
2. Es wird angeboten, die Formulierung von Statements zu beeinflussen: Je nach Abfrage können sich verschiedene Join- Ausdrücke bzw. alternativ dazu die Auftrennung in individuelle Select-Ausdrücke unterschiedlich auf die resultierende Performanz auswirken. Auch hier ist sowohl generell als auch pro Abfragefall eine Einstellung möglich.2. It is offered to influence the formulation of statements: Depending on the query, different join expressions or, alternatively, the separation into individual select expressions may have different effects on the resulting performance. Again, a setting is possible both in general and per query case.
Dadurch, dass die unterschiedlichen Konfigurationspunkte miteinander kombiniert werden können, entsteht eine Vielzahl von Kombinationen, die in unterschiedlichen Testfällen berück- sichtigt werden müssen. Der Umfang der Konfigurationsmöglichkeiten macht deutlich, dass ein Testen des Fetching- Verhaltens von großem Nutzen ist.The fact that the different configuration points can be combined with each other results in a large number of combinations that have to be taken into account in different test cases. The range of configuration options makes it clear that testing the fetching behavior is very useful.
Bisher wurde allerdings auf die bestehende Dokumentation ver- traut und bei Leistungsproblemen das Verhalten gezielt für den performanzkritischen Fall untersucht. Folglich wurden Tests bisher allenfalls individuell für einen Integrationsfall einer bestimmten O/R-Abbildungs-Middleware durchgeführt. Für einen wirtschaftlichen Einsatz birgt dieses Vorgehen aber zumindest die folgenden Probleme mit sich:So far, however, the existing documentation has been trusted and, in the case of performance problems, the behavior has been specifically investigated for the performance-critical case. As a result, tests have hitherto been performed at best individually for an integration case of a particular O / R imaging middleware. For economic use, however, this approach involves at least the following problems:
1. Beim Schritt der Vorbereitung: Für die Anwendungslogik müssen die relevanten Beziehungen im Datenmodell identifiziert werden. Hierbei entsteht die besondere Problematik, dass das Datenmodell zunächst analysiert werden muss, wenn Datenmodell und Integration der O/R-Abbildungs-Middleware von unterschiedlichen Personen durchgeführt werden. Der Analyse- Vorgang besteht darin, die für das Fetching-Verhalten relevanten Stellen im Datenmodell zu identifizieren.1. In the preparation step: For the application logic, the relevant relationships in the data model must be identified. This creates the special problem that the data model must first be analyzed when the data model and integration of the O / R imaging middleware are performed by different people. The analysis process is to identify the locations relevant to the fetching behavior in the data model.
2. Beim Test-Design: Die Einrichtung der Tests muss verschiedene Faktoren berücksichtigen: Es müssen Testfälle je nach Beziehungstyp, Tiefe und auch Konfigurationsmöglichkeit der2. In the test design: The setup of the tests must take into account several factors: There must be test cases depending on the relationship type, depth and configuration option of the
O/R-Abbildungs-Middleware erstellt werden. Das erfordert temporäre Änderungen im Code und in der Konfiguration - und das rein zu Testzwecken. Darüber hinaus ist die Erstellung von Testdaten notwendig, die in den meisten Fällen aufwändiger ist als die Erzeugung von Testdaten für Funktionstests, da die Daten ausreichende Tiefe in Hinblick auf die Beziehungen aufweisen müssen.O / R imaging middleware are created. This requires temporary changes in code and configuration - purely for testing purposes. It also requires the creation of test data, which in most cases is more expensive than generating test data for functional tests, since the data must have sufficient depth in terms of relationships.
3. Bei Testdurchführungen: Die Auswertung der Tests auf manu- eile Weise bedeutet die Auswertung der an die Datenbank gesendeten Abfrageausdrücke - bei der manuellen Auswertung ist dies ein zeitaufwändiger und fehleranfälliger Prozess. In der Realität werden Abfrageausdrücke in der Standardausgabe ausgegeben. Damit diese mit bestimmten Ausführungen in der An- wendung assoziiert werden können, muss die Anwendung modifiziert werden, um Markierungen in der Standardausgabe zu erhalten. Dadurch entsteht wiederum das Risiko, dass für den Test des Fetching-Verhaltens die Anwendung ungewollt modifiziert wird oder nach dem Test entsprechende Markierungsanwei- sungen nicht aus der Anwendungslogik entfernt werden.3. In the case of test execution: The evaluation of the tests in a manual way means the evaluation of the query expressions sent to the database - in the case of manual evaluation this is a time-consuming and error-prone process. In reality, query expressions are printed in standard output. In order for these to be associated with particular implementations in the application, the application must be modified to receive marks in the standard output. This, in turn, creates the risk that the application is unintentionally modified for testing the fetching behavior, or that marking instructions corresponding to the test are not removed from the application logic.
4. Bei der Infrastruktur: Erreicht das zugrunde liegende Entwicklungsprojekt eine kritische Größe, so sind auch die In- stallation, Konfiguration und Ausführung der zugrunde liegenden Software Ressourcen- und zeitaufwändig. Dies bedeutet, dass zum Test des Fetching-Verhaltens Software automatisch mit ausgeführt wird, die zur Ermittlung der Ergebnisse nicht relevant ist.4. Infrastructure: If the underlying development project reaches a critical size, then the Installation, configuration and execution of the underlying software resources and time consuming. This means that to test the fetching behavior, software is automatically run that is not relevant to determining the results.
Darüber hinaus weisen die bisherigen Vorgehensweisen keine Systematik auf. Testergebnisse aus einem Anwendungsfall können nicht grundsätzlich für einen neuen Anwendungsfall über- nommen werden, da unter Umständen die vorliegenden Kombinationen hinsichtlich der Konfiguration und Datenmodell unterschiedlich sind.In addition, the previous procedures have no systematics. Test results from a use case can not basically be taken over for a new use case, since under certain circumstances the existing combinations differ in terms of configuration and data model.
Die Aufgabe der vorliegenden Erfindung besteht darin, eine effizient und korrekt funktionierende O/R-Abbildungs-The object of the present invention is to provide an efficient and correct functioning O / R imaging
Middleware bereitzustellen, um unter anderem ein effizientes und korrektes Handhaben und Betreiben von Prozessen oder Abläufen und/oder Komponenten oder Modulen in Industrieanwendungen und/oder in Produkten zu gewährleisten, die O/R- Abbildungs-Middlewares verwenden.To provide, inter alia, efficient and correct handling and operation of processes or processes and / or components or modules in industrial applications and / or products that use O / R imaging middleware.
Die Aufgabe wird gelöst durch ein Testmodul mit den Merkmalen des Anspruchs 1, durch ein Verfahren mit den Merkmalen des Anspruchs 10, durch ein Computerprogrammprodukt mit den Merk- malen des Anspruchs 19 und/oder durch einen Datenträger mit den Merkmalen des Anspruchs 20.The object is achieved by a test module having the features of claim 1, by a method having the features of claim 10, by a computer program product having the features of claim 19 and / or by a data carrier having the features of claim 20.
Die Unteransprüche geben weitere Ausgestaltungen der vorliegenden Erfindung an.The subclaims specify further embodiments of the present invention.
Die oben genannte Aufgabe wird mittels eines Testmoduls gelöst, wobei das Testmodul konfiguriert ist, eine Middleware zu testen, welche zum gegenseitigen Abbilden von objektorientierten Daten einer objektorientierten Anwendung und relatio- nalen Daten einer relationalen Datenbank konfiguriert ist, wobei das Testmodul aufweist: ein Datenmodell-Modul, das ein Datenmodell zum Modellieren von Beziehungstypen relationaler Datenmodelle im Hinblick auf objektorientierte Datenmodelle vorgibt; ein Testdatenmodul, das Testdaten aufweist, wobei die Testdaten gemäß einem Datenmodell der objektorientierten Anwendung bereitgestellte Testdaten sind; ein Testfallmodul, das vorgegebene Testfälle zum Testen der Middleware aufweist, wobei die Testfälle Abfragen aufweisen, die Datenabfragen der objektorientierten An- wendung an die relationale Datenbank über die Middleware entsprechen; und ein Analysemodul, das konfiguriert ist, Ergebnisse der vorgegebenen Testfälle zu analysieren.The above object is achieved by means of a test module, wherein the test module is configured to test a middleware which is configured to mutually map object-oriented data of an object-oriented application and relational database relational data, the test module comprising: a data model module that specifies a data model for modeling relationship types of relational data models with respect to object-oriented data models; a test data module having test data, the test data being test data provided in accordance with a data model of the object-oriented application; a test case module having predetermined test cases for testing the middleware, the test cases having queries corresponding to data queries of the object-oriented application to the relational database via the middleware; and an analysis module configured to analyze results of the given test cases.
Auf diese Weise wird durch die vorliegende Erfindung eine Systematisierung von bisher von konkreten Anwendungsfällen abhängigen implementierten Testverfahren ermöglicht. D.h. die vorliegende Erfindung stellt eine Methodik zum anwendungs- und/oder produktunabhängigen Testen von O/R-Abbildungs- Middlewares bereit. Gemäß der vorliegenden Erfindung wird beim Testen der O/R-Abbildungs-Middlewares ein Datenmodell zugrunde gelegt, welches die relevanten Fälle des Fetching- Verhaltens im Allgemeinen abdeckt.In this way, the present invention enables a systematization of previously implemented test methods dependent on specific application cases. That the present invention provides a methodology for application and / or product independent testing of O / R imaging middleware. In accordance with the present invention, testing the O / R imaging middleware is based on a data model that generally covers the relevant cases of fetching behavior.
Darüber hinaus werden durch das Testmodul Testfälle bereitgestellt, die entsprechende Ausführungen gemäß der zugrundeliegenden objektorientierten Anwendung implementieren, um auf ein Durchführen des Fetchings in der entsprechenden O/R- Abbildungs-Middleware abzuzielen.In addition, the test module provides test cases that implement corresponding implementations according to the underlying object-oriented application to target fetching in the corresponding O / R mapping middleware.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist das Datenmodell in einer objektorientierten Programmiersprache implementiert.According to one embodiment of the present invention, the data model is implemented in an object-oriented programming language.
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung weist das Testdatenmodul eine objektorientierte Implementierung der Testdaten auf. Dadurch wird eine flexible und umfassende Handhabung des Datenmodells und/oder der Testdaten mit allen Vorteilen der objektorientierten Programmierung ermöglicht.According to a further exemplary embodiment of the present invention, the test data module has an object-oriented implementation of the test data. This allows a flexible and comprehensive handling of the data model and / or the test data with all the advantages of object-oriented programming.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist das Testmodul konfiguriert, das Datenmodell auf die Testdaten anzuwenden. Dabei werden die in den Testdaten enthaltenen Beziehungen und Strukturen hinsichtlich der im Datenmodell enthaltener Beziehungstypen relationaler Datenmodelle analysiert.According to an embodiment of the present invention, the test module is configured to apply the data model to the test data. In doing so, the relationships and structures contained in the test data are analyzed with regard to the relationship types of relational data models contained in the data model.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Testmodul ein Einspielmodul auf, das konfiguriert ist, die Testdaten zum Abspeichern in der relationalen Daten- bank über die Middleware an die relationale Datenbank zu übermitteln .According to one exemplary embodiment of the present invention, the test module has a write-in module which is configured to transmit the test data for storage in the relational database via the middleware to the relational database.
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung ist das Testfallmodul konfiguriert, in der relationa- len Datenbank abgespeicherte Testdaten unter Verwendung der Testfälle durch die Middleware abzufragen.In accordance with another embodiment of the present invention, the test case module is configured to query test data stored in the relational database using the test cases through the middleware.
Auf diese Weise erlaubt die vorliegende Erfindung, den erfindungsgemäßen anwendungs- und/oder produktunabhängigen Ansatz des Testens mit konkreten Ausgestaltungen einer konkreten objektorientierten Anwendung, einer konkreten Middleware und/oder einer konkreten relationalen Datenbank zu verbinden,In this way, the present invention allows the inventive application and / or product-independent approach of testing to be combined with concrete configurations of a concrete object-oriented application, a concrete middleware and / or a concrete relational database,
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist das Testfallmodul konfiguriert, die durch die Middleware abgefragten Testdaten unter Verwendung des Datenmodells aus dem Datenmodell-Modul und der Testdaten aus dem Testdatenmodul zu analysieren.According to an embodiment of the present invention, the test case module is configured to analyze the test data retrieved by the middleware using the data model from the data model module and the test data from the test data module.
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung ist das Analysemodul konfiguriert, Ergebnisse der vorgegebenen Testfälle unter Verwendung von Analyseergebnissen des Testfallmoduls zu analysieren. Auf diese Weise wird eine vielschichtige Analyse des auf den Testdaten durchgeführten Abbildens relationaler Daten auf objektorientierte Daten ermöglicht.According to another embodiment of the present invention, the analysis module is configured to analyze results of the predetermined test cases using analysis results of the test case module. In this way, a multi-layered analysis of the mapping of relational data to object-oriented data on the test data is made possible.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist das Analysemodul konfiguriert, Ergebnisse der von dem Analysemodul durchgeführten Analysen einem Nutzer des Testmoduls bereitzustellen.According to an exemplary embodiment of the present invention, the analysis module is configured to provide results of the analyzes performed by the analysis module to a user of the test module.
Auf diese Weise kann eine strukturierte Ausgabe der Analyseergebnisse ermöglicht werden, die eine systematische Analyse, Auswertung und Dokumentation der getesteten Middleware ermöglicht.In this way a structured output of the analysis results can be made possible, which enables a systematic analysis, evaluation and documentation of the tested middleware.
Die oben genannte Aufgabe wird ferner mittels eines Verfahrens zum Testen einer Middleware gelöst, wobei die Middleware zum gegenseitigen Abbilden von objektorientierten Daten einer objektorientierten Anwendung und relationalen Daten einer re- lationalen Datenbank konfiguriert ist, wobei das Verfahren aufweist :The above object is further achieved by a method for testing a middleware, wherein the middleware is configured to mutually map object-oriented data of an object-oriented application and relational data of a relational database, the method comprising:
Bereitstellen (und Vorgeben) eines Datenmodells zum Modellieren von Beziehungstypen relationaler Datenmodelle im Hinblick auf objektorientierte Datenmodelle; - Bereitstellen von Testdaten, wobei die Testdaten gemäß einem Datenmodell der objektorientierten Anwendung bereitgestellte Testdaten sind;Providing (and providing) a data model for modeling relationship types of relational data models with respect to object-oriented data models; Providing test data, the test data being test data provided according to a data model of the object-oriented application;
Bereitstellen von vorgegebenen Testfällen zum Testen der Middleware, wobei die Testfälle Abfragen aufweisen, die Datenabfragen der objektorientierten Anwendung an die relationale Datenbank über die Middleware entsprechen; und Analysieren von Ergebnissen der vorgegebenen Testfälle.Providing predetermined test cases for testing the middleware, the test cases having queries corresponding to data queries of the object-oriented application to the relational database via the middleware; and analyzing results of the given test cases.
Auch durch das Verfahren zum Testen einer Middleware wird eine Systematisierung von bisher von konkreten Anwendungsfällen abhängigen, implementierten Tests ermöglicht, wie bereits oben hinsichtlich des Testmoduls ausgeführt. Die Schritte des Verfahrens entsprechen im Allgemeinen den Vorgängen, die durch das oben vorgestellte Testmodul und/oder die in dem Testmodul enthaltenen Module durchgeführt werden. Daher können die Vorteile der Merkmale des Testmoduls auch im Bezug auf die entsprechenden Schritte des vorstehend eingeführten Verfahrens aufgeführt werden.The method for testing a middleware also makes it possible to systematize previously implemented, dependent on specific use cases, implemented tests, as already described above with regard to the test module. The steps of the method generally correspond to the operations performed by the above-presented test module and / or the modules included in the test module. Therefore, the advantages of the features of the test module can also be listed in relation to the corresponding steps of the method introduced above.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist das Datenmodell in einer objektorientierten Programmiersprache implementiert.According to one embodiment of the present invention, the data model is implemented in an object-oriented programming language.
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung werden die Testdaten in Form einer objektorientierte Implementierung bereitgestellt.According to another embodiment of the present invention, the test data is provided in the form of an object-oriented implementation.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Verfahren ein Anwenden des Datenmodells auf die Testdaten auf. Dabei werden die in den Testdaten enthaltenen Beziehungen und Strukturen hinsichtlich der Beziehungstypen relationaler Datenmodelle analysiert.According to an embodiment of the present invention, the method comprises applying the data model to the test data. In the process, the relationships and structures contained in the test data are analyzed with regard to the relationship types of relational data models.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Verfahren ein Übermitteln der Testdaten über die Middleware zum Abspeichern der Testdaten in der relationalen Datenbank auf.According to an embodiment of the present invention, the method comprises transmitting the test data via the middleware for storing the test data in the relational database.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Verfahren ein Abfragen von in der relationalen Da- tenbank abgespeicherten Testdaten durch die Middleware unter Verwendung der Testfälle auf.According to an embodiment of the present invention, the method comprises querying the test data stored in the relational database by the middleware using the test cases.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Verfahren ein Analysieren der durch die Middleware abgefragten Testdaten unter Verwendung des bereitgestellten Datenmodells und der bereitgestellten Testdaten auf. Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Verfahren ein Analysieren von Ergebnissen der vorgegebenen Testfälle unter Verwendung von Ergebnissen des Ana- lysierens der durch die Middleware abgefragten Testdaten auf.According to an embodiment of the present invention, the method comprises analyzing the test data queried by the middleware using the provided data model and the provided test data. According to an embodiment of the present invention, the method comprises analyzing results of the predetermined test cases using results of analyzing the test data retrieved by the middleware.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Verfahren ein Bereitstellen von Ergebnissen des Analysierens der Ergebnisse der vorgegebenen Testfälle auf.According to an embodiment of the present invention, the method comprises providing results of analyzing the results of the predetermined test cases.
Die oben genannte Aufgabe wird auch mittels eines Computerprogrammprodukts gelöst, das eine Kodierung aufweist, die konfiguriert ist, das vorstehend skizzierte und nachfolgend genauer erläuterte Verfahren implementieren.The above object is also achieved by a computer program product having a coding configured to implement the method outlined above and explained in more detail below.
Dabei kann die Kodierung in einem Datenträger enthalten sein. Ferner kann das Computerprogrammprodukt konfiguriert sein, das Verfahren durchzuführen, wenn das Computerprogrammprodukt mittels einer rechnenden Einheit (z.B. eines Prozessors) ausgeführt wird.The coding can be contained in a data carrier. Further, the computer program product may be configured to perform the method when the computer program product is executed by a computing unit (e.g., a processor).
Die oben genannte Aufgabe wird ferner mittels eines Datenträgers gelöst, wobei der Datenträger das vorstehend erläuterte Computerprogrammprodukt aufweist .The above object is further achieved by means of a data carrier, wherein the data carrier has the computer program product explained above.
Durch die vorliegende Erfindung, insbesondere durch das Bereitstellen eines Testmoduls, wird eine deutliche Zeitersparnis für die Vorbereitung, das Design sowie für die Durchführung der Tests und der Analyse der Testergebnisse erzielt. Gemäß den bekannten Testverfahren muss für derartige Tests die Infrastruktur der Anwendung bereitgestellt werden, die aber für die Tests konzeptionell nicht notwendig ist. In großen Softwareprojekten ist dies mit erheblichen Ressourcenaufwand und Zeiteinbußen verbunden. Die vorliegende Erfindung vermeidet bzw. umgeht dieses Problem. Somit stellt die vor- liegende Erfindung ein effizientes Testen von O/R-Abbildungs- Middlewares auf, das zeitsparend und Ressourcen sparend durchgeführt wird. Ferner lässt die vorliegende Erfindung ein Vergleichen der Testergebnisse unterschiedlicher O/R-Abbildungs-Middleware- Lösungen zu, da das Testen auf eine anwendungs- und/oder produktunabhängige Weise durchgeführt wird. Bei einem Austausch der Produkte werden dann Leistungsprobleme der einzelnen Middlewares erkennbar.The present invention, particularly by providing a test module, provides significant time savings for the preparation, design, and performance of the tests and analysis of the test results. According to the known test methods, the infrastructure of the application must be provided for such tests, but this is not conceptually necessary for the tests. In large software projects this is associated with considerable resource expenditure and time losses. The present invention avoids or circumvents this problem. Thus, the present invention provides efficient O / R mapping middleware testing that is time efficient and resource efficient. Further, the present invention allows comparing the test results of different O / R imaging middleware solutions, as the testing is done in an application and / or product independent manner. Replacing the products will then reveal performance issues with each middleware.
Zudem erfordern Vorbereitung, Design, Durchführung der Tests und Analyse der Ergebnisse Fachkenntnisse, die nun einheit- lieh in dem Testmodul zur Verfügung gestellt werden. Dieses muss nicht mehr für jeden individuellen Anwendungsfall einzeln durchgeführt werden.In addition, preparation, design, testing, and analysis of results require expertise that is now made available throughout the test module. This no longer has to be done individually for each individual application.
Ferner wird die eigentliche Anwendung, in die eine O/R- Mapping-Middleware integriert werden soll, durch die Tests nicht berührt. Dadurch wird ausgeschlossen, dass zu Analysezwecken unbeabsichtigte Modifikationen untergebracht werden, welche die eigentliche Anwendung beschädigen oder stören können. Des Weiteren werden die Daten in der Datenbank nicht mit den Testdaten vermengt, da die Tests eigene Daten benutzen, die von den eigentlichen Anwendungsdaten getrennt werden können und anschließend auch so gelöscht werden können, dass die Anwendungsdaten von der Löschung unberührt bleiben.Furthermore, the actual application in which an O / R mapping middleware is to be integrated is not affected by the tests. This rules out the possibility of accommodating unintentional modifications for analysis purposes, which can damage or disturb the actual application. Furthermore, the data in the database is not mixed with the test data because the tests use their own data, which can be separated from the actual application data and can then be deleted so that the application data remain unaffected by the deletion.
Im Folgenden werden Ausführungsformen der vorliegenden Erfindung detailliert mit Bezug auf die beigefügten Figuren beschrieben .Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
Es zeigen:Show it:
Fig. 1 ein System mit einer konventionellen O/R Abbildungs- Middleware; und1 shows a system with a conventional O / R imaging middleware; and
Fig. 2 ein System mit einem Testmodul gemäß einem Ausfüh- rungsbeispiel der vorliegenden Erfindung.2 shows a system with a test module according to an embodiment of the present invention.
Es gilt also sicherzustellen, dass die O/R-Abbildungs- Middleware 12 effizient und korrekt funktioniert und dass die O/R-Abbildungs-Middleware 12 beim Abbilden von relationalen Daten auf objektorientierte Daten keine Leistungseinbußen mit sich bringt. Wenn diese Bedingungen erfüllt sind, sind ein sicheres, korrektes und effizientes Handhaben und Betreiben von Prozessen oder Abläufen und/oder Komponenten oder Modulen der in einer Industrieanwendung und/oder in Produkten gewährleistet .It is therefore important to ensure that the O / R mapping middleware 12 is working efficiently and correctly and that the O / R mapping middleware 12 does not sacrifice performance when mapping relational data to object-oriented data. When these conditions are met, safe, correct and efficient handling and operation of processes or processes and / or components or modules are ensured in an industrial application and / or in products.
Dieses wird durch die Testeinrichtung bzw. durch ein Testmo- dul 20 erreicht. Dabei weist die Testeinrichtung bzw. dasThis is achieved by the test device or by a test module 20. In this case, the test device or the
Testmodul 20 zunächst ein Datenmodell-Modul 201 auf, das ein Datenmodell zum Modellieren von Beziehungstypen relationaler Datenmodelle enthält.Test module 20, first, a data model module 201, which contains a data model for modeling relationship types of relational data models.
Durch das Datenmodell werden verschiedene Beziehungstypen relationaler Datenbanken abgedeckt, die auf das Fetching- Verhalten einer O/R-Abbildungs-Middleware Auswirkung haben. Solche Beziehungstypen sind beispielsweise 1-zu-l Beziehungen, 1-zu-n Beziehungen, n-zu-m Beziehungen. Ferner werden beispielsweise auch Abbildungen von Tabellen auf Klassen und vice versa, Behandlung von Attributen mit komplexen Typen, Abbildung von Assoziationen und Aggregationen und/oder Abbildung von Vererbungen durch das Datenmodell behandelt.The data model covers various relationship types of relational databases that affect the fetching behavior of an O / R mapping middleware. Such relationship types are, for example, 1-to-1 relationships, 1-to-n relationships, n-to-m relationships. Furthermore, for example, illustrations of tables on classes and vice versa, treatment of attributes with complex types, mapping of associations and aggregations and / or mapping of inheritances by the data model are also discussed.
Das Datenmodell ist dabei in einer objektorientierten Programmiersprache implementiert. Optional kann die Bereitstellung von standardisierten Anweisungen für ein relationales Datenbanksystem notwendig sein, um die entsprechende Datenstruktur einzurichten. Dieser Teil ist in den Fällen nicht notwendig, wenn die O/R-Abbildungs-Middleware eine Funktion bereitstellt, aus einem vorhandenen Datenmodell auf der objektorientierten Seite eine entsprechende relationale Datenstruktur in der Datenbank zu erzeugen.The data model is implemented in an object-oriented programming language. Optionally, the provision of standardized relational database system instructions may be necessary to establish the appropriate data structure. This part is not necessary in cases where the O / R mapping middleware provides a function of creating an appropriate relational data structure in the database from an existing data model on the object-oriented page.
Das Datenmodell ist ein abstraktes Datenmodell, das allgemein und nicht auf konkrete Anwendungen oder Produkte ausgerichtet ist. Es definiert allgemeine Grundsätze des Abbildens der objektorientierten Daten auf relationale Daten und vice versa. Ferner hat das Testmodul 20 ein Testdatenmodul 202, das zum Bereitstellen von Testdaten konfiguriert ist. Die Testdaten werden dabei so bereitgestellt, dass sie den nötigen Umfang aufweisen, um die Konsequenzen des eingestellten Fetching-The data model is an abstract data model that is general and not focused on concrete applications or products. It defines general principles of mapping the object-oriented data to relational data and vice versa. Furthermore, the test module 20 has a test data module 202 that is configured to provide test data. The test data are provided in such a way that they have the necessary scope to cope with the consequences of the set fetching
Verhaltens mit unterschiedlicher Tiefe untersuchen zu können. D.h. die Testdaten sind für Abfragen unterschiedlicher Tiefe konstruiert, wobei die Abfragen den Abfragen entsprechen, die tatsächlich von der objektorientierten Anwendung über die O/R-Abbildungs-Middleware 12 an die relationale Datenbank 13 übermittelt werden, um die in der relationalen Datenbank 13 gespeicherten Daten wiederzugewinnen.Being able to study behavior with different depths. That the test data is constructed for queries of varying depth, the queries corresponding to the queries actually transmitted from the object-oriented application via the O / R mapping middleware 12 to the relational database 13 to retrieve the data stored in the relational database 13 ,
Die Testdaten werden über eine objektorientierte Implementie- rung des Testmoduls 20 eingepflegt und repräsentieren beispielhaft objektorientierte Daten der konkreten objektorientierten Anwendung. Die Testdaten werden dabei ausschließlich zum Testen der O/R-Abbildungs-Middleware 12 verwendet. Auf diese Weise wird eine Unabhängigkeit des Testmoduls 20 von der verwendeten O/R-Abbildungs-Middleware 12 und dem verwendeten Datenbanksystem 13 hergestellt.The test data are entered via an object-oriented implementation of the test module 20 and represent exemplary object-oriented data of the concrete object-oriented application. The test data is used exclusively for testing the O / R imaging middleware 12. In this way, independence of the test module 20 from the O / R mapping middleware 12 used and the database system 13 used is established.
Auf die in dem Testdatenmodul 202 enthaltenen Testdaten wird das im Datenmodell-Modul 201 enthaltene Datenmodell angewen- det. D.h. die Testdaten werden hinsichtlich ihrer objektorientierten Struktur und ihrer Beziehungen analysiert und durch das relationale Beziehungen allgemein interpretierende Datenmodell werden die für das O/R-Abbilden notwendigen Beziehungen und Strukturen abgeleitet, wobei dies nur auf Basis des Datenmodells des Testmoduls 20 bzw. des Datenmodell-ModulsThe data model contained in the data model module 201 is applied to the test data contained in the test data module 202. That the test data is analyzed for its object-oriented structure and relationships, and the Relational Relationship-General Data Model derives the relationships and structures necessary for O / R mapping, based only on the data model of the test module 20 or data model module
201 und nicht auf Basis des tatsächlich gegebenen Modells der relationalen Datenbank 13 geschieht.201 and not on the basis of the actually given model of the relational database 13 happens.
Das Testmodul 20 weist des Weiteren ein Einspielmodul 203 auf, wobei das Einspielmodul 203 konfiguriert ist, die Testdaten aus dem Testdatenmodul 202 an die O/R-Abbildungs- Middleware 12 zu übermitteln, so wie es üblicher weise auch durch die objektorientierte Anwendung geschehen würde. Ferner werden die Testdaten von der O/R-Abbildungs-MiddlewareThe test module 20 furthermore has a dubbing module 203, wherein the dubbing module 203 is configured to transmit the test data from the test data module 202 to the O / R imaging middleware 12, as would otherwise be done by the object-oriented application. Further, the test data is from the O / R imaging middleware
12 wie vorgegeben bearbeitet und in die relationale Datenbank12 edited as specified and in the relational database
13 abgespeichert. Anschließend werden die in der relationalen Datenbank 13 gespeicherten Testdaten durch das Testmodul 20 zu Testzwecken abgefragt. Dabei sendet das Testmodul 20 Abfragen, die den von der objektorientierten Anwendung gesendeten Abfragen entsprechen.13 stored. Subsequently, the test data stored in the relational database 13 are queried by the test module 20 for test purposes. In doing so, the test module 20 sends queries that correspond to the queries sent by the object-oriented application.
Hierfür weist das Testmodul 20 ein Testfallmodul 204 auf. Das Testfallmodul 204 weist vorgefertigte Testfälle auf, die nach unterschiedlichen Aspekten einer Fetching-Einstellung getestet werden können. D.h. die Testfälle geben Abfragen für die Testdaten vor, wobei die Abfragen denen der objektorientier- ten Anwendung entsprechen. Die Testfälle formulieren Datenzugriffe auf die relationale Datenbank 13, wobei die Datenzugriffe ausgestaltet sind, die relevanten Stellen des objektorientierten Datenmodells abzudecken und das Fetching- Verhalten einer O/R-Abbildungs-Middleware je nach Konfigura- tion auszulösen.For this purpose, the test module 20 has a test case module 204. The test case module 204 has ready-made test cases that can be tested for different aspects of a fetching setting. That the test cases provide queries for the test data, with the queries matching those of the object-oriented application. The test cases formulate data accesses to the relational database 13, wherein the data accesses are designed to cover the relevant places of the object-oriented data model and to trigger the fetching behavior of an O / R mapping middleware, depending on the configuration.
Das Testfallmodul 204 erhält die Testdaten, die objektorientierte Daten sind, von dem Testdatenmodul 202, Ergebnisse der auf Testdaten ausgeführten Abfragen in der relationalen Da- tenbank 13 von der O/R-Abbildungs-Middleware und das Datenmodell des Datenmodell-Moduls 201.The test case module 204 obtains the test data, which is object-oriented data, from the test data module 202, results of the queries performed on test data in the relational database 13 from the O / R imaging middleware, and the data model of the data model module 201.
Der Testfallmodul 204 stellt Beziehungen zwischen den erhaltenen Daten her, welche Aussagen darüber treffen helfen, wie gut die Ergebnisse auf die von der O/R-Abblidungs-Middleware 12 gestellten Abfragen den tatsächlich von der objektorientierten Anwendung gewünschten oder erwarteten Ergebnissen entsprechen .The test case module 204 establishes relationships between the obtained data which will help to determine how well the results on the queries made by the O / R blur middleware 12 correspond to the results actually desired or expected by the object-oriented application.
Das Testfallmodul 204 erfasst Abfrageausdrücke, um die Auswertung der erhaltenen Daten zu unterstützen. Das Testmodul 20 gibt über eine Standardausgabe Abfrageausdrücke aus. Da die Ausgabe nach den Testfällen strukturiert ist, ist die Zu- Ordnung von Testfällen und resultierenden Abfrageausdrücken zum Zweck der Auswertung möglich. Auf diese Weise wird die Auswertung pro Testfall automatisiert. Es ist darüber hinaus möglich, die Abfrageausdrücke maschinell auszuwerten und die Testresultate in aggregierter Form bereitzustellen.The test case module 204 detects query expressions to aid in the evaluation of the data obtained. The test module 20 outputs query expressions via a standard output. Since the output is structured according to the test cases, the Order of test cases and resulting query expressions for the purpose of evaluation possible. In this way, the evaluation is automated per test case. It is also possible to machine the query expressions and to provide the test results in an aggregated form.
Beim Erhalten der Ergebnisse auf Abfragen hinsichtlich der Testdaten erstellt die O/R-Abbildungs-Middleware eine Standardausgabe (z.B. eine Log-Datei) 21, welche von einem Analy- semodul 205 analysiert wird. Dabei werden die im Testfallmodul 204 erhaltenen Daten und die im Testfallmodul 204 gemachten Erkenntnisse berücksichtigt.In obtaining the results on queries regarding the test data, the O / R imaging middleware prepares a standard output (e.g., a log file) 21 which is analyzed by an analysis module 205. In this case, the data obtained in the test case module 204 and the findings made in the test case module 204 are taken into account.
Das Analysemodul 205 stellt seine Auswertungen derjenigen Person, die sich mit dem Testen der O/R-Abbildungs-Middleware befasst, zur Verfügung. Daraus kann die Person Schlussfolgerungen hinsichtlich des Verhaltens und Funktionierens der O/R-Abbildungs-Middleware machen und ggf. Verbesserungen in der Implementierung der O/R-Abbildungs-Middleware vornehmen.The analysis module 205 provides its evaluations to the person involved in testing the O / R imaging middleware. From this, the person can make conclusions regarding the behavior and functioning of the O / R mapping middleware and possibly make improvements in the implementation of the O / R mapping middleware.
Somit betrifft die vorliegende Erfindung ein Testen einer Middleware, welche zum gegenseitigen Abbilden von objektorientierten Daten einer objektorientierten Anwendung und relationalen Daten einer relationalen Datenbank konfiguriert ist. Das Testen wird dabei unter Verwendung eines Datenmodells zum Modellieren von Beziehungstypen relationaler Datenmodelle im Hinblick auf objektorientierte Datenmodelle, unter Verwendung von Testdaten, die gemäß einem Datenmodell der objektorientierten Anwendung bereitgestellte Testdaten sind, unter Ver- wendung vorgegebener Testfälle zum Testen der Middleware, wobei die Testfälle Abfragen aufweisen, die Datenabfragen der objektorientierten Anwendung an die relationale Datenbank über die Middleware entsprechen und durch Analyse der Ergebnisse der vorgegebenen Testfälle durchgeführt. Die vorliegen- de Erfindung betrifft insbesondere Anwendungen mit O/R-Thus, the present invention relates to testing of middleware configured to inter-map object-oriented data of an object-oriented application and relational data relational data. Testing is performed using a data model to model relational data model relationship types with respect to object-oriented data models, using test data that is test data provided according to a data model of the object-oriented application, using predetermined test cases to test the middleware, the test cases Have queries that correspond to data queries of the object-oriented application to the relational database via the middleware and performed by analyzing the results of the given test cases. The present invention relates in particular to applications with O / R
Abbildungs-Middlewares und erlaubt ein effizientes und korrektes Handhaben und Betreiben von Prozessen oder Abläufen und/oder Komponenten oder Modulen einer Industriesparte oder von Produkten, die von effizient und korrekt funktionierenden O/R-Abbildungs-Middlewares abhängig sind.Mapping middleware and allows efficient and correct handling and operation of processes or processes and / or components or modules of an industrial sector or of products that depend on efficient and properly functioning O / R imaging middleware.
Obwohl die Erfindung oben mit Bezug auf das Ausführungsbei- spiel gemäß der beiliegenden Zeichnungen erklärt wird, ist es ersichtlich, dass die Erfindung nicht auf das Ausführungsbeispiel beschränkt ist, sondern innerhalb des Bereichs der oben und in den anhängigen Ansprüchen offenbarten erfinderischen Idee modifiziert werden kann. Es versteht sich von selbst, dass es noch weitere Ausführungsbeispiele geben kann, die den Grundsatz der Erfindung darstellen und äquivalent sind, und dass somit verschiedene Modifikationen ohne Abweichen vom Umfang der Erfindung implementiert werden können. So können z.B. die Module des Testmoduls bzw. der Testeinrichtung ver- schiedenartig gestaltet werden, wobei ein Modul mehrere erfindungsgemäße Funktionen durchführen kann und/oder eine erfindungsgemäße Funktion von mehreren Modulen durchgeführt werden kann. Although the invention is explained above with reference to the embodiment according to the accompanying drawings, it is to be understood that the invention is not limited to the embodiment but may be modified within the scope of the inventive idea disclosed above and in the appended claims. It goes without saying that there may be other embodiments which are the principle of the invention and are equivalent, and thus various modifications can be implemented without departing from the scope of the invention. Thus, e.g. the modules of the test module or the test device are designed differently, wherein a module can perform a plurality of functions according to the invention and / or a function according to the invention can be performed by a plurality of modules.

Claims

Patentansprüche claims
1. Testmodul, das konfiguriert ist, eine Middleware (12) zu testen, welche zum Abbilden von objektorientierten Daten einer objektorientierten Anwendung (11) und relationalen Daten einer relationalen Datenbank (13) konfiguriert ist, wobei das Testmodul (20) aufweist: ein Datenmodell-Modul (201), das ein Datenmodell zum Modellieren von Beziehungstypen relationaler Datenmodelle im Hinblick auf objektorientierte Datenmodelle aufweist; ein Testdatenmodul (202), das Testdaten aufweist, wobei die Testdaten gemäß einem Datenmodell der objektorientierten Anwendung (11) bereitgestellte Testdaten sind; ein Testfallmodul (204), das vorgegebene Testfälle zum Testen der Middleware (12) aufweist, wobei die Testfälle Abfragen aufweisen, die Datenabfragen der objektorientierten Anwendung (11) an die relationa- Ie Datenbank (13) über die Middleware (12) entsprechen; und ein Analysemodul (205), das konfiguriert ist, Ergebnisse der vorgegebenen Testfälle zu analysieren.A test module configured to test a middleware (12) configured to map object-oriented data of an object-oriented application (11) and relational data of a relational database (13), the test module (20) comprising: a data model Module (201) having a data model for modeling relationship types of relational data models with respect to object-oriented data models; a test data module (202) having test data, the test data being test data provided according to a data model of the object-oriented application (11); a test case module (204) having predetermined test cases for testing the middleware (12), the test cases comprising queries corresponding to data queries of the object-oriented application (11) to the relational database (13) via the middleware (12); and an analysis module (205) configured to analyze results of the predetermined test cases.
2. Testmodul nach Anspruch 1, wobei das Datenmodell in einer objektorientierten Programmiersprache implementiert ist .The test module of claim 1, wherein the data model is implemented in an object-oriented programming language.
3. Testmodul nach zumindest einem der vorstehenden Ansprü- che, wobei das Testdatenmodul (202) eine objektorientierte Implementierung der Testdaten aufweist.3. Test module according to at least one of the preceding claims, wherein the test data module (202) has an object-oriented implementation of the test data.
4. Testmodul nach zumindest einem der vorstehenden Ansprüche, wobei das Testmodul (20) konfiguriert ist, das Da- tenmodell auf die Testdaten anzuwenden.4. Test module according to at least one of the preceding claims, wherein the test module (20) is configured to apply the data model to the test data.
5. Testmodul nach zumindest einem der vorstehenden Ansprüche, wobei das Testmodul (20) ein Einspielmodul (203) aufweist, das konfiguriert ist, die Testdaten zum Abspeichern in der relationalen Datenbank (13) über die Middleware (12) an die relationale Datenbank (13) zu übermitteln .5. test module according to at least one of the preceding claims, wherein the test module (20) a Einspielmodul (203) configured to transmit the test data for storage in the relational database (13) via the middleware (12) to the relational database (13).
6. Testmodul nach zumindest einem der vorstehenden Ansprüche, wobei das Testfallmodul (204) konfiguriert ist, in der relationalen Datenbank (13) abgespeicherte Testdaten unter Verwendung der Testfälle durch die Middleware (12) abzufragen.A test module according to at least one of the preceding claims, wherein the test case module (204) is configured to query test data stored in the relational database (13) using the middleware (12) using the test cases.
7. Testmodul nach Anspruch 6, wobei das Testfallmodul (204) konfiguriert ist, die durch die Middleware (12) abgefragten Testdaten unter Verwendung des Datenmodells aus dem Datenmodell-Modul (201) und der Testdaten aus dem Testdatenmodul (202) zu analysieren.The test module of claim 6, wherein the test case module (204) is configured to analyze the test data retrieved by the middleware (12) using the data model from the data model module (201) and the test data from the test data module (202).
8. Testmodul nach Anspruch 7, wobei das Analysemodul (205) konfiguriert ist, Ergebnisse der vorgegebenen Testfälle unter Verwendung von Analyseergebnissen des Testfallmoduls (204) zu analysieren.The test module of claim 7, wherein the analysis module (205) is configured to analyze results of the predetermined test cases using analysis results of the test case module (204).
9. Testmodul nach einem der vorstehenden Ansprüche, wobei das Analysemodul (205) konfiguriert ist, Ergebnisse der von dem Analysemodul (205) durchgeführten Analysen einem Nutzer des Testmoduls bereitzustellen.9. The test module according to claim 1, wherein the analysis module (205) is configured to provide results of the analyzes performed by the analysis module (205) to a user of the test module.
10. Verfahren zum Testen einer Middleware (12), welche zum Abbilden von objektorientierten Daten einer objektorien- tierten Anwendung (11) und relationalen Daten einer relationalen Datenbank (13) konfiguriert ist, wobei das Verfahren aufweist:A method of testing a middleware (12) configured to map object-oriented data of an object-oriented application (11) and relational data of a relational database (13), the method comprising:
Bereitstellen eines Datenmodells zum Modellieren von Beziehungstypen relationaler Datenmodelle im Hinblick auf objektorientierte Datenmodelle;Providing a data model for modeling relationship types of relational data models with respect to object-oriented data models;
Bereitstellen von Testdaten, wobei die Testdaten gemäß einem Datenmodell der objektorientierten Anwendung (11) bereitgestellte Testdaten sind; Bereitstellen von vorgegebenen Testfällen zum Testen der Middleware (12), wobei die Testfälle Abfragen aufweisen, die Datenabfragen der objektorientierten Anwendung (11) an die relationale Datenbank (13) über die Middleware (12) entsprechen; undProviding test data, wherein the test data is test data provided according to a data model of the object-oriented application (11); Providing predetermined test cases for testing the middleware (12), the test cases comprising queries corresponding to data queries of the object-oriented application (11) to the relational database (13) via the middleware (12); and
Analysieren von Ergebnissen der vorgegebenen Testfälle.Analyze results of given test cases.
11. Verfahren nach Anspruch 10, wobei das Datenmodell in ei- ner objektorientierten Programmiersprache implementiert ist .11. The method of claim 10, wherein the data model is implemented in an object-oriented programming language.
12. Verfahren nach Anspruch 10 oder 11, wobei die Testdaten in Form einer objektorientierte Implementierung bereit- gestellt werden.12. The method of claim 10 or 11, wherein the test data is provided in the form of an object-oriented implementation.
13. Verfahren nach zumindest einem der vorstehenden Ansprüche 10 bis 12, wobei das Verfahren ein Anwenden des Datenmodells auf die Testdaten aufweist.The method of at least one of the preceding claims 10 to 12, wherein the method comprises applying the data model to the test data.
14. Verfahren nach zumindest einem der vorstehenden Ansprüche 10 bis 13, wobei das Verfahren ein Übermitteln der Testdaten über die Middleware (12) zum Abspeichern der Testdaten in der relationalen Datenbank (13) aufweist.14. The method according to claim 10, wherein the method comprises transmitting the test data via the middleware to store the test data in the relational database.
15. Verfahren nach zumindest einem der vorstehenden Ansprüche 10 bis 14, das Verfahren ein Abfragen von in der relationalen Datenbank (13) abgespeicherten Testdaten durch die Middleware (12) unter Verwendung der Testfälle aufweist.15. The method of claim 1, wherein the method comprises querying the test data stored in the relational database by the middleware using the test cases.
16. Verfahren nach Anspruch 15, wobei das Verfahren ein Analysieren der durch die Middleware (12) abgefragten Testdaten unter Verwendung des bereitgestellten Datenmodells und der bereitgestellten Testdaten aufweist.The method of claim 15, wherein the method comprises analyzing the test data retrieved by the middleware (12) using the provided data model and the provided test data.
17. Verfahren nach Anspruch 16, wobei das Verfahren ein Analysieren von Ergebnissen der vorgegebenen Testfälle un- ter Verwendung von Ergebnissen des Analysierens der durch die Middleware (12) abgefragten Testdaten aufweist .17. The method of claim 16, wherein the method comprises analyzing results of the predetermined test cases Using results of analyzing the queried by the middleware (12) test data.
18. Verfahren nach einem der vorstehenden Ansprüche 10 bis 17, wobei das Verfahren ein Bereitstellen von Ergebnissen des Analysierens der Ergebnisse der vorgegebenen Testfälle aufweist.18. The method of claim 10, wherein the method comprises providing results of analyzing the results of the predetermined test cases.
19. Computerprogrammprodukt, das eine Kodierung aufweist, die konfiguriert ist, ein Verfahren nach Anspruch 10 zu implementieren .19. A computer program product having an encoding configured to implement a method according to claim 10.
20. Datenträger, wobei der Datenträger ein Computerprogramm- produkt nach Anspruch 19 aufweist. 20. Data carrier, wherein the data carrier comprises a computer program product according to claim 19.
PCT/EP2009/059846 2008-09-25 2009-07-30 Test module and method for testing an o/r imaging middleware WO2010034548A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP09781269A EP2329374A1 (en) 2008-09-25 2009-07-30 Test module and method for testing an o/r imaging middleware

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102008048862.3 2008-09-25
DE200810048862 DE102008048862A1 (en) 2008-09-25 2008-09-25 Test module and method for testing an O / R imaging middleware

Publications (1)

Publication Number Publication Date
WO2010034548A1 true WO2010034548A1 (en) 2010-04-01

Family

ID=41128050

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2009/059846 WO2010034548A1 (en) 2008-09-25 2009-07-30 Test module and method for testing an o/r imaging middleware

Country Status (3)

Country Link
EP (1) EP2329374A1 (en)
DE (1) DE102008048862A1 (en)
WO (1) WO2010034548A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111273915A (en) * 2018-11-16 2020-06-12 中移(杭州)信息技术有限公司 Middleware configuration optimization method and device, terminal equipment and medium
CN115952085A (en) * 2022-12-15 2023-04-11 广州埃普信息科技有限公司 Middleware system supporting rapid test development

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064823B (en) * 2021-03-30 2024-04-09 奇瑞汽车股份有限公司 Method and device for testing functions of parts of automobile and computer storage medium

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19530095A1 (en) * 1995-08-16 1997-02-20 Martin Engwicht Access monitoring for software, data carriers

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BARCIA R ET AL: "Persistence in the Enterprise : A Guide to Persistence Technology", -, vol. -, no. -, 1 May 2008 (2008-05-01), -, pages 1 - 32, XP002549996, ISBN: 0-13-158756-0, Retrieved from the Internet <URL:http://proquest.safaribooksonline.com/9780768680591> *
PHILIPPI S: "Model driven generation and testing of object-relational mappings", JOURNAL OF SYSTEMS & SOFTWARE, ELSEVIER NORTH HOLLAND, NEW YORK, NY, US, vol. 77, no. 2, 1 August 2005 (2005-08-01), pages 193 - 207, XP004883219, ISSN: 0164-1212 *
RICHARDSON C: "Testing a persistent domain model", -, vol. -, no. -, June 2006 (2006-06-01), pages 1 - 7, XP002549997, Retrieved from the Internet <URL:http://www.theserverside.com/tt/articles/content/PersistentDomain/article.html> *
VOLLMER A: "Unit-Testing Hibernate With HSQLDB", -, vol. -, no. -, April 2005 (2005-04-01), pages 1 - 4, XP002549998, Retrieved from the Internet <URL:http://www.theserverside.com/tt/articles/content/UnitTesting/article.html> *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111273915A (en) * 2018-11-16 2020-06-12 中移(杭州)信息技术有限公司 Middleware configuration optimization method and device, terminal equipment and medium
CN111273915B (en) * 2018-11-16 2023-04-28 中移(杭州)信息技术有限公司 Middleware configuration optimization method and device, terminal equipment and medium
CN115952085A (en) * 2022-12-15 2023-04-11 广州埃普信息科技有限公司 Middleware system supporting rapid test development
CN115952085B (en) * 2022-12-15 2023-08-22 广州埃普信息科技有限公司 Middleware system supporting rapid test development

Also Published As

Publication number Publication date
DE102008048862A1 (en) 2010-04-08
EP2329374A1 (en) 2011-06-08

Similar Documents

Publication Publication Date Title
DE112004001775T5 (en) Method and apparatus for providing automatic software updates
WO2009083133A1 (en) Method and device for client/server communication according to the standard protocol opc ua
DE112011103428T5 (en) Automated analysis of composite applications
EP2439691A1 (en) Method and device for mechanical production of a process diagram
EP1638028A2 (en) Computer aided generation and change management for user interfaces
DE102012001406A1 (en) Automatic configuration of a product data management system
EP1701266A1 (en) Test apparatus for verification of a batch processing
EP2329374A1 (en) Test module and method for testing an o/r imaging middleware
EP2620868A1 (en) Work flow management system for computer networks
DE10213009A1 (en) Electronic testing procedure for memory modules, such as dual in-line modules (DIMMs), requires making electronic comparison between number of modules and number of module identifiers
WO2003094093A2 (en) Comparison of processing protocols
EP2990941B1 (en) Computer-implemented method for generating a control device program codes and related report management environment
EP3355186A1 (en) Creation and execution of software modules
DE102013214197A1 (en) Development process for a technical product
EP2757466B1 (en) A computer implemented method for generating computer program code
EP2007070B1 (en) Method for displaying process information for a data processing facility and data processing system
EP2267562A1 (en) Method and device for testing files in XML format to be exchanged between components
EP2093663A1 (en) Engineering system for developing a project and method
EP1621945B1 (en) Ensuring data consistency in an automation system
EP1349073B1 (en) Control system
WO2022084452A1 (en) Method for operating an automation system of a machine or an installation
WO2023208578A1 (en) Method and computer program for automatically generating communication interfaces in algorithms from the field of artificial intelligence
WO2015014957A1 (en) Method for connecting objects in a software application
DE102022200659A1 (en) Data processing device and method for converting data
DE10109876B4 (en) Method and device for data management

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09781269

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2009781269

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE