DE102007023597A1 - Software module test implementing system for automated teller machine, has recording and playback program module transmitting data to application program module to test application program module - Google Patents

Software module test implementing system for automated teller machine, has recording and playback program module transmitting data to application program module to test application program module Download PDF

Info

Publication number
DE102007023597A1
DE102007023597A1 DE200710023597 DE102007023597A DE102007023597A1 DE 102007023597 A1 DE102007023597 A1 DE 102007023597A1 DE 200710023597 DE200710023597 DE 200710023597 DE 102007023597 A DE102007023597 A DE 102007023597A DE 102007023597 A1 DE102007023597 A1 DE 102007023597A1
Authority
DE
Germany
Prior art keywords
software module
data
module
software
program module
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
Application number
DE200710023597
Other languages
German (de)
Inventor
Michael Dipl.-Inform. Carell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wincor Nixdorf International GmbH
Original Assignee
Wincor Nixdorf International GmbH
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 Wincor Nixdorf International GmbH filed Critical Wincor Nixdorf International GmbH
Priority to DE200710023597 priority Critical patent/DE102007023597A1/en
Publication of DE102007023597A1 publication Critical patent/DE102007023597A1/en
Ceased legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The system has an application program module (10) to exchange data with device control program modules (26, 28, 30, 32) for data communication with peripheral devices. A recording and playback program module (24) transmits data to the application program module to test the application program module, where the data corresponds to the data communication of the peripheral devices with the application program module over the device control program modules. The data communication is defined in a test procedure for testing the application program module. The peripheral devices are a numeric keyboard (12), a card reader and writer (14), a controller safety supervision (16) and a controller handling/output (18). An independent claim is also included for a method for computerized implementation of a test of a software module.

Description

Die Erfindung betrifft ein Verfahren und ein System zum computergesteuerten Durchführen mindestens eines Testablaufs, bei dem mindestens ein erstes Softwaremodul einer Anwendungssoftware getestet wird, das zur Datenkommunikation mit mindestens einem Peripheriegerät Daten mit dem mindestens einen zweiten Softwaremodul austauscht.The The invention relates to a method and a system for computer-controlled Carry out at least one test procedure, wherein at least a first software module an application software is tested for data communication with at least one peripheral device data with the at least exchanges a second software module.

Eine von einer Datenverarbeitungseinheit abzuarbeitende Anwendungssoftware, die relativ komplexe Verarbeitungsvorgänge mit einem oder mehreren mit der Datenverarbeitungseinheit verbundenen Peripheriegeräten abwickelt, ist auf eine fehlerfreie Funktion in verschiedenen möglichen Konstellationen zu testen, bevor sie für eine Auslieferung an Kunden freigegeben wird. Solche komplexe Verarbeitungsvorgänge sind insbesondere von Geldmitteltransaktionsgeräten, beispielsweise in Geldeinzahl- und/oder in Geldauszahlautomaten, durchzuführen. Solche Geldmitteltransaktionsgeräte umfassen vorzugsweise eine Datenverarbeitungseinheit, wie einen Personalcomputer, und mit dieser Datenverarbeitungseinheit verbundene Peripheriegeräte, insbesondere eine Anzeigeeinheit, mindestens eine Tastatur, mindestens eine Kartenlese- und -schreibeinheit sowie optional ein Peripheriegerät zum Erfassen biometrischer Eigenschaften einer Bedienperson.A application software to be processed by a data processing unit, the relatively complex processing operations with one or more processing peripheral devices connected to the data processing unit, is on a flawless function in various possible Constellations to test before going for delivery to customers is released. Such complex processing operations are especially of cash transaction devices, for example in cash and / or in cash dispensers. Such funds transaction devices include preferably a data processing unit, such as a personal computer, and peripheral devices connected to this data processing unit, in particular a display unit, at least one keyboard, at least one card reader and -schreibeinheit and optionally a peripheral device for detecting biometric characteristics of an operator.

Die Anwendungssoftware muss insbesondere daraufhin getestet werden, ob erforderliche Interaktionen zwischen der Anwen dungssoftware und den Peripheriegeräten in der erforderlichen Art und im erforderlichen Umfang korrekt durchgeführt werden können. Dazu sind einzelne Interaktionen, wie das Ausgeben entsprechender Dialoge über eine Anzeigeeinheit und das Erwarten und Verarbeiten entsprechender Eingabeinformationen, in einer Vielzahl möglicher Bedienkonstellationen zutesten. Solche Interaktionen zwischen der Anwendungssoftware bzw. mindestens einem Softwaremodul der Anwendungssoftware und den Peripheriegeräten, zum Beispiel das Einführen einer Magnet- und/oder Chipkarte, das Betätigen einer Auswahltaste, das Entnehmen von ausgezahlten Geldmitteln (Banknoten), das Entnehmen einer freigegebenen Magnet- und/oder Chipkarte, müssen für verschiedene Betriebsmodi und verschiedene Konstellationen getestet werden, um die reibungslose Funktion der Anwendungssoftware überprüfen zu können und deren korrekte Funktion sicherzustellen.The Application software in particular needs to be tested whether required interactions between the application software and the peripherals be performed correctly in the required manner and extent can. These are individual interactions, such as spending appropriate Dialogues about a display unit and the expectation and processing of such Input information, in a variety of possible operating constellations to test. Such interactions between the application software or at least a software module of the application software and the peripheral devices, for Example introducing a magnetic and / or chip card, pressing a selection key, the Withdrawal of disbursed funds (banknotes), the removal a shared magnetic and / or smart card, need for different Operating modes and different constellations are tested to to be able to check the smooth functioning of the application software and to ensure their correct functioning.

Denkbare Lösungsansätze basieren auf einer automatischen Betätigungseinheit, wie beispielsweise einen Testautomaten oder einen Industrieroboter. Die Umsetzung solcher Lösungsansätze erfordert jedoch einen hohen technischen Aufwand. Bei einer Änderung des Testablaufs sind dann Programmänderungen des Testautomaten bzw. des Roboters erforderlich, um den Testablauf an die Erfordernisse des geänderten Testablaufs anzupassen. Insbesondere bei Robotern sind weitere Sicherheitsmaßnahmen erforderlich, um eine Beschädigung des zu testenden Systems und von Personen im Schwenkbereich des Roboters sicher zu verhindern. Solche Betätigungseinheiten sind nicht mit vertretbaren Kosten zu realisieren.conceivable Based on solutions on an automatic operating unit, such as a test machine or an industrial robot. The implementation of such approaches requires but a high technical effort. In case of a change of the test procedure are then program changes of the test machine or the robot required to complete the test procedure to the requirements of the amended Test procedure to adapt. Especially with robots are more security measures required to damage of the system to be tested and persons in the swivel range of the Safe robot. Such actuators are not to realize with reasonable costs.

Derzeit wird eine neue oder geänderte Anwendungssoftware dadurch getestet, dass eine Bedienperson die zum Testen erforderlichen Bedienhandlungen vornimmt. Dadurch ist ein hoher Zeit- und Personalaufwand erforderlich, um insbesondere verschiedene Versionen der Anwendungssoftware nacheinander zu testen. Um den personellen Aufwand und den Zeitaufwand in vertretbaren Grenzen zu halten, werden oft nur Grundfunktionen einer Software getestet und weitere Ein- und Ausgabeinteraktionen insbesondere eine mehrfache Wiederholung von Testabläufen mit unveränderter Hard- und Software werden aus Zeit- und Kostengründen nicht durchgeführt, wodurch die einwandfreie Funktion der Anwendungssoftware nicht immer 100%ig geprüft ist und Qualitätsprobleme mit ausgelieferter Anwendungssoftware auftreten können.Currently will be a new or changed Application software tested by an operator who to perform necessary operator actions for testing. This is a high amount of time and manpower is required in particular to test different versions of the application software one after the other. To the human effort and the time required in reasonable limits often only basic functions of a software are tested and further input and output interactions, in particular a multiple Repetition of test procedures with unchanged Hardware and software are not performed due to time and cost reasons, which the perfect function of the application software is not always 100% checked is and quality problems can occur with delivered application software.

Aufgabe der Erfindung ist es, ein System und ein Verfahren anzugeben, mit denen mindestens ein Test mindestens eines Softwaremoduls von der Anwendungssoftware auf einfache Art und Weise erfolgen kann.task The invention is to provide a system and a method, with which at least one test of at least one software module of the Application software can be done in a simple manner.

Diese Aufgabe wird durch ein System mit den Merkmalen des Patentanspruchs 1 und durch ein Verfahren mit den Merkmalen des Patentanspruchs 11 gelöst. Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Patentansprüchen angegeben.These The object is achieved by a system having the features of the patent claim 1 and by a method having the features of claim 11 solved. Advantageous developments of the invention are specified in the dependent claims.

Durch ein System zum computergesteuerten Durchführen mindestens eines Tests des mindestens einen Softwaremoduls einer Anwendungssoftware wird erreicht, dass dieses Softwaremodul in allen erforderlichen Konstellationen automatisch computergesteuert getestet werden kann, ohne dass zum Ausführen einzelner Interaktionen Bedieneingriffe einer Bedienperson erforderlich sind. Dadurch können auch umfangreiche Tests mit einer Vielzahl von Testschritten und einer Vielzahl von Interaktionen zwischen den Softwaremodulen der Anwendungssoftware und dem Peripheriegerät durchgeführt werden ohne dass die Peripheriegeräte überhaupt vorhanden sein müssen. Die durch Bedieneingaben erzeugten Daten, die vom Peripheriegerät über das zweite Softwaremodul zum ersten Softwaremodul übertragen werden, werden erfindungsgemäß vom dritten Softwaremodul zum ersten Softwaremodul übertragen, wobei die zur Interaktion vom Peripheriegerät zum ersten Softwaremodul zu übertragenden Daten vorzugsweise durch einen durch Bedienhandlungen einer Bedienperson an dem oder den Peripheriegeräten durchgeführten Testablauf aufgezeichnet worden sind. Dadurch kann auf einfache Art und Weise ein Testablauf aufgezeichnet werden, ohne dass die Kommunikation durch ein als Peripheriegerät speziell konfiguriertes Simulationsprogramm simuliert werden muss. Ein solcher Testablauf wird auch als Initialisierungstestablauf bezeichnet. Durch dieses System ist auch eine mehrfache Wiederholung von Testabläufen insbesondere mit unveränderter Hard- und Software einfach und kostengünstig möglich. Bei einer geeigneten Konfiguration des Testsystems können die Wiederholungen automatisch ohne weitere Bedieneingriffe ausgeführt werden.By means of a system for computer-controlled execution of at least one test of the at least one software module of an application software, it is achieved that this software module can be automatically computer-controlled tested in all required constellations, without operator intervention being required for carrying out individual interactions. As a result, it is also possible to carry out extensive tests with a large number of test steps and a large number of interactions between the software modules of the application software and the peripheral device without the peripheral devices even having to be present at all. The data generated by operating inputs, which are transmitted from the peripheral device via the second software module to the first software module, according to the invention transmitted from the third software module to the first software module, wherein the interaction for the peripheral device data to be transmitted to the first software module has preferably been recorded by a test procedure performed on the peripheral device (s) by operator actions. As a result, a test procedure can be recorded in a simple manner, without having to simulate the communication by means of a simulation program specially configured as a peripheral device. Such a test procedure is also referred to as initialization test procedure. Through this system, a multiple repetition of test procedures, in particular with unchanged hardware and software is easy and inexpensive. With a suitable configuration of the test system, the repetitions can be carried out automatically without further operator intervention.

Die vom zweiten Softwaremodul zum ersten Softwaremodul während des Initialisierungstestablaufs übertragenen Daten werden vorzugsweise vom dritten Softwaremodul oder von einem vierten Softwaremodul aufgezeichnet und gespeichert. Beim Initialisierungstestlauf erfolgt eine tatsächliche Kommunikation zwischen dem ersten Softwaremodul und dem Pe ripheriegerät über das zweite Softwaremodul, wobei eine Bedienperson vorzugsweise mit dem Peripheriegerät interagiert, insbesondere aufgrund ausgegebener Einforderungen erforderliche Eingabehandlungen vornimmt.The from the second software module to the first software module during the Initialization test procedure Data is preferably from the third software module or from a fourth software module recorded and stored. During the initialization test run an actual takes place Communication between the first software module and the peripheral device via the second software module, wherein an operator preferably with the peripheral interacts, particularly due to issued demands Makes input actions.

Bei einer Weiterbildung erfolgt die tatsächliche Kommunikation zwischen dem ersten Softwaremodul und dem Peripheriegerät über das dritte bzw. vierte Softwaremodul und das zweite Softwaremodul. Diese tatsächliche Kommunikation stimmt mit der Kommunikation zwischen dem ersten Softwaremodul und dem Peripheriegerät über das zweite Softwaremodul ohne Zwischenschaltung des dritten bzw. vierten Softwaremoduls überein.at In a further education the actual communication takes place between the first software module and the peripheral device via the third and fourth, respectively Software module and the second software module. This actual Communication agrees with the communication between the first software module and the peripheral over the second software module without interposition of the third and fourth Software module match.

Weiterhin ist es vorteilhaft, wenn das dritte und/oder vierte Softwaremodul als Proxyprogrammmodul zum Zwischenspeichern und Aufzeichnen der Kommunikation zwischen dem ersten Softwaremodul und dem zweiten Softwaremodul eingesetzt wird. Dadurch kann die Datenkommunikation zwischen dem ersten und dem zweiten Softwaremodul bidirektional erfasst werden und insbesondere ein zeitlicher Bezug zwischen den vom ersten Softwaremodul zum zweiten Softwaremodul übertragenen Daten und den vom zweiten zum ersten Softwaremodul übertragenen Daten erfasst werden. Ferner kann die Datenkommunikation zwischen dem ersten Softwaremodul und mehreren zweiten Softwaremodulen mit Hilfe des dritten und/oder vierten Softwaremoduls erfasst werden, insbesondere mit Hilfe des Proxyprogrammmoduls, um auch zeitliche Zusammenhänge zwischen den vom ersten Softwaremodul zum zweiten Softwaremodul übertragenen Daten und den von dem min destens einen weiteren zweiten Softwaremodul zum ersten Softwaremodul übertragenen Daten erfassen zu können.Farther it is advantageous if the third and / or fourth software module as a proxy program module for buffering and recording the communication between the first software module and the second software module is used. This allows the data communication between the first and the second software module are bidirectionally detected and in particular a temporal relationship between the first software module to the second Transferred software module Data and transmitted from the second to the first software module Data is collected. Furthermore, the data communication between the first software module and several second software modules with Help of the third and / or fourth software module are detected especially with the help of the proxy program module, to temporal relationships between the transmitted from the first software module to the second software module Data and that of at least one other second software module transferred to the first software module To capture data.

Besonders vorteilhaft ist es, wenn das zweite Softwaremodul für das erste Softwaremodul eine Kommunikationsschnittstelle bereitstellt. Das zweite Softwaremodul ist vorzugsweise ein Treibersoftwaremodul und/oder eine von der Klasse des ersten Softwaremoduls verschiedene zweite Klasse, vorzugsweise in einer objektorientierten Programmumgebung.Especially It is advantageous if the second software module for the first Software module provides a communication interface. The second software module is preferably a driver software module and / or a second different from the class of the first software module Class, preferably in an object-oriented program environment.

Die Daten umfassen vorzugsweise mehrere Datenblöcke, wobei jeder Datenblock vorzugsweise einer Kommunikation zu einer Interaktion mit dem Peripheriegerät zugeordnet ist. Die Datenblöcke werden vorzugsweise in ihrer zeitlichen Reihenfolge, insbesondere mit ihrem zeitlichen Bezug zueinander, mit ihrem zeitlichen Bezug zu einem Bezugszeitpunkt und/oder mit ihrem zeitlichen Bezug zu weiteren Datenblöcken gespeichert. Durch den erfassten zeitlichen Bezug können aufgrund der vom ersten Softwaremodul ausgegebenen Anforderungen der Anforderung entsprechende Daten vom dritten Softwaremodul zum ersten Softwaremodul im erfassten zeitlichen Abstand übertragen werden.The Data preferably comprises a plurality of data blocks, each data block preferably associated with a communication to an interaction with the peripheral device is. The data blocks are preferably in their chronological order, in particular with their temporal relationship to each other, with their temporal relation at a reference date and / or with their temporal reference to further data blocks saved. Due to the recorded temporal relation can due to the requirements of the request issued by the first software module corresponding data from the third software module to the first software module transferred at the recorded time interval become.

Vorzugsweise zeichnet das dritte Softwaremodul zusätzlich die während des Initialisierungstestablaufs vom ersten Softwaremodul zum zweiten Softwaremodul übertragenen weiteren Daten auf. Bei einer Wiederholung des Testablaufs mit dem ersten Softwaremodul oder mit einem modifizierten ersten Softwaremodul wird zumindest ein Teil der aufgezeichneten Daten vom dritten Softwaremodul oder von einem vierten Softwaremodul zum ersten Softwaremodul in Abhängigkeit der vom ersten Softwaremodul zum dritten Softwaremodul übertragenen Daten übertragen. Vorzugsweise sind mehrere Peripheriegeräte vorgesehen, mit denen das erste Softwaremodul jeweils über das zweite Softwaremodul kommuniziert und/oder mit dem das erste Softwaremodul über jeweils ein zweites diesem Peripherigegerät zugeordnetes Softwaremodul kommuniziert. Solche Peripheriegeräte umfassen insbesondere eine tastsensitive Anzeigeeinheit, eine Kartenlese- und/oder Kartenschreibeinheit, eine Tastatur, insbesondere eine Zifferntastatur oder Funktionstasten, eine Vorrichtung zum Erfassen biometrischer Eigenschaften, eine Geldmitteltransport-, Geldmittelprüf-, Geldmittelspeicher-, Geldmittelvereinzelungs-, Geldmittelstapel-, Geldmittelsortier-, Geldmittelwende-, Geidmittelausgabe- und/oder Geldmitteleingabeeinheit. Das erste Softwaremodul ist vorzugsweise Bestandteil eines Anwendungsprogramms zum Steuern eines Geldmitteltransaktionsgerätes, wie einem Geldeinzahl- oder -auszahlautomaten.Preferably In addition, the third software module records the during the Initialization Testablaufs transferred from the first software module to the second software module further data. In a repetition of the test procedure with the first software module or with a modified first software module will be at least part of the recorded data from the third software module or from a fourth software module to the first software module in dependence that transmitted from the first software module to the third software module Transfer data. Preferably, a plurality of peripheral devices are provided with which the first software module each about the second software module communicates and / or communicates with the first one Software module via in each case a second software module assigned to this peripheral device communicated. Such peripheral devices include in particular a touch-sensitive display unit, a card reading and / or card writing unit, a keyboard, in particular a numeric keypad or function keys, a device for detecting biometric properties, a Funds transfer, funds check, funds storage, funds singular, Funds stack, funds sorting, funds turnaround, geid and / or cash input unit. The first software module is preferred Component of an application program for controlling a cash transaction device, such as a cash deposit or withdrawal machine.

Durch ein Verfahren zum computergesteuerten Testen eines Softwaremoduls mit den Merkmalen des Patentanspruchs 11 können gleiche Vorteile erzielt werden wie durch das System nach Patentanspruch 1. Ferner kann dieses Verfahren auf die gleiche Weise weitergebildet werden, wie für das System nach Patentanspruch 1 angegeben. Insbesondere kann auch das Verfahren mit den Merkmalen des Patentanspruchs 11 mit den zur Weiterbildung des Systems nach Patentanspruchs 1 in den abhängigen Patentansprüchen angegebenen Merkmalen oder entsprechenden verfahrensgemäßen Merkmalen weitergebildet werden.By a method for computer controlled testing of a software module having the features of patent claim 11, the same advantages can be achieved as by the system according to claim 1. Further, this method can be developed in the same manner as specified for the system according to claim 1. In particular, the method with the features of claim 11 can be further developed with the features specified in the dependent claims for the development of the system according to claim 1 or corresponding features corresponding to the method.

Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung, welche in Verbindung mit den beigefügten Figuren die Erfindung anhand eines Ausführungsbeispiels näher erläutert.Further Features and advantages of the invention will become apparent from the following Description, which in conjunction with the attached figures the invention with reference to an embodiment explained in more detail.

Es zeigen:It demonstrate:

1 ein Blockschaltbild mit Programmmodulen und Schnittstellen zur Kommunikation eines Anwendungsprogramms mit mehreren Peripheriegeräten gemäß einer ersten Ausführungsform der Erfindung; 1 a block diagram with program modules and interfaces for communication of an application program with multiple peripheral devices according to a first embodiment of the invention;

2 ein Blockschaltbild mit Programmmodulen und Schnittstellen zur Kommunikation eines Anwendungsprogramms mit mehreren Peripheriegeräten gemäß einer zweiten Ausführungsform der Erfindung; 2 a block diagram with program modules and interfaces for communication of an application program with multiple peripheral devices according to a second embodiment of the invention;

3 eine schematische Darstellung von Komponenten zum Durchführen eines computergesteuerten Tests des Anwendungsprogramms gemäß der ersten oder zweiten Ausführungsform der Erfindung; 3 a schematic representation of components for performing a computer-controlled test of the application program according to the first or second embodiment of the invention;

4 ein Blockschaltbild mit Programmmodulen und Schnittstellen zur Kommunikation eines Anwendungsprogramms mit mehreren Peripheriegeräten gemäß einer dritten Ausführungsform der Erfindung; 4 a block diagram with program modules and interfaces for communication of an application program with multiple peripheral devices according to a third embodiment of the invention;

5 eine schematische Darstellung von Komponenten zum Durchführen eines computergesteuerten Tests des Anwendungsprogramms gemäß der dritten Ausführungsform der Erfindung; 5 a schematic representation of components for performing a computer-controlled test of the application program according to the third embodiment of the invention;

6 den zeitlichen Ablauf der Kommunikation zwischen einem Kartenleser und dem Anwendungsprogramm sowie von zugehörigen Bedienein- und -ausgaben. 6 the timing of the communication between a card reader and the application program as well as associated operating inputs and outputs.

In 1 ist ein Blockschaltbild mit Programmmodulen und Schnittstellen zur Kommunikation eines Anwendungsprogrammmoduls 10 mit mehreren Peripheriegeräten 12 bis 18 eines Datenverarbeitungssystems eines Geldautomaten 20 dargestellt. Das Datenverarbeitungssystem des Geldautomaten 20 umfasst ferner eine Datenverarbeitungsanlage 22, die durch das Abarbeiten entsprechender Programmdaten das Anwendungsprogrammmodul 10, das Proxy-Programmmodul 24, die Geräteansteuerprogrammmodule 26 bis 32 sowie ein Betriebssystemtreiberprogramm 34 zum Ansteuern einer USB-Schnittstelle 38 der Datenverarbeitungsanlage 22 und ein Betriebssystemtreiberprogramm 36 zum Ansteuern einer V.24-Schnittstelle 40 der Datenverarbeitungsanlage 22 bereitgestellt. Über die USB-Schnittstelle 38 sind Peripheriegeräte 12 bis 16 mit Hilfe von Datenleitungen mit der Datenverarbeitungsanlage 22 verbunden. Über die V.24-Schnittstelle 40 ist das Peripheriegerät 18 mit Hilfe einer Datenleitung mit der Datenverarbeitungsanlage 22 verbunden.In 1 is a block diagram with program modules and interfaces for communication of an application program module 10 with several peripherals 12 to 18 a data processing system of an ATM 20 shown. The data processing system of the ATM 20 further comprises a data processing system 22 , which by executing appropriate program data, the application program module 10 , the proxy program module 24 , the device driver modules 26 to 32 and an operating system driver program 34 for controlling a USB interface 38 the data processing system 22 and an operating system driver program 36 for controlling a V.24 interface 40 the data processing system 22 provided. Via the USB interface 38 are peripherals 12 to 16 with the help of data cables with the data processing system 22 connected. Via the V.24 interface 40 is the peripheral device 18 with the help of a data line with the data processing system 22 connected.

Im vorliegenden Ausführungsbeispiel weist der Geldautomat 20 eine Zifferntastatur 12, eine Kartenlese- und -schreibeinheit 14 sowie eine Überwachungs- und Zugangssteuereinheit 16 auf, die jeweils mit der USB-Schnittstelle 38 der Datenverarbeitungsanlage 22 verbunden sind. Als weiteres Peripheriegerät 18 umfasst der Geldautomat 20 eine Steuereinheit zum Steuern des Transports und der Ausgabe von Geldscheinen, die über eine serielle Datenverbindung mit der V.24-Schnittstelle 40 der Datenerarbeitungsanlage 22 verbunden ist. Die Peripheriegeräte 12 bis 18 können bei anderen Ausführungsformen der Erfindung auch mit anderen Schnittstellentypen der Datenverarbeitungsanlage 22 verbunden sein. Ferner können andere Peripheriegeräte, insbesondere zusätzliche Peripheriegeräte, wie eine Anzeigeeinheit, insbesondere eine tastsensitive Anzeigeeinheit, Funktionstasten zur Auswahl von Bedienoptionen und Peripheriegeräte zum Geldmittelhandling vorgesehen sein.In the present embodiment, the ATM 20 a numeric keypad 12 , a card reading and writing unit 14 and a monitoring and access control unit 16 on, each with the USB interface 38 the data processing system 22 are connected. As another peripheral device 18 includes the ATM 20 a control unit for controlling the transport and issuing of bills via a serial data connection to the V.24 interface 40 the data processing system 22 connected is. The peripherals 12 to 18 may in other embodiments of the invention with other interface types of the data processing system 22 be connected. Furthermore, other peripheral devices, in particular additional peripheral devices, such as a display unit, in particular a touch-sensitive display unit, function keys for selecting operating options and peripheral devices for funds handling can be provided.

Ferner umfasst die Datenverarbeitungsanlage 22 mindestens einen Permanentspeicher 42 zum Speichern von zumindest Teilen der Datenkommunikation zwischen dem Anwendungsprogrammmodul 10 und den Gerätesteuerprogrammmodulen 26 bis 32. Das Anwendungsprogrammmodul 10 ist insbesondere als Smart-Client-Programmmodul ausgeführt, das insbesondere eine dynamische Oberflächengestaltung einer durch die Datenverarbeitungsanlage 22 bereitgestellten Benutzeroberfläche, eine dynamische Ablaufgestaltung von Prozessen und/oder ein netzinternes Management ermöglicht. Allgemein wird ein Smart-Client-Anwendungsprogrammmodul 10 lokal von einem Datenverarbeitungssystem des Geldautomaten 20 abgearbeitet und vollautomatisch über ein Netzwerk, insbesondere dem Internet oder einem Intranet, installiert und aktualisiert. Die Nutzung eines Smart-Client-Anwendungsprogrammmoduls 10 ermöglicht ein gutes Laufzeitverhalten und einen hohen Bedienkomfort bei gleichzeitiger Vermeidung oder Reduzierung lokaler Installationsprobleme, wobei durch die Smart Client-Programmmodule eine Kombination von Vorteilen der klassischen Desktopanwendung und von bekannten Webanwendungen erreicht wird. Der Zugriff beispielsweise auf ein Datenbanksystem einer Bank, mit dem der Geldautomat 20 über entsprechende Datenleitungen bzw. ein Datennetz verbunden ist, kann sowohl über ein lokaes Netzwerk als auch über einen Web-Servicedienst bereitgestellt werden. Alternativ können auch sogenannte Thin-Client-Programmmodule eingesetzt werden, deren Funktion im Wesentlichen auf die Ein- und Ausgabe von Informationen, vorzugsweise zum Bereitstellen einer Benutzeroberfläche beschränkt sind. Im Unterschied zum Thin-Client kann das Smart-Client-Programmmodul 10 auch dann aktiv sein, wenn die Datenverarbeitungsanlage 22 nicht mit einem Netzwerk verbunden ist. Somit ist ein solcher Smart Client als Anwendungsprogrammmodul 10 der Datenverarbeitungsanlage 22 des Geldautomaten 20 geeignet, da das Smart Client-Programmmodul 10 insbesondere sogenannte Notlaufroutinen bereitstellen kann, die beispielsweise durch einen Softwarestack bereitgestellt werden.Furthermore, the data processing system includes 22 at least one permanent memory 42 for storing at least parts of the data communication between the application program module 10 and the device control program modules 26 to 32 , The application program module 10 is in particular designed as a smart client program module, in particular a dynamic surface design of a through the data processing system 22 provided user interface, a dynamic flow of processes and / or an internal network management. In general, a smart client application program module 10 locally from a data processing system of the ATM 20 processed and fully automatically via a network, in particular the Internet or an intranet, installed and updated. Using a Smart Client Application Program Module 10 allows a good runtime behavior and a high level of operating comfort while avoiding or reducing local installation problems, with the Smart Client program modules a combination of advantages of the classic desktop application and known web applications is achieved. Access, for example, to a database system of a bank with which the ATM 20 Connected via corresponding data lines or a data network can be provided both via a local network and via a web service. Alternatively, it is also possible to use so-called thin-client program modules whose function is essentially limited to the input and output of information, preferably to provide a user interface. In contrast to the thin client, the smart client program module 10 even be active when the data processing system 22 not connected to a network. Thus, such a smart client is an application program module 10 the data processing system 22 of the ATM 20 suitable because the Smart Client program module 10 In particular, so-called emergency operation routines can be provided, which are provided for example by a software stack.

Alternativ kann das Anwendungsprogrammmodul 10 auch ein eigenständiges Anwendungsprogramm sein, das mit Hilfe einer geeigneten Programmiersprache, wie der plattformunabhängigen Programmiersprache JAVA, erstellt worden ist. Auch das Smart-Client-Programmmodul 10 ist vorzugsweise mit Hilfe der Programmiersprache JAVA erstellt worden.Alternatively, the application program module 10 also be a stand-alone application program that has been created using a suitable programming language, such as the platform-independent programming language JAVA. Also the smart client program module 10 has preferably been created using the programming language JAVA.

Bei dem Ausführungsbeispiel nach 1 ist das Anwendungsprogrammmodul 10 in der Programmiersprache JAVA erstellt worden. Ferner ist für jedes mit der Datenverarbei tungsanlage 22 verbundene und über das Anwendungsprogrammmodul 10 ansteuerbare Peripheriegerät 12 bis 18 jeweils ein Gerätesteuerprogrammmodul 26 bis 22 definiert, das auch als JAVA-Device-Programmmodul bezeichnet wird. Diese Gerätesteuerprogrammmodule 26 bis 32 stellen für das Anwendungsprogrammmodul 10 eine einheitliche Kommunikationsschnittstelle für Peripheriegeräte 12 bis 18 bereit. Diese Gerätesteuerprogrammmodule 26 bis 32 stellen für das Anwendungsprogrammmodul 10 jeweils ein definiertes und einfach ansprechbares JAVA-Device bereit, durch die die und zur Kommunikation mit dem vom Betriebssystem der Datenverarbeitungsanlage 22 bereitgestellten Treiberprogramme 34, 36 einfach möglich ist. Die Gerätesteuerprogrammmodule 26 bis 32 stellen somit jeweils eine Kommunikationsschnittstelle zwischen den Anwendungsprogrammmodul 10 und den Treiberprogrammen 34, 36 bereit. Für das Peripheriegerät 12 wird eine sogenannte J/XFS-Schnittstelle (J/XFS JAVA/eXtensions for Financial Services) bereitgestellt, durch die eine standardisierte JAVA-Schnittstelle für Hardwarekomponenten bereitgestellt wird, die im Rankenumfeld insbesondere bei SB-Terminals eingesetzt werden. Für die Peripheriegeräte 16 und 18 wird durch die Gerätesteuerprogrammmodule 30, 32 jeweils eine WOSA/XFS-Schnittstelle (Windows Open Services Architecture/eXtensions for Financial Services) bereitstellt. WOSA ist eine Softwarearchitektur für Windowsbetriebssysteme, die Schnittstellen für Peripheriegeräte definieren, wodurch die Erstellung von individuellen Windowsanwendungen ermöglicht wird, die hohen Ansprüchen gerecht werden, wie sie insbesondere im Bereich von SB-Terminals im Bankbereich erforderlich sind.According to the embodiment 1 is the application program module 10 created in the programming language JAVA. Furthermore, for each with the data processing plant 22 connected and via the application program module 10 controllable peripheral device 12 to 18 one device control program module each 26 to 22 which is also referred to as a JAVA device program module. These device control modules 26 to 32 set for the application program module 10 a uniform communication interface for peripherals 12 to 18 ready. These device control modules 26 to 32 set for the application program module 10 each one defined and easily accessible JAVA device ready by which the and for communication with the operating system of the data processing system 22 provided driver programs 34 . 36 is simply possible. The device control program modules 26 to 32 thus each provide a communication interface between the application program module 10 and the driver programs 34 . 36 ready. For the peripheral device 12 A so-called J / XFS interface (J / XFS JAVA / eXtensions for Financial Services) is provided, which provides a standardized JAVA interface for hardware components that are used in the vineyard environment, especially for self-service terminals. For the peripherals 16 and 18 is through the device control program modules 30 . 32 each provides a WOSA / XFS (Windows Open Services Architecture / eXtensions for Financial Services) interface. WOSA is a software architecture for Windows operating systems that define interfaces for peripherals, enabling the creation of custom Windows applications that meet the high standards required in the area of self-service terminals in the banking sector.

Für das Peripheriegerät 14 wird durch das Gerätesteuerprogrammmodul 28 eine J/FS-Schnittstelle (JAVA/Financial Ser vice) bereitgestellt. Die Gerätesteuerprogrammmodule 26 bis 32 bilden somit für das Anwendungsprogrammmodul 10 eine Kommunikationsschnittstelle mit den Treiberprogrammmodulen 34, 36 zum Ansteuern der Schnittstellen 38, 40, so dass das Anwendungsprogrammmodul 10 weder mit den Treiberprogrammmodulen 34, 36 oder zur direkten Kommunikation mit den Peripheriegeräten 12 bis 18 über die Schnittstelle 38, 40 angepasst werden muss. Somit kann das Anwendungsprogrammmodul 10 auch mit verschiedensten Plattformen und unterschiedlichen Datenverarbeitungsanlagen 22 ohne weitere Anpassungen abgearbeitet werden, wenn Gerätesteuerprogrammmodule 26 bis 32 vorhanden sind, über die eine standardisierte Kommunikation mit den Peripheriegeräten 12 bis 18 möglich ist. In der objektorientierten Programmierung der Programmiersprache JAVA sind das Anwendungsprogrammmodul 10 und die Gerätesteuerprogrammmodule 26 bis 32 verschiedenen Klassen zugeordnet. Das Proxy-Programmmodul 24 ist einer weiteren Klasse zugeordnet, die zum Erfassen der Datenkommunikation zwischen dem Anwendungsprogrammmodul 10 und den Gerätesteuerprogrammmodulen 26 bis 32 zwischen den Schichten des Anwendungsprogrammmoduls 10 und der Gerätesteuerprogrammmodule 26 bis 32 angeordnet ist. Das Proxy-Programmmodul 24 erfasst die vom Anwendungsprogrammmodul 10 zu den Gerätesteuerprogrammmodulen 26 bis 32 übertragenen Daten sowie die von den einzelnen Gerätesteuerprogrammmodulen 26 bis 32 zum Anwendungsprogrammmodul 10 übertragenen Daten und zeichnet diese auf. Die aufgezeichneten Daten werden im Permanentspeicher 42 gespeichert. Der Permanentspeicher 42 kann insbesondere durch ein Datenbanksystem bereitgestellt werden. Die vom Anwendungsprogrammmodul 10 zu den Gerätesteuerprogrammmodulen 26 bis 32 übertragenen Daten können vom Programmmodul 24 auch zwischengespeichert und dann weiter zu den Gerätesteuerprogrammmodulen 26 bis 32 übertragen werden. Auch die von den Gerätesteuerprogrammmodulen 26 bis 32 zum Anwendungsprogrammmodul 10 übertragenen Daten können vom Aufzeichnungsprogrammmodul 24 zwischengespeichert werden, bevor sie weiter zum Anwendungsprogrammmodul 10 übertragen werden. Somit werden mit Hilfe des Aufzeichnungsprogrammmoduls 10 die gesamten bei der Interaktion mit den Peripheriegeräten 12 bis 18 vom und zum Anwendungsprogrammmodul 10 während eines Testablaufs übertragenen Daten vom Programmmodul 24 erfasst und gespeichert.For the peripheral device 14 is through the device control program module 28 provided a J / FS interface (JAVA / Financial Service). The device control program modules 26 to 32 thus form for the application program module 10 a communication interface with the driver program modules 34 . 36 for controlling the interfaces 38 . 40 so that the application program module 10 neither with the driver program modules 34 . 36 or for direct communication with the peripherals 12 to 18 over the interface 38 . 40 must be adjusted. Thus, the application program module 10 also with different platforms and different data processing systems 22 be processed without any further adjustments if device control program modules 26 to 32 are present, over which a standardized communication with the peripheral devices 12 to 18 is possible. In the object-oriented programming of the programming language JAVA are the application program module 10 and the device control program modules 26 to 32 assigned to different classes. The proxy program module 24 is associated with another class that is used to capture the data communication between the application program module 10 and the device control program modules 26 to 32 between the layers of the application program module 10 and the device control program modules 26 to 32 is arranged. The proxy program module 24 captures those from the application program module 10 to the device control modules 26 to 32 transmitted data as well as those of the individual device control program modules 26 to 32 to the application program module 10 transmitted data and records these. The recorded data is stored in non-volatile memory 42 saved. The permanent memory 42 can be provided in particular by a database system. The from the application program module 10 to the device control modules 26 to 32 transmitted data can be from the program module 24 also cached and then on to the device control program modules 26 to 32 be transmitted. Also from the device control modules 26 to 32 to the application program module 10 transmitted data may be from the recording program module 24 intermediately before continuing to the application program module 10 be transmitted. Thus, with the help of the recording program module 10 the whole when interacting with the peripherals 12 to 18 from and to the application program module 10 Data transmitted during a test procedure from the program module 24 captured and saved.

Wird nun mit Hilfe des Anwendungsprogrammmoduls 10 ein erster Test durchgeführt, bei dem eine Bedienperson die erforderlichen Bedienhandlungen der Peripheriegeräte 12 bis 18 durchführt sowie tatsächlich vorhandene Peripheriegeräte 12 bis 18 entsprechend angesteuert werden, wird der gesamte Datenverkehr von und zum Anwendungsprogrammmodul 10 mit Hilfe des Aufzeichnungsprogrammmoduls 24 erfasst und aufgezeichnet. Dieser erste Testablauf mit der tatsächlichen Interaktion mit den Peripheriegeräten 12 bis 18 wird auch als Initialisierungstestlauf bezeichnet.Now with the help of the application program module 10 performed a first test in which an operator the required operations of the peripheral devices 12 to 18 performs as well as actually existing peripherals 12 to 18 are controlled accordingly, all traffic to and from the application program module 10 with the help of the recording program module 24 recorded and recorded. This first test procedure with the actual interaction with the peripherals 12 to 18 is also called an initialization test run.

Für folgende automatisch durchgeführte Testabläufe kann der Datenaustausch zwischen dem Anwendungsprogrammmodul 10 und den Gerätesteuerprogrammmodulen 26 bis 32 durch das Programmmodul 24 mit Hilfe der gespeicherten Daten einfach bereitgestellt werden, indem zumindest ein Teil der aufgezeichneten Daten zum Anwendungsprogrammmodul 10 übertragen werden. Dies wird nachfolgend in Verbindung mit 3 noch näher erläutert.For the following automatically executed test procedures, the data exchange between the application program module 10 and the device control program modules 26 to 32 through the program module 24 with the help of the stored data can be easily provided by at least part of the recorded data to the application program module 10 be transmitted. This will be described below in connection with 3 explained in more detail.

In 2 ist ein Blockschaltbild mit Programmmodulen und Schnittstellen zur Kommunikation des Anwendungsprogrammmoduls 10 mit mehreren Peripheriegeräten 12 bis 18 eines Datenverarbeitungssystems des Geldautomaten 20 gemäß einem zweiten Ausführungsbeispiel dargestellt. Im Unterschied zu dem Blockschaltbild nach 1 ist beim Ausführungsbeispiel nach 2 ein gemeinsames JAVA-Gerätesteuerprogrammmodul 25 vorgesehen, das jedoch für jedes Peripheriegerät 12 bis 18 jeweils eine Kommunikationsschnittstelle 26a bis 32a zur Kommunikation mit den Treiberprogrammen 34, 36 des Betriebssystems bereitstellt. Das JAVA-Gerätesteuerprogrammmodul 25 stellt somit für das Anwendungsprogrammmodul 10 eine gemeinsame Kommunikationsschnittstelle bereit. Das Gerätesteuerprogrammmodul stellt jedoch für jedes Peripheriegerät 12 bis 18 des Geldautomaten 20 eine separate Kommunikationsschnittstelle 26a bis 32a bereit.In 2 is a block diagram with program modules and interfaces for communication of the application program module 10 with several peripherals 12 to 18 a data processing system of the ATM 20 shown according to a second embodiment. Unlike the block diagram after 1 is in the embodiment after 2 a common JAVA device control module 25 provided, however, for each peripheral device 12 to 18 one communication interface each 26a to 32a for communication with the driver programs 34 . 36 of the operating system. The JAVA device control module 25 thus represents for the application program module 10 a common communication interface ready. The device control module, however, provides for each peripheral device 12 to 18 of the ATM 20 a separate communication interface 26a to 32a ready.

In 3 ist ein Blockschaltbild mit Komponenten zum Durchführen eines automatischen computergesteuerten Testablaufs zum Testen des Anwendungsprogrammmoduls 10 dargestellt. Zum Durchführen des Testablaufs werden die im Permanentspeicher 42 der Datenverarbeitungsanlage 22 gespeicherten Daten über die Datenkommunikation zwischen dem Anwendungsprogrammmodul 10 und den Peripheriegeräten 12 bis 18 genutzt, um den Test durchzuführen. Beim Abarbeiten des Anwendungsprogrammmoduls 10 erfasst das Programmmodul 24 die vom Anwendungsprogrammmodul 10 übertragenen Daten, vergleicht diese mit den im Permanentspeicher 42 gespeicherten Daten und ermittelt eine diesen Daten zugeordnete Interaktion mit einem der Peripheriegeräte 12 bis 18. Ferner ermittelt das Programmmodul 24 die dieser Interaktion zugeordneten vom Peripheriegerät 12 bis 18 bzw. die vom Geräte ansteuerprogrammmodul 25, 26 bis 32 zum Anwendungsprogrammmodul 10 als Reaktion für diese Interaktion übertragenen Daten und den zeitlichen Abstand zwischen den vom Anwendungsprogrammmodul 10 zum Gerätesteuerprogrammmodul 25, 26 bis 32 übertragenen Daten und als Reaktion darauf vom Gerätesteuerprogrammmodul 25, 26 bis 32 zum Anwendungsprogrammmodul 10 übertragenen Daten. Die ermittelten Daten werden daraufhin vom Programmmodul 24 zum Anwendungsprogrammmodul 10 übertragen. Dadurch werden die im Initialisierungstestablauf aufgezeichneten Daten wieder übertragen, d. h. wieder abgespielt, wobei durch das Auswerten der vom Anwendungsprogrammmodul 10 während des weiteren Testablaufs zum Programmmodul 24 übertragenen Daten und das Ermitteln der zu diesen Daten im Permanentspeicher 42 gespeicherten Daten eine flexible fehlertollerante Reaktion auf die Anforderungen des Anwendungsprogrammmoduls 10 an die Peripheriegeräte 12 bis 18 erreicht wird.In 3 Figure 13 is a block diagram of components for performing an automated computer-controlled test procedure for testing the application program module 10 shown. To perform the test procedure are the non-volatile memory 42 the data processing system 22 stored data via the data communication between the application program module 10 and the peripherals 12 to 18 used to perform the test. When processing the application program module 10 captures the program module 24 that from the application program module 10 transferred data compared with those in the non-volatile memory 42 stored data and determines an associated with this data interaction with one of the peripheral devices 12 to 18 , The program module also determines 24 the ones associated with this interaction from the peripheral device 12 to 18 or the drive program module from the device 25 . 26 to 32 to the application program module 10 data transmitted in response to this interaction and the time interval between those from the application program module 10 to the device control program module 25 . 26 to 32 transmitted data and in response to the device control program module 25 . 26 to 32 to the application program module 10 transmitted data. The determined data are then from the program module 24 to the application program module 10 transfer. As a result, the data recorded in the initialization test procedure are transmitted again, ie played back, the evaluation being carried out by the application program module 10 during the further test procedure to the program module 24 transferred data and determining the data in the non-volatile memory 42 stored data a flexible error-tolerant response to the requirements of the application program module 10 to the peripherals 12 to 18 is reached.

Bei anderen Ausführungsbeispielen wird nach einem Start des Testablaufs die Datenkommunikation in gleicher Weise wie bei dem Initialisierungstestablauf durchgeführt. Jedoch ist dieses System dann nicht mehr im gleichen Maße fehlertolerant. Ferner kann das Programmmodul 24 die Reihenfolge der zum Anwendungsprogrammmodul 10 übertragenen Daten so steuern, dass sie in der gleichen Reihenfolge übertragen werden, in der sie während des Initialisierungstestablaufs aufgezeichnet worden sind.In other embodiments, after a start of the test procedure, the data communication is performed in the same manner as in the initialization test procedure. However, this system is then no longer equally fault tolerant. Furthermore, the program module 24 the order of the application program module 10 control transmitted data so that they are transmitted in the same order in which they were recorded during the initialization test procedure.

In 4 ist ein Blockschaltbild mit Programmmodulen und Schnittstellen zur Kommunikation eines Anwendungsprogrammmoduls 10 mit mehreren Peripheriegeräten 12 bis 18 eines Datenverarbeitungssystems des Geldautomaten 20 gemäß einer dritten Ausführungsform der Erfindung dargestellt. Das Programmmodul 24 zum Aufzeichnen und zum Simulieren der Datenkommunikation durch Abspielen der aufgezeichneten Datenkommunikation für weitere Tests ist beim Ausführungsbeispiel nach 4 zwischen den Treiberprogrammmodulen 34, 36 des Betriebssystems und den Hardwareschnittstellen 38, 40 angeordnet. Alternativ kann das Programmmodul 24 auch von einer weiteren Datenverarbeitungsanlage oder Steuereinheit bereitgestellt werden, das zwischen den Hardwareschnittstellen 38, 40 der Datenverarbeitungsanlage 22 und den Peripheriegeräten 12 bis 18 angeordnet ist und den über die Datenleitungen zwischen den Hardwareschnittstellen 38, 40 und den Peripheriegeräten 12 bis 18 bei dem Initialisierungstestablauf aufzeichnet und nachfolgend wiedergibt. Jedoch sind dann auch bei einem wiederholten Testablauf, bei dem die aufgezeichneten Daten zum Nachbilden der Interaktion mit den jeweiligen Peripheriegeräten 12 bis 18 abgespielt werden, das Vorhandensein der Peripheriegeräte 12 bis 18 erforderlich, da sonst die Treiberprogrammmodule 34, 36 des Betriebssystems erkennen, dass die Peripheriegeräte 12 bis 18 nicht korrekt angeschlossen sind und den Testablauf verhindern würden. Dieses Problem wird bei den Ausführungsbeispielen nach den 1 bis 4 vermieden.In 4 is a block diagram with program modules and interfaces for communication of an application program module 10 with several peripherals 12 to 18 a data processing system of the ATM 20 shown according to a third embodiment of the invention. The program module 24 for recording and simulating the data communication by playing the recorded data communication for further tests is in the embodiment according to 4 between the driver program modules 34 . 36 of the operating system and the hardware interfaces 38 . 40 arranged. Alternatively, the program module 24 also provided by another data processing system or control unit be that between the hardware interfaces 38 . 40 the data processing system 22 and the peripherals 12 to 18 is arranged and the data lines between the hardware interfaces 38 . 40 and the peripherals 12 to 18 records at the initialization test procedure and subsequently plays. However, even with a repeated test procedure, the recorded data will be to mimic the interaction with the respective peripherals 12 to 18 be played, the presence of peripherals 12 to 18 required, otherwise the driver program modules 34 . 36 of the operating system recognize that the peripherals 12 to 18 are not connected correctly and would prevent the test procedure. This problem is in the embodiments of the 1 to 4 avoided.

In 5 ist ein Blockschaltbild mit Komponenten zum Durchführen eines computergesteuerten Tests des Anwendungsprogrammmoduls 10 dargestellt, wobei zum Testablauf die mit Hilfe der in 4 gezeigten Konfiguration gemäß der dritten Ausführungsform der Erfindung aufgezeichneten Daten genutzt werden. Das Programmmodul 24 erzeugt für die Treiberprogrammmodule 34, 36 des Betriebssystems die gleiche Datenkommunikation während des automatisch ohne weitere Be nutzereingriffe durchgeführten Testablaufs, wie sie zwischen den Treiberprogrammmodulen 34, 36 und den Hardwareschnittstellen 38, 40 bei dem Initialisierungstestablauf erfolgt ist, bei dem eine tatsächliche Interaktion mit den Peripheriegeräten 12 bis 18 stattgefunden hat.In 5 Figure 12 is a block diagram of components for performing a computer-controlled test of the application program module 10 shown, with the test procedure using the in 4 shown configuration according to the third embodiment of the invention recorded data are used. The program module 24 generated for the driver program modules 34 . 36 the same data communication during the test procedure automatically performed without further user interventions, as between the driver program modules 34 . 36 and the hardware interfaces 38 . 40 in the initialization test sequence where there is an actual interaction with the peripherals 12 to 18 took place.

Die Gerätesteuerprogrammmodule 26 bis 32 bzw. 25 werden durch eine Softwareschicht zur Ansteuerung von Gerätekomponenten und Peripheriegeräten gebildet. Die Treiberprogrammmodule 34, 36 des Betriebssystems übernehmen eine tatsächliche Geräteverwaltung und Ansteuerung im Betriebssystem. Die Treiberprogrammmodule 34, 36 bilden die Verbindung zwischen den Hardwareschnittstellen 38, 40 und der durch die Geräteansteuerprogrammmodule 25 bis 32 bereitgestellten Softwareschicht. Zum Aufzeichnen der Datenkommunikation zwischen dem Anwendungsprogramm 10 und den Peripheriegeräten 12 bis 18 ist erfindungsgemäß eine Zwischenschicht vorgesehen. Diese Zwischenschicht kann an einer beliebigen Stelle der Datenkommunikation zwischen dem Anwendungsprogrammmodul 10 und den Peripheriegeräten 12 bis 18 angeordnet sein. Jedoch ist es vorteilhaft, die Zwischenschicht nahe dem Anwendungsprogrammmodul 10 vorzusehen, da dann die Tests auch mit Hilfe von Datenverarbeitungsanlagen durchgeführt werden können, mit denen während des automatisch durchgeführten Testablaufs die Peripheriegeräte 12 bis 18 nicht verbunden sind. Somit können Testabläufe auch auf beliebigen Datenverarbeitungsanlagen, wie beispielsweise auf einem Arbeitsplatzpersonalcomputer, ausgeführt werden, so dass für die tatsächlichen automatischen Testabläufe kein Geldautomat 20 mit den Peripheriegeräten 12 bis 18 vorhanden sein muss.The device control program modules 26 to 32 respectively. 25 are formed by a software layer for controlling device components and peripheral devices. The driver program modules 34 . 36 of the operating system assume an actual device management and control in the operating system. The driver program modules 34 . 36 form the connection between the hardware interfaces 38 . 40 and that by the device driver modules 25 to 32 provided software layer. To record the data communication between the application program 10 and the peripherals 12 to 18 According to the invention, an intermediate layer is provided. This intermediate layer may be anywhere in the data communication between the application program module 10 and the peripherals 12 to 18 be arranged. However, it is advantageous to have the intermediate layer near the application program module 10 be provided, since then the tests can also be carried out with the help of data processing systems, with which the peripherals during the automatic test procedure 12 to 18 are not connected. Thus, test procedures can also be performed on any data processing equipment, such as on a workstation personal computer, so that for the actual automatic test procedures no ATM 20 with the peripherals 12 to 18 must be present.

6 zeigt beispielhaft den zeitlichen Ablauf der Kommunikation zwischen einem Kartenleser 14 und dem Anwendungsprogramm 10 sowie von Ein- und Ausgaben über eine Benutzerschnittstelle 46, über die einem Benutzer 44 Informationen und Auswahlmöglichkeiten und über die dem Benutzer 44 erforderliche Eingabemöglichkeiten bereitgestellt werden. Die Benutzerschnittstelle umfasst vorzugsweise eine grafische Benutzeroberfläche. 6 shows an example of the timing of the communication between a card reader 14 and the application program 10 as well as inputs and outputs via a user interface 46 about a user 44 Information and choices and about the user 44 required input options are provided. The user interface preferably includes a graphical user interface.

Die beschriebene Vorgehensweise zum Aufzeichnen und Wiederabspielen der Datenkommunikation zwischen dem Anwendungsprogramm 10 und den Peripheriegeräten 12 bis 18 ist mit einem relativ geringen Aufwand realisierbar. Im Unterschied zu einer Simulation der Peripheriegeräte 12 bis 18 muss bei der beschriebenen Vorgehensweise keine Simulation eines Peripheriegerätes 12 bis 18 erstellt werden. Im Allgemeinen ist eine Simulation eines Gerätes ähnlich komplex wie das zu simulierende Gerät selbst und muss insbesondere an Änderungen des Gerätes, beispielsweise bei Firmwareänderungen, angepasst werden.The described procedure for recording and replaying the data communication between the application program 10 and the peripherals 12 to 18 is feasible with relatively little effort. Unlike a simulation of peripherals 12 to 18 In the described procedure, no simulation of a peripheral device is required 12 to 18 to be created. In general, a simulation of a device is as complex as the device to be simulated itself and in particular must be adapted to changes in the device, for example in firmware changes.

Durch das Aufzeichnen der Datenkommunikation zwischen dem Anwendungsprogramm 10 und den Peripheriegeräten 12 bis 18 wird die Datenkommunikation zum Peripheriegerät, dessen Antwort und das zeitliche Verhalten zwischen Anfrage und Antwort inklusive eventueller Fehler für jedes Peripheriegerät 12 bis 18 individuell ausgezeichnet und bei weiteren Testabläufen mit dem gleichen zeitlichen Verhalten und somit entsprechend dem tatsächlichen Verhalten des Peripheriegerätes 12 bis 18 wieder abgespielt und zum Anwendungsprogrammmodul 10 übertragen. Durch das Abspielen der Daten in Abhängigkeit von den vom Anwendungsprogramm 10 zum Peripheriegerät 12 bis 18 übertragenen Daten ist die Kommunikation und Interaktion mit dem Peripheriegerät 12 bis 18 für das Anwendungsprogrammmodul 10 genau so realistisch wie bei einer tatsächlichen Interaktion mit dem Peripheriegerät selbst.By recording the data communication between the application program 10 and the peripherals 12 to 18 becomes the data communication to the peripheral device, its response and the timing between request and response including any errors for each peripheral device 12 to 18 individually awarded and in further test procedures with the same temporal behavior and thus according to the actual behavior of the peripheral device 12 to 18 played again and the application program module 10 transfer. By playing the data depending on the application program 10 to the peripheral device 12 to 18 transmitted data is the communication and interaction with the peripheral device 12 to 18 for the application program module 10 just as realistic as an actual interaction with the peripheral device itself.

Die aufgezeichneten Daten werden vorzugsweise in einem XML-Datenformat erfasst oder in das XML-Datenformat umgewandelt sowie im XML-Datenformat gespeichert. Das XML-Datenformat hat den Vorteil, dass die XML-Daten einfach weiterverarbeitet und einfach editiert werden können, wodurch der Testablauf einfach überprüft und/oder verändert werden kann.The recorded data is preferably acquired in an XML data format or converted to the XML data format as well as the XML data format saved. The XML data format has the advantage that the XML data can be easily processed and easily edited, whereby the Test procedure simply checked and / or to be changed can.

Aufgrund der Aufzeichnungsmöglichkeit durch das Softwaremodul 24 wird dieses auch als Hardware Interaction Recorder bezeichnet. Der Hardware Interaction Recorder zeichnet das Verhalten von Hardwarekomponenten eines Datenverarbeitungssystems, insbesondere das Verhalten der Peripheriegeräte 12 bis 18, auf, wobei vorzugsweise insbesondere Ereignisse, Rückgabewerte, zeitliche Abläufe und zeitliche Zusammenhänge, aufgezeichnet werden. Ferner zeichnet der Hardware Interaction Recorder das Verhalten von Softwarekomponenten des Anwendungssoftwaremoduls 10 auf, wobei vorzugsweise Dialogschritte und Masken, aktivierte Hardware (aktivierte Peripheriegeräte 12 bis 18) und Eingaben sowie eingegebene und ausgegebene Daten aufgezeichnet werden. Bei einem nachfolgenden automatischen Testablauf werden diese aufgezeichneten Informationen zum Erzeugen der Interaktionen mit der Hardware und zum überprüfen der Ausgaben der Datenverarbeitungsanlage genutzt.Due to the possibility of recording by the software module 24 This is also referred to as Hardware Interaction Recorder. Of the Hardware Interaction Recorder records the behavior of hardware components of a data processing system, especially the behavior of peripherals 12 to 18 , wherein, in particular, events, return values, time sequences and temporal relationships, in particular, are recorded. Furthermore, the hardware interaction recorder records the behavior of software components of the application software module 10 on, preferably dialogue steps and masks, activated hardware (activated peripherals 12 to 18 ) and input as well as input and output data are recorded. In a subsequent automatic test procedure, this recorded information is used to generate the interactions with the hardware and to check the outputs of the data processing system.

1010
AnwendungsprogrammmodulApplication program module
1212
Zifferntastaturkeypad
1515
Kartenlesercard reader
1616
SteuereinheitsicherheitskontrolleController Safety Control
1818
Steuereinheittransport/AusgabeControl unit Transport / output
2020
GeldautomatATM
2222
DatenverarbeitungsanlageData processing system
2424
Aufzeichnungs- und Abspielprogrammmodulrecording and player program module
26 bis 3226 to 32
GerätesteuerprogrammmoduleDevice control program modules
34, 3634 36
TreiberprogrammbetriebssystemDriver program operating system
3838
USB-SchnittstelleUSB interface
4040
V.24-SchnittstelleV.24 interface
4242
Permanentspeicherpermanent memory

Claims (11)

System zum computergesteuerten Durchführen mindestens eines Tests, mit mindestens einem ersten Softwaremodul (10) einer Anwendungssoftware, das zur Datenkommunikation mit mindestens einem Peripheriegerät (12 bis 18) Daten mit mindestens einem zweiten Softwaremodul (25, 26 bis 32) austauscht, und mit mindestens einem dritten Softwaremodul (24), das zum Testen des ersten Softwaremoduls (10) zumindest Daten zum ersten Softwaremodul (10) überträgt, die eine in einem Testablauf zum Testen des ersten Softwaremoduls (10) festgelegten Datenkommunikation des Peripheriegerätes (12 bis 18) mit dem ersten Softwaremodul (10) über das zweite Softwaremodul (25, 26 bis 32) entsprechen.System for computer-controlled execution of at least one test, with at least one first software module ( 10 ) of an application software that is for data communication with at least one peripheral device ( 12 to 18 ) Data with at least one second software module ( 25 . 26 to 32 ) and at least one third software module ( 24 ) used to test the first software module ( 10 ) at least data for the first software module ( 10 ), one in a test procedure for testing the first software module ( 10 ) data communication of the peripheral device ( 12 to 18 ) with the first software module ( 10 ) via the second software module ( 25 . 26 to 32 ) correspond. System nach Anspruch 1, dadurch gekennzeichnet, dass das dritte Softwaremodul (24) oder ein viertes Softwaremodul (24) zumindest die vom zweiten Softwaremodul (25, 26 bis 32) zum ersten Softwaremodul (10) während eines Initialisierungstestablaufs übertragenen Daten aufzeichnet und speichert, wobei beim Initialisierungstestablauf eine tatsächliche Kommunikation zwi schen dem ersten Softwaremodul (10) und dem Peripheriegerät (12 bis 18) erfolgt.System according to claim 1, characterized in that the third software module ( 24 ) or a fourth software module ( 24 ) at least the second software module ( 25 . 26 to 32 ) to the first software module ( 10 ) records and stores data transmitted during an initialization test procedure, wherein in the initialization test procedure an actual communication between the first software module ( 10 ) and the peripheral device ( 12 to 18 ) he follows. System nach Anspruch 2, dadurch gekennzeichnet, dass die tatsächliche Kommunikation zwischen dem ersten Softwaremodul (10) und dem Peripheriegerät (12 bis 18) über das dritte bzw. vierte Softwaremodul (24) und das zweite Softwaremodul (25, 26 bis 32) erfolgt, wobei diese tatsächliche Kommunikation mit der Kommunikation zwischen dem ersten Softwaremodul (10) und dem Peripheriegerät (12 bis 18) über das zweite Softwaremodul (25, 26 bis 32) ohne Zwischenschaltung des dritten bzw. vierten Softwaremoduls (24) übereinstimmt.System according to claim 2, characterized in that the actual communication between the first software module ( 10 ) and the peripheral device ( 12 to 18 ) via the third or fourth software module ( 24 ) and the second software module ( 25 . 26 to 32 ), this actual communication with the communication between the first software module ( 10 ) and the peripheral device ( 12 to 18 ) via the second software module ( 25 . 26 to 32 ) without the interposition of the third or fourth software module ( 24 ) matches. System nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass das dritte und/oder vierte Softwaremodul (24) als Proxyprogrammmodul zum Aufzeichnen der Kommunikation zwischen dem ersten Softwaremodul und dem zweiten Softwaremodul dient.System according to claim 2 or 3, characterized in that the third and / or fourth software module ( 24 ) serves as a proxy program module for recording the communication between the first software module and the second software module. System nach einem der vorhergehenden Ansprüche 2 bis 4, dadurch gekennzeichnet, dass der Initialisierungsablauf mit einer weiteren vorzugsweise früheren Version des ersten Softwaremoduls (10) durchgeführt wird.System according to one of the preceding claims 2 to 4, characterized in that the initialization process with another preferably earlier version of the first software module ( 10 ) is carried out. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das zweite Softwaremodul (25, 26 bis 32) für das erste Softwaremodul (10) eine Kommunikationsschnittstelle bereitstellt, wobei das zweite Softwaremodul (25, 26 bis 32) vorzugsweise ein Treibersoftwaremodul und/oder eine von der Softwareklasse des ersten Softwaremoduls (10) verschiedene zweite Softwareklasse ist.System according to one of the preceding claims, characterized in that the second software module ( 25 . 26 to 32 ) for the first software module ( 10 ) provides a communication interface, wherein the second software module ( 25 . 26 to 32 ) preferably a driver software module and / or one of the software class of the first software module ( 10 ) is different second software class. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Daten mehrere Datenblöcke umfassen, wobei jeder Datenblock vorzugsweise einer Kommunikation zu einer Interaktion mit dem Peripheriegerät (12 bis 18) zugeordnet ist, und wobei die Datenblöcke in ihrer zeitlichen Reichenfolge, vorzugsweise mit ihrem zeitlichen Bezug zueinander, zu einem Bezugszeitpunkt und/oder zu weiteren Datenblöcken gespeichert sind bzw. werden.System according to one of the preceding claims, characterized in that the data comprise a plurality of data blocks, each data block preferably being in communication with an interaction with the peripheral device ( 12 to 18 ), and wherein the data blocks are stored in their time series sequence, preferably with their temporal relation to one another, at a reference time and / or to further data blocks. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das dritte Softwaremodul (24) zusätzlich die während des Initialisierungstestablaufs vom ersten Softwaremodul (10) zum zweiten Softwaremodul (25, 26 bis 32) übertragenen weiteren Daten aufzeichnet, und dass bei einer Wiederholung des Testablaufs mit dem ersten Softwaremodul (10) oder mit einem modifizierten ersten Softwaremodul (10) zumindest ein Teil der aufgezeichneten Daten vom dritten Softwaremodul (24) oder von einem vierten Softwaremodul (24) zum ersten Softwaremodul (10) in Abhängigkeit der vom ersten Softwaremodul (10) zum dritten Softwaremodul (24) übertragenen Daten übertragen wird.System according to one of the preceding claims, characterized in that the third software module ( 24 ) additionally during the initialization test procedure of the first software module ( 10 ) to the second software module ( 25 . 26 to 32 ) and that in a repetition of the test procedure with the first software module ( 10 ) or with a modified first software module ( 10 ) at least part of the recorded data from the third software module ( 24 ) or from a fourth software module ( 24 ) to the he software module ( 10 ) depending on the first software module ( 10 ) to the third software module ( 24 ) transmitted data is transmitted. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mehrere Peripheriegeräte (12 bis 18) vorgesehen sind, mit denen das erste Softwaremodul (10) jeweils über das zweite Softwaremodul (25, 26 bis 32) kommuniziert und/oder mit denen das erste Softwaremodul (10) über jeweils ein zweites diesem Peripheriegerät (12 bis 18) zugeordnete Softwaremodul (26 bis 32) kommuniziert.System according to one of the preceding claims, characterized in that a plurality of peripheral devices ( 12 to 18 ) are provided, with which the first software module ( 10 ) via the second software module ( 25 . 26 to 32 ) communicates and / or with which the first software module ( 10 ) via a respective second peripheral device ( 12 to 18 ) associated software module ( 26 to 32 ) communicates. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Peripheriegerät (12 bis 18) eine tastsensitive Anzeigeeinheit, eine Kartenlese- und/oder Kartenschreibeinheit, eine Tatstatur, insbesondere eine Zifferntatstatur oder Funktionstasten, eine Vorrichtung zum Erfassen biometrischer Eigenschaften, Geldmitteltransport-, Geldmittelprüf-, Geldmittelspeicher-, Geldmittelvereinzelungs-, Geldmittelstapel-, Geldmittelsortier-, Geldmittelwende-Geldmittelausgabe- und/oder Geldmitteleingabeeinheit umfasst.System according to one of the preceding claims, characterized in that a peripheral device ( 12 to 18 ) a touch-sensitive display unit, a card reading and / or card writing unit, a keyboard, in particular a Zahlentatstatur or function keys, a device for detecting biometric properties, funds transport, funds check, funds storage, funds singulation, funds stacking, funds sorting, funds turnaround funds output and / or cash input unit. Verfahren zum computergesteuerten Testen eines Softwaremoduls, bei dem zwischen einem ersten Softwaremodul (10) einer Anwendungssoftware und mindestens einem zweiten Softwaremodul (25, 26 bis 32) zur Datenkommunikation mit mindestens einem Peripheriegerät (12 bis 18) Daten ausgetauscht werden, und bei dem zum Testen des ersten Softwaremoduls (12) Daten von mindestens einem dritten Softwaremodul (24) zum ersten Softwaremodul (10) übertragen werden, die eine in einem Testablauf zum Testen des ersten Softwaremoduls (10) festgelegten Datenkommunikation des Peripheriegerätes (12 bis 18) mit dem ersten Softwaremodul (10) über das zweite Softwaremodul (25, 26 bis 32) entsprechen.Method for computer-controlled testing of a software module, in which a first software module ( 10 ) of an application software and at least one second software module ( 25 . 26 to 32 ) for data communication with at least one peripheral device ( 12 to 18 ) Data and when testing the first software module ( 12 ) Data from at least one third software module ( 24 ) to the first software module ( 10 ) in a test procedure for testing the first software module ( 10 ) data communication of the peripheral device ( 12 to 18 ) with the first software module ( 10 ) via the second software module ( 25 . 26 to 32 ) correspond.
DE200710023597 2007-05-21 2007-05-21 Software module test implementing system for automated teller machine, has recording and playback program module transmitting data to application program module to test application program module Ceased DE102007023597A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200710023597 DE102007023597A1 (en) 2007-05-21 2007-05-21 Software module test implementing system for automated teller machine, has recording and playback program module transmitting data to application program module to test application program module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200710023597 DE102007023597A1 (en) 2007-05-21 2007-05-21 Software module test implementing system for automated teller machine, has recording and playback program module transmitting data to application program module to test application program module

Publications (1)

Publication Number Publication Date
DE102007023597A1 true DE102007023597A1 (en) 2008-11-27

Family

ID=39876994

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200710023597 Ceased DE102007023597A1 (en) 2007-05-21 2007-05-21 Software module test implementing system for automated teller machine, has recording and playback program module transmitting data to application program module to test application program module

Country Status (1)

Country Link
DE (1) DE102007023597A1 (en)

Similar Documents

Publication Publication Date Title
EP0760987B1 (en) Method of verifying the integrity of data stored on a processing facility used for processing sheet-like articles such as bank notes or bills
DE69922520T2 (en) METHOD AND DEVICE FOR OPERATIONAL MONITORING OF AN INDUSTRIAL PROCESS
DE102007034525B4 (en) Method and system for checking the integrity of data stored in a predetermined memory area of a memory
DE4437272C2 (en) Automatically operated data processing system
DE102012212304A1 (en) Arrangement with a microprocessor system
EP1483638A2 (en) Diagnosis system for at least one technical system
DE4333286C2 (en) Method and device for diagnosing machine failures
DE102007023597A1 (en) Software module test implementing system for automated teller machine, has recording and playback program module transmitting data to application program module to test application program module
DE69022783T2 (en) Method for supporting the user of a computer system and device for carrying out said method.
DE19932149A1 (en) System for executing transactions
DE4207354C2 (en) Fault diagnosis device
DE10213582A1 (en) Data calculation device and method for using the data calculation device for setting an electronic control device
DE102008064337B4 (en) Automatic reproduction of a plant behavior
DE10028870A1 (en) Electronic chassis check card is available to different detection stations and/or is expandable and/or can be updated; quality-relevant data are fully represented in data processing system
DE112020003689T5 (en) REPAIR ASSISTANCE SYSTEM AND REPAIR ASSISTANCE METHOD
EP3961334A1 (en) Method for modelling a component fault tree for an electrical circuit
WO2022042923A1 (en) Method for validating a new software state in a redundant system
DE10328237A1 (en) Test data or test procedure generating method for testing a chip card using a computer-based, design testing station, wherein a proven base test procedure is modified to generate new test procedures
DE102018201710A1 (en) Method and device for checking a function of a neural network
EP0560342B1 (en) Method for debugging HDL-programs
DE3241175C2 (en)
DE102022208830A1 (en) Method, computer program and device for checking a functional sequence of a production system
EP1958101A1 (en) System and method for the automatic verification of planning results
DE1941265B2 (en) Programmed special service device for telephone exchanges - has special service memory transferring instructions to sub control
DE102006008726B4 (en) Method and device for updating plant software

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection