DE102008048862A1 - 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 PDFInfo
- Publication number
- DE102008048862A1 DE102008048862A1 DE200810048862 DE102008048862A DE102008048862A1 DE 102008048862 A1 DE102008048862 A1 DE 102008048862A1 DE 200810048862 DE200810048862 DE 200810048862 DE 102008048862 A DE102008048862 A DE 102008048862A DE 102008048862 A1 DE102008048862 A1 DE 102008048862A1
- Authority
- DE
- Germany
- Prior art keywords
- test
- data
- middleware
- module
- oriented
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Abstract
Die vorliegende Erfindung betrifft ein Testen einer Middleware, welche zum gegenseitigen Abbilden von objektorientierten Daten einer objektorientierten Anwendung und relationalen Daten einer relationalen Datenbank konfiguriert ist. Das Testen wir 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 Verwendung 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 vorliegende Erfindung betrifft insbesondere Anwendungen mit 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.The present invention relates to testing of middleware configured to inter-map object-oriented data of an object-oriented application and relational database relational data. We test using a data model to model relationship types of relational data models 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 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 by analyzing the results of the given test cases. More particularly, the present invention relates to applications with O / R imaging middleware and allows efficient and correct handling and operation of processes or processes and / or components or modules of an industry sector or products that require efficient and properly functioning O / R imaging -Middlewares are dependent.
Description
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 The invention relates to the testing of middleware that is for mutual Mapping object-oriented data of an object-oriented application and relational data of a relational database is. The invention describes a test environment for a schematic Determine the behavior of the middleware. In particular, the The present invention relates to a test module, a method for testing the Middleware, a computer program product through which the process is implemented and / or a disk containing the computer program product having.
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 Daten 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.Under An object / relational (O / R) mapping middleware is understood a software that links between an object-oriented Application and a relational database. The mission goal this O / R imaging middleware is the data of an application in an object-oriented data structure on the tabular Memory structure of common relational database systems and vice versa, especially when the object-oriented application data from the relational database queries. The combination of an object-oriented data structure on the one hand and a relational database on the other Page represents a usual Application in the industrial use of software systems represents.
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 The following are the data of the object-oriented application, which is created according to the object-oriented model of the object-oriented application are and thus exist as objects of the object-oriented application, also referred to as object-oriented data. Further will be the data of the relational database, which after the relational Schema or model of the relational database are created and in the form of tables and / or relations in the relational database also known 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 Beispiele 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 innerhalb 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 are effective for z. B. managing, regulating, supervising and / or controlling the industrial processes or processes and / or on the industrial components or modules. As examples can here production processes, plant control processes, plants, component and modules of the facilities. There are many and varied applications given. Furthermore, object-oriented applications are also used to processes and / or components also within products (eg plants, devices etc.) to control, regulate, manage and / or monitor. Even products can do it yourself controlled, regulated, managed by object-oriented applications and / or monitored become.
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.Alles these applications have the commonality that the data as objects of object-oriented Application to be treated. An object-oriented application itself However, it is not able to secure these objects permanently. With the termination of the application and / or with the switching or Switch between different workspaces of the application the created objects and thus the data of the object-oriented application lost. That's why relational databases are used to a permanent storage of the data and thus the objects of the object-oriented To ensure the application or persistence of the object-oriented application and to save the data permanently. This is in view on a safe and correct handling and operation of processes or sequences and / or components or modules of the respective industry or Products of importance.
Des Weiteren ist auch ein korrektes, fehlerfreies und umfassendes 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 Korrektheit 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 processes and / or components or modules of the respective industry or products are essential to completeness and reliability the 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 strongly dependent on a secure and correctly functioning O / R imaging middleware pending.
Derzeit existieren mehrere Softwarelösungen, die derartige 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 Daten in der Datenbank persistiert bzw. dauerhaft gesichert werden. Unterschiede können zum Beispiel in der Reihenfolge, im Umfang und/oder in der Strukturierung der Persistenzoperationen 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.Currently exist several software solutions, implementing such O / R mapping middleware. Examples for such Products include Hibernate, TopLink, iBATIS, OpenJPA and codo. This conventional software solutions differ in particular in which method data persisted or permanently saved in the database. differences can to Example in the order, scope and / or structuring persistence operations. Similarly, the O / R mapping middleware handles the querying data from the database when requested by the application become. Again, the software solutions differ in order, scope, and / or structuring the 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 It should be emphasized that the procedures by which the persistence and polling done a decisive impact on speed the execution and thus have the performance of the application. That's why you have the behavior know exactly how to use an O / R imaging middleware otherwise drastic losses are to be expected at the system performance.
Ein Aspekt beim Abrufen der Daten (Daten werden durch die 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. Wiederherstellen von objektorientierten Daten verwendet.One Aspect of retrieving the data (data is passed through the O / R mapping middleware queried from the relational database and object-oriented Application provided in the form of objects) provides the so-called Fetching behavior. Fetching generally refers to the most efficient retrieval possible or restoring object-oriented data from a relational one Database and is by appropriate requests or queries the object-oriented application initiated. The following is the Term "Fetching" for this Recovering or restoring object-oriented data used.
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 objektorientierten und relationalen Modellierung üblich geworden sind, wird im Folgenden an diesen Begriffen festgehalten.If Fetching is differentiated between "Eager Fetching" and "Lazy Fetching". Under "Eager Fetching" is a very extensive and costly recovery or restoration to understand object-oriented data, doing a query expanded to the extent of an object graph. "Lazy Fetching" refers turn to a reduced and fast restore of object-oriented data. Since these terms in the field of Object-oriented and relational modeling has become commonplace are, will be held on these terms below.
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 Datenbank 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 Anwendung 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 daher 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”.One so-called Eager Fetching is characterized by the fact that the Requesting or querying an object through the object-oriented Application from a relational database not only the direct corresponding record is retrieved from the database, but about that In addition, further data taken into account be over Relationships are associated with the actual (core) record. This behavior is especially beneficial when processing the actual object in the object-oriented application automatically also a processing of data associated with this object miteinhergeht. However, this behavior can also have disadvantages. This is especially the case when through the application logic the object-oriented application associated data are not needed and therefore their query and their receipt are superfluous. Depending on whether associated Data to be queried or ignored is around "Eager Fetching "or" Lazy Fetching ".
Da relationale Datenmodelle mehrere verschiedene Repräsentationsformen von Beziehungen oder Assoziationen erlauben (z. B. 1-zu-1, 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.There relational data models several different forms of representation of relationships or associations (eg 1-to-1, 1-to-n or n-to-m relationships) and also the associations depending on the application can reach as far as you like, is a big one here Travel for Implementations of O / R mapping middleware given. These implementations can be on very different Because of solved become. Each O / R imaging middleware offers several levers, which can influence the 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 Verarbeitungszeit schnell vervielfachen kann.Eager Fetching leads Depending on the setting for one or more query expressions (so-called "SELECT statements") different Complexity. The consequence of this is that increasing the number of query expressions increases the processing time can multiply quickly.
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.The other way round lazy fetching can unfavorably reduce a query expression so that at least one separate further query becomes necessary and one additional Effort arises. Therefore, the configuration of the fetching behavior is for the Optimizing performance is an important part.
Ferner entstehen Probleme dadurch, dass bei existierenden 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 Fetchings 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.Furthermore, problems arise in that existing 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 fetching may change in different versions of O / R mapping middleware. This leads to a changed performance during a version change. As a result, tests are necessary that the behavior of the O / R imaging Middlewa analyze and document. 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-Abbildungs-Middleware Apache OpenJPA verdeutlichen die Problematik der herkömmlichen O/R-Abbildungs-Middleware-Implementierungen und bestätigen gleichzeitig die Notwendigkeit des Testens der O/R-Abbildungs-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.The Variety of possibilities to configure the O / R mapping middleware Apache OpenJPA the problem of conventional O / R-Picture middleware implementations and confirm at the same time, the need to test the O / R mapping middleware implementations, in particular, to ensure safe, correct and efficient handling and operating processes or processes and / or components or Modules to ensure the industry or products, which depend on a secure, correct and efficient O / R mapping 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 Objekttraversierungen bzw. Objektverfolgungen über diese Beziehungen, die entsprechende Datenobjekte betreffen, automatisch das eingestellte Verhalten annehmen.
- 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.
- 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.
- 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 kombinierbar.
- 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. 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. Configuration of so-called Fetch Groups, in which targeted relationships can be summarized. For these fetch groups, the behavior can be e.g. B. in the direction of Eager Fetching or Lazy Fetching be set. The Fetch Groups can exist in addition to the aforementioned settings and can also be activated and deactivated at runtime.
- 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 Hibernate 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 others Behavior. Hibernate also offers XML configurations and Notations for an Eager and Lazy Fetching attitude on, also also different Variants of expressions to query a relational database such as SQL (Structured Query Language) expressions "join", "select" and "subselect" that use partially sets a more differentiated behavior. For missing but the Fetch Groups.
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 bestehen neben den oben genannten Mechanismen auch Abstufungen des Eager Fetching-Verhaltens an sich, die angepasst werden können:
- 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 beachten, 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.
- 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.
- 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. 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ücksichtigt werden müssen. Der Umfang der Konfigurationsmöglichkeiten macht deutlich, dass ein Testen des Fetching-Verhaltens von großem Nutzen ist.Thereby, that the different configuration points are combined can be creates a variety of combinations in different test cases considered Need to become. The scope of configuration options makes it clear that testing the fetching behavior is of great benefit.
Bisher wurde allerdings auf die bestehende Dokumentation vertraut 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.So far however, was trusted in the existing documentation and at Performance problems the behavior specifically for the performance-critical case examined. As a result, tests have so far been individual for one Integration case of a specific O / R imaging middleware performed.
Für einen wirtschaftlichen Einsatz birgt dieses Vorgehen aber zumindest die folgenden Probleme mit sich:
- 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 Analysevorgang besteht darin, die für das Fetching-Verhalten relevanten Stellen im Datenmodell zu identifizieren.
- 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 der 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.
- 3. Bei Testdurchführungen: Die Auswertung der Tests auf manuelle 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 Anwendung 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 Markierungsanweisungen nicht aus der Anwendungslogik entfernt werden.
- 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.
- 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 data model and integration of the O / R imaging middleware are performed by different people. The analysis process consists of identifying the locations relevant to the fetching behavior in the data model.
- 2. In the test design: The setup of the tests must take into account several factors: Test cases have to be created according to the relationship type, depth, and configuration options of the O / R mapping middleware. 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. For Test Executions: Evaluating the tests manually means evaluating the query expressions sent to the database - this is a time-consuming and error-prone process in manual evaluation. 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 will be unintentionally modified to test the fetching behavior, or that marking instructions corresponding to the test will not be removed from the application logic.
- 4. Infrastructure: If the underlying development project reaches a critical size, then the installation, configuration and execution of the underlying software are resource 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 übernommen werden, da unter Umständen die vorliegenden Kombinationen hinsichtlich der Konfiguration und Datenmodell unterschiedlich sind.Furthermore The previous procedures have no systematics. Test results a use case can not in principle for one new application, there under circumstances the present combinations in terms of configuration and Data model are different.
Die Aufgabe der vorliegenden Erfindung besteht darin, eine effizient und korrekt funktionierende O/R-Abbildungs-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.The The object of the present invention is an efficient and properly functioning O / R mapping middleware to provide Another is the efficient and correct handling and operation of Processes or processes and / or Components or modules in industrial applications and / or in products to ensure that O / R-Picture middleware use.
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 Merkmalen des Anspruchs 19 und/oder durch einen Datenträger mit den Merkmalen des Anspruchs 20.The Task is solved by a test module having the features of claim 1, by a Method with the features of claim 10, by a computer program product with the features of claim 19 and / or by a disk with the features of claim 20.
Die Unteransprüche geben weitere Ausgestaltungen der vorliegenden Erfindung an.The under claims 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 relationalen 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 Anwendung an die relationale Datenbank über die Middleware entsprechen; und
- – ein Analysemodul, das konfiguriert ist, Ergebnisse der vorgegebenen Testfälle zu analysieren.
- 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 according to 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.On this way, the system is systematized by the present invention hitherto implemented by specific application cases implemented test procedures allows. Ie. The present invention provides a methodology for application and / or product independent testing of O / R Imaging Middlewares ready. According to the present This invention becomes a data model in testing the O / R imaging middleware underlying the relevant cases of fetching behavior in general covers.
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.Furthermore become test cases through the test module provided, the corresponding embodiments according to the underlying object-oriented Implement application to perform the fetching in the corresponding O / R mapping middleware targeting.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist das Datenmodell in einer objektorientierten Programmiersprache implementiert.According to one embodiment In the present invention, the data model is in an object-oriented Implemented programming language.
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung weist das Testdatenmodul eine objektorientierte Implementierung der Testdaten auf.According to another embodiment of the present invention, the test data module comprises an object-oriented implementation of the test data on.
Dadurch wird eine flexible und umfassende Handhabung des Datenmodells und/oder der Testdaten mit allen Vorteilen der objektorientierten Programmierung ermöglicht.Thereby will be a flexible and comprehensive handling of the data model and / or the test data with all the advantages of object-oriented programming allows.
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 one embodiment According to the present invention, the test module is configured to the data model to apply to the test data. Here are the in the test data contained relationships and structures in terms of in the data model included relationship types of relational data models.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Testmodul ein Einspielmodul auf, das konfiguriert ist, die Testdaten zum Abspeichern in der relationalen Datenbank über die Middleware an die relationale Datenbank zu übermitteln.According to one embodiment According to the present invention, the test module has a copying module configured to store the test data for storage in the relational database about the To submit middleware to the relational database.
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung ist das Testfallmodul konfiguriert, in der relationalen Datenbank abgespeicherte Testdaten unter Verwendung der Testfälle durch die Middleware abzufragen.According to one another embodiment of the The present invention is configured with the test case module in which relational database stored test data 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.On This way, the present invention allows the application and / or product-independent Approach of testing with concrete designs of a concrete object-oriented application, a concrete middleware and / or to connect to 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 one embodiment According to the present invention, the test case module is configured through the middleware queried test data using the Data model from the data model module and the test data from the Analyze 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.According to one another embodiment of the According to the present invention, the analysis module is configured to produce results the given test cases under Analyze analysis results of the test case module.
Auf diese Weise wird eine vielschichtige Analyse des auf den Testdaten durchgeführten Abbildens relationaler Daten auf objektorientierte Daten ermöglicht.On This way, a multi-layered analysis of the on the test data conducted Mapping relational data to object-oriented data.
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 one embodiment According to the present invention, the analysis module is configured to produce results the analysis 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.On This way can be a structured output of the analysis results allows be a systematic analysis, evaluation and documentation 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 relationalen Datenbank konfiguriert ist, wobei das Verfahren aufweist:
- – 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;
- – 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 (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;
- 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
- - Analyze 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.Also the method of testing middleware becomes systematization from previously dependent on concrete use cases, implemented tests allows as already done above with regard to the test module.
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 Steps of the method generally correspond to the operations that by the test module presented above and / or contained in the test module Modules performed become. Therefore, you can the advantages of the features of the test module also in terms of the corresponding Steps of the above introduced Procedure listed become.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist das Datenmodell in einer objektorientierten Programmiersprache implementiert.According to one embodiment In the present invention, the data model is in an object-oriented Implemented programming language.
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung werden die Testdaten in Form einer objektorientierte Implementierung bereitgestellt.According to one another embodiment of the present invention, the test data in the form of an object-oriented Implementation provided.
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 one embodiment According to the present invention, the method comprises applying the Data model to the test data. Here are the in the test data contained relationships and structures regarding the relationship types relational Data models analyzed.
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 has an over averaging 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 Datenbank abgespeicherten Testdaten durch die Middleware unter Verwendung der Testfälle auf.According to one embodiment According to the present invention, the method comprises polling in the relational database stored test data 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.According to one embodiment According to the present invention, the method comprises analyzing the through the middleware queried test data using the provided data model and the provided test data on.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist das Verfahren ein Analysieren von Ergebnissen der vorgegebenen Testfälle unter Verwendung von Ergebnissen des Analysierens der durch die Middleware abgefragten Testdaten auf.According to one embodiment According to the present invention, the method comprises analyzing Results of the given test cases using results analyzing the test data requested by the middleware on.
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 one embodiment According to the present invention, the method comprises providing of results of analyzing the results of the given test cases on.
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 The above object is also achieved by means of a computer program product solved, having a coding configured as above implement sketched and explained in more detail below method.
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.there the coding can be contained in a data carrier. Further For example, the computer program product may be configured to perform the method when the computer program product by means of a computing unit (z. A processor) becomes.
Die oben genannte Aufgabe wird ferner mittels eines Datenträgers gelöst, wobei der Datenträger das vorstehend erläuterte Computerprogrammprodukt aufweist.The The above object is further achieved by means of a data carrier, wherein the disk the above explained Computer program product has.
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 vorliegende Erfindung ein effizientes Testen von O/R-Abbildungs-Middlewares auf, das zeitsparend und Ressourcen sparend durchgeführt wird.By the present invention, in particular by providing a test module, will significantly save time for preparation, the design as well as for the implementation achieved the tests and the analysis of the test results. According to the known Test procedure must be for Such tests will be provided to the application's infrastructure but for the tests are not conceptually necessary. In big 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 testing of O / R-Picture middleware which is time-saving and saves resources.
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.Further lets the The present invention compares the test results of different O / R imaging middleware solutions, as testing on an application and / or product independent manner is performed. When replacing the products then performance problems of individual middlewares recognizable.
Zudem erfordern Vorbereitung, Design, Durchführung der Tests und Analyse der Ergebnisse Fachkenntnisse, die nun einheitlich in dem Testmodul zur Verfügung gestellt werden. Dieses muss nicht mehr für jeden individuellen Anwendungsfall einzeln durchgeführt werden.moreover require preparation, design, execution of tests and analysis the results expertise, which is now consistent in the test module to disposal be put. This no longer has to be for every individual application individually performed become.
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.Further becomes the actual application into which an O / R mapping middleware is to be integrated, not touched by the tests. This excludes unintentional analysis Modifications are accommodated, which is the actual application to damage or disturb. Of Further, the data in the database does not match the test data mixed, because the tests use their own data, that of the actual Application data can be separated and then also so deleted that can be the application data from the deletion unaffected stay.
Im Folgenden werden Ausführungsformen der vorliegenden Erfindung detailliert mit Bezug auf die beigefügten Figuren beschrieben.in the Below are embodiments of present invention in detail with reference to the accompanying figures described.
Es zeigen:It demonstrate:
Es
gilt also sicherzustellen, dass die O/R-Abbildungs-Middleware
Dieses
wird durch die Testeinrichtung bzw. durch ein Testmodul
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-1 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.By The data model will make different relationship types more relational Databases covered on the fetching behavior of an O / R imaging middleware Have an impact. Such relationship types are, for example, 1-to-1 Relationships, 1-to-n relationships, n-to-m relationships. Further will be For example, also illustrations of tables on classes and vice versa, handling attributes with complex types, illustration Associations and aggregations and / or inheritance mapping handled by the data model.
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 in an object-oriented programming language implemented. Optionally, the provision of standardized Instructions for a relational database system will be necessary to provide the appropriate Set up data structure. This part is not in the cases necessary if the O / R mapping middleware provides a function from an existing data model on the object-oriented side a corresponding relational data structure in the database too produce.
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.The Data model is an abstract data model that is general and not aimed at concrete applications or products. It defines general principle mapping the object-oriented data to relational data and vice versa.
Ferner
hat das Testmodul
Die
Testdaten werden über
eine objektorientierte Implementierung des Testmoduls
Auf
die in dem Testdatenmodul
Das
Testmodul
Ferner
werden die Testdaten von der O/R-Abbildungs-Middleware
Hierfür weist
das Testmodul
Das
Testfallmodul
Der
Testfallmodul
Das
Testfallmodul
Beim
Erhalten der Ergebnisse auf Abfragen hinsichtlich der Testdaten
erstellt die O/R-Abbildungs-Middleware eine Standardausgabe (z.
B. eine Log-Datei)
Das
Analysemodul
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 Verwendung 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 vorliegende Erfindung betrifft insbesondere Anwendungen mit 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.Consequently the present invention relates to testing middleware, which for mutual mapping of object-oriented data of a object-oriented application and relational data of a relational Database is configured. The testing is done using a data model for modeling relationship types of relational data models with regard to object-oriented data models, using of test data, which according to a Data model of the object-oriented application provided test data are using predetermined test cases to test the middleware, the test cases Have queries to the data queries of the object-oriented application the relational database over match the middleware and by analyzing the results of the given test cases carried out. The present invention particularly relates to applications with O / R imaging 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 by efficient and properly functioning O / R imaging middleware dependent are.
Obwohl die Erfindung oben mit Bezug auf das Ausführungsbeispiel 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 verschiedenartig 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.Even though the invention above with reference to the embodiment according to the accompanying drawings explained It will be apparent that the invention is not limited to the embodiment limited but within the scope of the inventive disclosures above and in the appended claims Idea can be modified. It goes without saying that there are still further embodiments which is the principle of the invention and equivalent are, and that therefore different modifications without departing from Scope of the invention can be implemented. So z. B. the modules of the test module or the test device are designed differently, with a Module several functions of the invention carry out can and / or a function of the invention performed by several modules can be.
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200810048862 DE102008048862A1 (en) | 2008-09-25 | 2008-09-25 | Test module and method for testing an O / R imaging middleware |
PCT/EP2009/059846 WO2010034548A1 (en) | 2008-09-25 | 2009-07-30 | Test module and method for testing an o/r imaging middleware |
EP09781269A EP2329374A1 (en) | 2008-09-25 | 2009-07-30 | Test module and method for testing an o/r imaging middleware |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
---|---|
DE102008048862A1 true DE102008048862A1 (en) | 2010-04-08 |
Family
ID=41128050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE200810048862 Ceased DE102008048862A1 (en) | 2008-09-25 | 2008-09-25 | 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064823A (en) * | 2021-03-30 | 2021-07-02 | 奇瑞汽车股份有限公司 | Method and device for testing functions of automobile parts and computer storage medium |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111273915B (en) * | 2018-11-16 | 2023-04-28 | 中移(杭州)信息技术有限公司 | Middleware configuration optimization method and device, terminal equipment and medium |
CN115952085B (en) * | 2022-12-15 | 2023-08-22 | 广州埃普信息科技有限公司 | Middleware system supporting rapid test development |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19530095A1 (en) * | 1995-08-16 | 1997-02-20 | Martin Engwicht | Access monitoring for software, data carriers |
-
2008
- 2008-09-25 DE DE200810048862 patent/DE102008048862A1/en not_active Ceased
-
2009
- 2009-07-30 WO PCT/EP2009/059846 patent/WO2010034548A1/en active Application Filing
- 2009-07-30 EP EP09781269A patent/EP2329374A1/en not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19530095A1 (en) * | 1995-08-16 | 1997-02-20 | Martin Engwicht | Access monitoring for software, data carriers |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064823A (en) * | 2021-03-30 | 2021-07-02 | 奇瑞汽车股份有限公司 | Method and device for testing functions of automobile parts and computer storage medium |
CN113064823B (en) * | 2021-03-30 | 2024-04-09 | 奇瑞汽车股份有限公司 | Method and device for testing functions of parts of automobile and computer storage medium |
Also Published As
Publication number | Publication date |
---|---|
EP2329374A1 (en) | 2011-06-08 |
WO2010034548A1 (en) | 2010-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1176482B1 (en) | Method and computer program for generating a regulation or control system | |
DE112004001775T5 (en) | Method and apparatus for providing automatic software updates | |
EP1723513A1 (en) | Method for configuring a computer program | |
EP1597675A1 (en) | System and method for managing and exchanging the data of a technical project, technical installation and individual installation components | |
EP2620871A2 (en) | Method for configuring a basic input-output system in a computer system and computer program product | |
DE10127170A1 (en) | Troubleshooting procedures and troubleshooting device | |
EP2439691A1 (en) | Method and device for mechanical production of a process diagram | |
EP1701266A1 (en) | Test apparatus for verification of a batch processing | |
DE102008048862A1 (en) | Test module and method for testing an O / R imaging middleware | |
DE112009001892T5 (en) | Data record based code structure | |
WO2003094093A2 (en) | Comparison of processing protocols | |
DE102005045904B4 (en) | Data processing device with performance control | |
EP1215571A2 (en) | Method for automatic software generation | |
DE202015103261U1 (en) | Computer-implemented system for comparing at least two files of visual programming languages | |
EP3355186A1 (en) | Creation and execution of software modules | |
EP2757466B1 (en) | A computer implemented method for generating computer program code | |
EP1343078B1 (en) | Modelling system and generation of software generating systems | |
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 | |
WO2010026151A1 (en) | Method for granting authorization to access a computer-based object in an automation system, computer program, and automation system | |
EP1621945B1 (en) | Ensuring data consistency in an automation system | |
DE102022207612A1 (en) | Computer-implemented method for verifying a software component of an automated driving function | |
WO2023208578A1 (en) | Method and computer program for automatically generating communication interfaces in algorithms from the field of artificial intelligence | |
DE102006037968B4 (en) | Universal and extensible data management with observation and inter-process communication mechanisms | |
DE102022208030A1 (en) | Method for collaboratively creating a software product and method for responding to an error |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |