WO2005121964A1 - Method for automatically testing computer programs - Google Patents

Method for automatically testing computer programs Download PDF

Info

Publication number
WO2005121964A1
WO2005121964A1 PCT/EP2005/006084 EP2005006084W WO2005121964A1 WO 2005121964 A1 WO2005121964 A1 WO 2005121964A1 EP 2005006084 W EP2005006084 W EP 2005006084W WO 2005121964 A1 WO2005121964 A1 WO 2005121964A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
recorded
tested
user activities
test
Prior art date
Application number
PCT/EP2005/006084
Other languages
German (de)
French (fr)
Inventor
Karsten Hannig
Original Assignee
T-Mobile Deutschland 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 T-Mobile Deutschland Gmbh filed Critical T-Mobile Deutschland Gmbh
Publication of WO2005121964A1 publication Critical patent/WO2005121964A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions

Landscapes

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

Abstract

The invention relates to a method for automatically testing computer programs, comprising the following steps: a test program is started on a computer system; user activities on the computer system are recorded, said user activities corresponding to a predefined test sequence; a computer program that is to be tested is started; the previously recorded user activities are automatically processed; and the actions of the computer system and the computer program that is to be tested are automatically recorded as a result of the user activities.

Description

Verfahren zur automatisierten Durchführung von Tests an Computerprogrammen Process for the automated execution of tests on computer programs
Die Erfindung betrifft ein Verfahren zur automatisierten Durchführung von Tests an Computerprogrammen. Das Verfahren, das selbst in Form eines Computerprogramms ausgeführt wird, dient zum Testen von anderen Computerprogrammen, deren Benutzungsoberfläche zur Darstellung das verbreitete X11-Protokoll verwenden. Hierbei handelt es sich vorwiegend um UNIX®-Systeme. Beim sogenannten X-Protokoll handelt es sich um ein standardisiertes Protokoll zum Datenaustausch zwischen X-Server und X-Client über ein Netzwerk. Das X-Protokoll unterstützt die Anwendung auf einem X-Client durch die vom X-Server bereitgestellte Darstellung.The invention relates to a method for the automated execution of tests on computer programs. The method, which is carried out in the form of a computer program, is used to test other computer programs whose user interface uses the widespread X11 protocol for display. Most of these are UNIX® systems. The so-called X protocol is a standardized protocol for data exchange between the X server and the X client over a network. The X protocol supports the application on an X client through the representation provided by the X server.
Computerprogramme und Internetapplikationen, die von Unternehmen eingesetzt werden, müssen auf ihre korrekte Funktion und ihre Verträglichkeit mit anderen Anwendungen geprüft werden. Bisher durchgeführte „manuelle" Testverfahren bedeuten jedoch einen hohen Personal- und Zeitaufwand. Hierdurch werden Tests oftmals nicht im notwendigen Umfang durchgeführt. Es ist daher die Aufgabe der vorliegenden Erfindung, ein Verfahren zur automatisierten Durchführung von Tests an Computerprogrammen anzugeben, mit dem Computerprogramme automatisch und mit geringem Personal- und Kostenaufwand geprüft werden können. Diese Aufgabe wird erfindungsgemäß durch das im Patentanspruch 1 angegebene Verfahren gelöst.Computer programs and Internet applications used by companies must be checked for correct functioning and compatibility with other applications. However, "manual" test methods that have been carried out hitherto involve a high expenditure of personnel and time. As a result, tests are often not carried out to the necessary extent. It is therefore the object of the present invention to specify a method for the automated execution of tests on computer programs with which computer programs automatically and can be checked with little effort in terms of personnel and costs This object is achieved according to the invention by the method specified in claim 1.
Vorteilhafte Ausgestaltungen und bevorzugte Weiterbildungen der Erfindung sind in den abhängigen Patentansprüchen angegeben.Advantageous refinements and preferred developments of the invention are specified in the dependent claims.
Erfindungsgemäß wird das Verfahren selbst als Computerprogramm ausgeführt und ist derart ausgelegt, dass es die Benutzeraktivitäten einerseits und die dadurch vom zu testenden Programm ausgelösten Systemaktivitäten andererseits aufzeichnet. Die aufgezeichneten Benutzeraktivitäten können anschließend vollautomatisch und beliebig oft ohne Zutun des Benutzers wiederholt und auf ein zu testendes Computerprogramm angewandt werden.According to the invention, the method itself is carried out as a computer program and is designed such that it does the user activities on the one hand and the system activities thereby triggered by the program to be tested on the other hand records. The recorded user activities can then be repeated fully automatically and as often as required without user intervention and applied to a computer program to be tested.
Mit der Nutzung der zu testenden Programme verbundene Benutzeraktivitäten werden in Form von Tastatureingaben, Mausbewegungen,User activities associated with the use of the programs to be tested are in the form of keystrokes, mouse movements,
Maustastenbetätigungen, etc., aufgezeichnet oder in Form einer Ablaufsprache formuliert. Diese Benutzeraktivitäten werden dann auf ein zu testendes Programm angewendet. Das Verhalten des zu testenden Programms als Reaktion auf die automatisch ablaufenden, zuvor definierten Benutzeraktivitäten wird aufgezeichnet. Hierbei kann es sich um Ausgaben oder Aktivitäten des zu testenden Programms auf dem X-Server.Mouse button operations, etc., recorded or formulated in the form of a sequence language. These user activities are then applied to a program to be tested. The behavior of the program to be tested in response to the automatically running, previously defined user activities is recorded. This can be expenditure or activities of the program to be tested on the X server.
Die aufgezeichneten Aktivitäten des getesteten Programms werden automatisch mit entsprechenden Vorgaben verglichen, um den ordnungsgemäßen Betrieb des Programms zu prüfen. Natürlich ist auch ein „manuelles" Auswerten der Ergebnisdaten möglich, insbesondere wenn bei der automatischen Prüfung Unregelmäßigkeiten festgestellt werden, die eine eingehende Überprüfung des Programms verlangen.The recorded activities of the tested program are automatically compared with the corresponding specifications in order to check the correct operation of the program. Of course, a "manual" evaluation of the result data is also possible, in particular if irregularities are found during the automatic test, which require a thorough review of the program.
Ferner können die Aufzeichnungen zu Dokumentationszwecken verwendet werden, indem die Aktionen und Reaktionen des zu testenden Computerprogramms und/oder das Verhaltens des Computersystems ausgewertet werden.Furthermore, the records can be used for documentation purposes by evaluating the actions and reactions of the computer program to be tested and / or the behavior of the computer system.
Die Anwendungsmöglichkeiten der Erfindung erstreckt sich auf das Testen und Dokumentieren von Computerprogrammen im allgemeinen und insbesondere von X-Protokoll basierten Oberflächen. Die Erfindung ermöglicht eine Aufzeichnung, Verarbeitung und Synchronisation von Benutzeraktivitäten und dadurch hervorgerufenen Aktionen und Reaktionen des zu testenden Programms bzw. Computersystems. Insbesondere bietet die Erfindung eineThe possible uses of the invention extend to the testing and documentation of computer programs in general and in particular of X-protocol-based surfaces. The invention enables a recording, processing and synchronization of user activities and thereby caused actions and reactions of the program or computer system to be tested. In particular, the invention offers a
• Automatisierung von Computervorgängen, die ursprünglich durch den Benutzer manuell durchgeführt werden zu - Testzwecken - Massendatenverarbeitung • Aufzeichnung von Benutzeraktionen zu Dokumentationszwecken • Gewinnung von Programmdokumentation (Masken-Screenshots)• Automation of computer processes, which are originally carried out manually by the user for - test purposes - mass data processing • recording of user actions for documentation purposes • obtaining program documentation (mask screenshots)
Das Testprogramm basiert vorzugsweise auf einem Programmcode auf der Basis von OpenSource.The test program is preferably based on a program code based on OpenSource.
Eine Nachbearbeitung der Aufzeichnung sowohl der Benutzeraktivitäten als auch der Systemreaktionen ist Bestandteil des Verfahrens.Post-processing of the recording of both the user activities and the system reactions is part of the process.
Beim „Abspielen" bzw. Abarbeiten der aufgezeichneten Benutzeraktivitäten wird das Verhalten eines Benutzers nachempfunden, d.h. das Testprogramm wartet an den entscheidenden Stellen auf bestimmte Systemreaktionen des zu testenden Programms, wie z. B. Öffnen von Eingabemasken, Fenstern, Texten, usw., bevor es weitere Eingaben oder Mausklicks automatisiert ausführt.When "playing" or processing the recorded user activities, the behavior of a user is modeled, ie the test program waits at the critical points for certain system reactions of the program to be tested, such as opening input masks, windows, texts, etc., before it automatically performs further entries or mouse clicks.
Beim X-Protokoll umfassen die Systemantworten des zu testenden Computersystems im wesentlichen Bilddaten, wobei eine Analyse und Erkennung von Fehlern anhand eines unscharfen Vergleichs der Bilddaten mit Vergleichs- Bilddaten durchgeführt wird.In the case of the X protocol, the system responses of the computer system to be tested essentially comprise image data, an analysis and detection of errors being carried out on the basis of a fuzzy comparison of the image data with comparison image data.
Dadurch können ein fehlerhaftes Programmverhalten und ein langsamer Programmablauf vom Testprogramm sofort festgestellt werden. Durch Einsatz dieses erfindungsgemäßen Testverfahrens kann der Personalaufwand beim Testen von Computerprogrammen stark reduziert werden. Es werden Tests möglich, die wegen des hohen Personalaufwands bislang unmöglich waren. In einer bevorzugten Ausgestaltung der Erfindung ist es vorgesehen, dass die Abläufe von mehreren gleichzeitig ablaufenden Testprozeduren miteinander synchronisierbar sind.As a result, faulty program behavior and slow program execution can be determined immediately by the test program. By using this test method according to the invention, the personnel expenditure when testing computer programs can be greatly reduced. Tests are now possible that were previously impossible due to the high personnel costs. In a preferred embodiment of the invention, it is provided that the processes of several test procedures running simultaneously can be synchronized with one another.
Ein Ausführungsbeispiel der Erfindung wird nachfolgend beschrieben. Dabei werden folgende Abkürzungen und Begriffe verwendet:An embodiment of the invention is described below. The following abbreviations and terms are used:
Figure imgf000005_0001
Figure imgf000005_0001
Aufzeichnen der TestfälleRecord the test cases
Für die Aufzeichnung der Testfälle ist eine gute Vorbereitung erforderlich. Die Testfälle müssen komplett durchgeplant sein! Jede Eingabe sollte vorher „trocken" durchgeführt werden, der Tester/Testanwender sollte in der Bedienung des Testlings geübt sein.Good preparation is required to record the test cases. The test cases must be fully planned! Each entry should be carried out "dry" beforehand, the tester / test user should be trained to operate the test object.
Verwendung von TestdatenUse of test data
Jeder Testabschnitt sollte in genau dem Zustand beendet sein, in dem der Testabschnitt begonnen hat. Nur dadurch ist es möglich Testabschnitte in Schleifen mehrfach zu durchlaufen. Wenn hierbei eindeutige Schlüsselfelder zu füllen sind ist es wichtig, einen ausreichend großen Testdatenpool zu haben. Für jeden Durchlauf kann dann ein anderer Datensatz des Pools verwendet werden.Each test section should be finished in exactly the state in which the test section started. This is the only way to run test sections in loops multiple times. If there are clear key fields here it is important to have a sufficiently large test data pool. A different pool record can then be used for each run.
Jeder Testabschnitt sollte in kleine überschaubar Sequenzen zerlegt werden, die nacheinander (aber als getrennte Dateien) aufgezeichnet werden. Dies hat den Vorteil, dass man bei Bedarf mittels der einzelnen Scripte an verschiedene Punkte des Testablaufs springen kann, und nicht den ganzen Testfall wiederholen muss wenn etwas schief geht.Each test section should be broken down into small, manageable sequences that are recorded one after the other (but as separate files). This has the advantage that you can use the individual scripts to jump to different points in the test process if necessary, and not have to repeat the whole test case if something goes wrong.
Bei der Aufzeichnung der Sequenzen sollte mit besonderer Sorgfalt vorgegangen werden, da Tipp- und Bedienungsfehler und deren Korrektur im Nachhinein manuell aus der Aufzeichnung entfernt werden müssen. Die Geschwindigkeit, mit der eine Sequenz aufgezeichnet wird ist völlig belanglos. Daher kann man sich durchaus die Zeit nehmen.Special care should be taken when recording the sequences, as typing and operating errors and their correction must be manually removed from the recording afterwards. The speed at which a sequence is recorded is completely irrelevant. So you can take your time.
Die einzelnen Sequenzen sollten als Module miteinander verknüpft werden. Optimaler Weise in hierarchischer Form. Das Scriptkommando „Include" ist genau für diesen Zweck vorgesehen. Wenn komplexere Funktionen benötigen werden, wie z.B. Variablensubstitution oder eine Anbindung an eine Datenbank, können die Scriptkommandos „Exec" oder „Pipeln" verwendet werden, um die Verarbeitung an externe Komponenten weiterzureichen. Mit dem Kommando „ReadString" können Daten aus einer ASC- Datei eingelesen werden. Die Ablaufsteuerung kann nur mit großem Aufwand ausgelagert werden, da die aufgerufenen Komponenten den Status der Verarbeitung nicht ohne weiteres erkennen können.The individual sequences should be linked together as modules. Ideally in a hierarchical form. The "Include" script command is intended for precisely this purpose. If more complex functions are required, such as variable substitution or a connection to a database, the "Exec" or "Pipeln" script commands can be used to pass the processing on to external components With the command "ReadString" data can be read from an ASC file. The process control can only be outsourced with great effort, since the called components cannot easily recognize the status of the processing.
Eine Bildschirmmaske oder ein Bildschirmfenster kennt nicht den Zustand „fertig". Das bedeutet, dass das Testprogramm niemals erkennen kann, ob das, was auf dem Monitor angezeigt wird schon komplett ist, oder ob wir (als User) noch auf irgend etwas warten. Um dem Testprogramm mitzuteilen, dass wir das Fenster als „komplett" empfinden ist die sogenannte Synchronisation erforderlich. Zu Beginn der Synchronisation wird eine „Synctaste" festgelegt, mit der diese Synchronisation ausgelöst wird. Bei der Synchronisation wird ein Teil der Monitoranzeige in einer Datei gespeichert. Beim Abspielen wird die aktuelle Monitoranzeige regelmäßig mit dieser Datei verglichen. Bei Übereinstimmung „weiß" die Software, dass die vom Benutzer erwartete Ausgabe eingetroffen ist und setzt die Verarbeitung fort.A screen mask or a screen window does not know the state "finished". This means that the test program can never recognize whether what is displayed on the monitor is already complete or whether we (as a user) are still waiting for something To inform the test program that we feel the window is "complete", the so-called synchronization is required. At the beginning of the synchronization, a "sync button" is set with which this synchronization is triggered. During synchronization, part of the monitor display is saved in a file. When it is played, the current monitor display is regularly compared with this file. If it matches, the software "knows" that the output expected by the user has arrived and continues processing.
Das Testprogramm kann von einem ASC-Terminal aus bedient werden während der Testling auf einem X-Terminal ausgeführt wird. Dies ermöglicht eine schöne Kontrolle der Ergebnisse. Die vom Testprogramm erzeugten Scripte sind sehr lang, nicht strukturiert und unübersichtlich. Daher sollte jedes Script vor der Weiterverwendung mit einem Nachbearbeitungsmodul nachbearbeitet werden. Ein Nachbearbeitungsmodul fasst die aufgezeichneten Aktionen zu sinnvollen Blöcken zusammen und nimmt eine Vorverarbeitung der Synchronisationspunkte vor. Eine Ablaufsteuerung muss manuell eingebaut werden.The test program can be operated from an ASC terminal while the test object is being executed on an X terminal. This enables a nice control of the results. The scripts generated by the test program are very long, not structured and confusing. Therefore, every script should be post-processed with a post-processing module. A post-processing module combines the recorded actions into meaningful blocks and pre-processes the synchronization points. A sequential control system must be installed manually.
Beispiel für eine AufzeichnungExample of a recording
Durchgeführt auf einem RedHat 6.2-Linuxrechner mit KDE 2.0 als Oberfläche als Testling und als Testrechner. Der Zugang für den Testrechner erfolgte von einem anderen PC über eine NetzwerkverbindungCarried out on a RedHat 6.2 Linux computer with KDE 2.0 as an interface as a test object and as a test computer. The test computer was accessed from another PC via a network connection
Testling Wir sind an der X-Konsole angemeldet. Der Desktop ist (bis auf unsere Standardicon's) leer Wir öffnen ein Shellfenster und geben ein: xhost + <RETURN> exit<RETURN> Testrechner Wir befinden uns im Verzeichnis $HOME/xnitt- 1.00_install/xnitt_intro (ist bis auf das Unterverzeichnis „snapshot" leer). Testrechner <Testling> ist durch den Netzwerknamen zu ersetzen Wir geben ein: export DISPLAY=<Testling>:0.0 xnrec -s > 1ter test.recTestling We are logged on to the X console. The desktop is empty (except for our standard icons) We open a shell window and enter: xhost + <RETURN> exit <RETURN> Test computer We are in the directory $ HOME / xnitt- 1.00_install / xnitt_intro (except for the subdirectory "snapshot "empty). Test computer <Testling> is to be replaced by the network name. We enter: export DISPLAY = <Testling>: 0.0 xnrec -s> 1st test.rec
Testrechner Anzeige XServer hat die Version XXXXXXXX. xtest-Erweiterung Version XXXXX Druecken Sie die StopTaste mit der die Aufzeichnung beendet werden soll (Diese Taste muss ansonsten unbenutzt sein)Test computer display XServer has version XXXXXXXX. xtest extension version XXXXX Press the stop button with which the recording is to be ended (this button must otherwise be unused)
Testling Wir drücken die WINDOWS-Taste (oder ALT-ünks)Testling We press the WINDOWS key (or ALT-ünks)
Testrechner Anzeige Die Stoptaste hat den Keycode 115 Druecken Sie die Synctaste mit der die Bildschirmsynchronisation markiert werden soll (Diese Taste muss ansonsten unbenutzt sein)Test computer display The stop key has the keycode 115 Press the sync key with which the screen synchronization should be marked (This key must otherwise be unused)
Testling Wir drücken die Pos1-Taste (oder SHIFT-Links)Testling We press the Home key (or SHIFT links)
Testrechner Anzeige Die Synctaste hat den Keycode 97 Beginn der Aufzeichnung Info: Events wurden ignoriert (4) ... (die Aufzeichnung beginnt) Tipp: Die Angezeigten Tastencodes können wir später mit den Parametern -k und -y an xnrec übergeben, und sparen uns dann diese Schritte Testling Wir klicken das Shell-Symbol am unteren Bildschirmrand an Testling Ein Shellfenster öffnet sich (Wichtig: links oben auf dem Desk) Testling Wir bewegen die Maus an die LO-Ecke des Shell-Fensters und drücken die Synctaste Testrechner 0:0 als erste Ecke notiert Testling Wir bewegen die Maus ca 2cm nach unten rechts und drücken die Synctaste erneut Testrechner 57:58 als zweite Ecke notiert. Synchronisation vorgemerkt Testling Wir klicken „Datei" in diesem Fenster an. Dann „Linux-Konsole" (die Farbe des Fensters ändert sich)Test computer display The sync key has the keycode 97 Start of the recording Info: Events were ignored (4) ... (the recording starts) Tip: We can transfer the displayed key codes to xnrec later with the parameters -k and -y, and save then these steps Testling We click on the shell symbol at the bottom of the screen Testling A shell window opens (important: top left on the desk) Testling We move the mouse to the LO corner of the shell window and press the test computer sync button 0: 0 as the first corner noted Testling We move the mouse approx. 2 cm down to the right and press the sync key again Test computer 57:58 noted as the second corner. Scheduled synchronization Testling We click on "File" in this window. Then "Linux Console" (the color of the window changes)
Testling Eingabe: Is -I <RETURN>Testling input: Is -I <RETURN>
Testling Einbabe: exit<RETURN> (das Shellfenster wird wieder hell Einbabe: exit<RETURN> (Das Shellfenster verschwindet)Testling input: exit <RETURN> (the shell window becomes bright again input: exit <RETURN> (the shell window disappears)
Testling Wir drücken die StoptasteTestling We press the stop button
Testrechner Programm wird beendet... Ausfuehrung beendet.Test computer program is terminated ... execution terminated.
Hier ein Auszug des Aufgezeichneten ScriptsHere is an excerpt from the recorded script
MouseMove 106 739 Mouse+ 1 Delay 70 Mouse- 1 Delay 4600 Delay 26010 Sync 3 0 0 ScreenshotOOLxwd Delay 43960 MouseMove 12 28 Mouse+ 1 Mouse- 1 Delay 25960 MouseMove 45 50 Mouse+ 1 Delay 140 Mouse- 1 Delay 16510 KeyName+ I Delay 110 KeyName- 1 Delay 50 KeyName+ s Delay 90 KeyName- s Delay 250 KeyName+ space Abspielen der AufzeichnungMouseMove 106 739 Mouse + 1 Delay 70 Mouse- 1 Delay 4600 Delay 26010 Sync 3 0 0 ScreenshotOOLxwd Delay 43960 MouseMove 12 28 Mouse + 1 Mouse- 1 Delay 25960 MouseMove 45 50 Mouse + 1 Delay 140 Mouse- 1 Delay 16510 KeyName + I Delay 110 KeyName- 1 Delay 50 KeyName + s Delay 90 KeyName- s Delay 250 KeyName + space Play the recording
Auf dem Testrechner machen wir die Eingaben, auf dem Testling beobachten wir die Reaktionen. Wenn wir alles richtig gemacht haben, können wir den Ablauf beobachten. Unsere Aktivitäten werden wiederholt.We make the entries on the test computer, and we observe the reactions on the test object. If we have done everything correctly, we can watch the process. Our activities are repeated.
Das o.a. Script ist eher unübersichtlich. Unsere Aktivitäten in diesem Script wiederzufinden erfordert einiges an Übung. Zudem ist der Ablauf ziemlich langsam.The above Script is rather confusing. Finding our activities in this script requires some practice. In addition, the process is quite slow.
Während der Ausführung wird ein Protokoll angezeigt:A log is displayed during execution:
Nachverarbeitung mit dem NachbearbeitungsmodulPost-processing with the post-processing module
Das aufgezeichnete Rohscript ist für eine automatisierte Wiedergabe eher ungeeignet, enthält aber noch alle Aktivitäten. Um die Weiterverarbeitung zu erleichtern müssen wir das Skript nachbearbeiten. Dies kann vom Nachbearbeitungsmodul automatisch durchgeführt werden. Nachdem das Nachbearbeitungsprogramm durchgelaufen ist, ergibt sich die folgende neue Datei:The recorded raw script is rather unsuitable for automated playback, but still contains all activities. In order to facilitate further processing, we have to rework the script. This can be done automatically by the post-processing module. After the post-processing program has run, the following new file results:
Echo Echo \# 1ter_test.scriptEcho Echo \ # 1ter_test.script
Echo MouseMove 110 749Echo MouseMove 110 749
Delay 60 MouseClick 1Delay 60 MouseClick 1
Delay 5940 Sync 1 0 0 XTermJDffen.xwd OnSucc AdjustDelay 5940 Sync 1 0 0 XTermJDffen.xwd OnSucc Adjust
OnErr AdjustScreen 0 0 XTerm_Offen.xwdOnErr AdjustScreen 0 0 XTerm_Offen.xwd
OnErr ScreenDump Error_XTerm_Offen_%Y%m%d%H%M%S.xwdOnErr ScreenDump Error_XTerm_Offen_% Y% m% d% H% M% S.xwd
OnErr Goto EndOfThisScriptOnErr Goto EndOfThisScript
Delay 4290 MouseMove 18 26 MouseClick 1Delay 4290 MouseMove 18 26 MouseClick 1
Delay 1620 MouseMove 46 53Delay 1620 MouseMove 46 53
Delay 190 MouseClick 1Delay 190 MouseClick 1
Delay 2750 String Is -l\rDelay 2750 String Is -l \ r
Delay 4830 String exitλrDelay 4830 String exitλr
Delay 2940 String exit\r : EndOfThisScriptDelay 2940 String exit \ r: EndOfThisScript
In dieser Form ist das Script viel verständlicher und wir können weitere Änderungen vornehmen.In this form, the script is much easier to understand and we can make further changes.
Insert-In-CutInsert-in-Cut
Videofilmer kennen dieses Feature bereits: Man spielet einen Film bis zu einer Stelle X ab und nimmt an dieser Stelle neue Filmszenen auf. Mit dem Testprogramm ist das auch möglich. Wenn Sie an einer beliebigen Stelle folgende Zeile in ein Script aufnehmen wird das Script bis zu der Stellen abgearbeitet, und dann die Aufnahme gestartet. Nach dem Ende der Aufnahme wird das Script fortgesetzt:Videographers already know this feature: You play a film up to a position X and record new film scenes at this point. This is also possible with the test program. If you add the following line to a script at any point, the script will be processed to that point and then the recording will start. After the end of the recording the script continues:
PushAdjustPushAdjust
Echo Achtung Aufnahme!Echo Attention Recording!
EXEC xnrec -s > NeueAufnahme.recEXEC xnrec -s> Neueaufnahme.rec
PopAdjustPopAdjust
Wenn Sie das neue Script (im Beispiel „NeueAufnahme.rec") nachbearbeitet haben können Sie es ganz einfach in den bestehenden Testfall integrieren: Fügen Sie folgende Zeilen in das vorhandene Script ein:If you have reworked the new script (in the example "NeueAufnahme.rec") you can easily integrate it into the existing test case: Add the following lines to the existing script:
PushAdjust ResetAdjust include NeueAufnahme.scr PopAdjustPushAdjust ResetAdjust include NeueAufnahme.scr PopAdjust
Sie können die Adjust-Anweisungen natürlich auch in das neue Script mit aufnehmen, dadurch bleibt das „Vaterscript" leichter verständlich Die Adjust- Anweisungen dienen in diesem Fall übrigens dazu, die Scripte zu „entkopplen". Alternativ zu dieser „Entkopplung" kann xnrec mit dem Paramter -adj aufgerufen werden. Diese Vorgehensweise eignet sich besonders zur Erzeugung modularer Testfälle.Of course, you can also include the Adjust statements in the new script, which makes the "father script" easier to understand. In this case, the Adjust statements are used to "decouple" the scripts. As an alternative to this "decoupling", xnrec can be called with the parameter -adj. This procedure is particularly suitable for generating modular test cases.
Anhand der hier gezeigten Beispiele kann natürlich nicht das ganze Spektrum der Möglichkeiten des erfindungsgemäßen Verfahrens abgebildet werden. Bei jedem Test wird man abwägen müssen, ob der Einsatz eines Tools bzw. eines Capture-/Replay-Werkzeugs, so wie es hier beschrieben ist, den Mehraufwand den der Tooleinsatz zwangsläufig mit sich bringt, rechtfertigt. Der Einsatz eines solchen Tools lohnt sich immer dann, wennOf course, the entire spectrum of possibilities of the method according to the invention cannot be illustrated using the examples shown here. With each test, you will have to consider whether the use of a tool or a capture / replay tool as described here justifies the additional effort that the use of the tool inevitably entails. The use of such a tool is always worthwhile if
• Testfälle sehr viele Schritte haben, die in einer bestimmten Reihenfolge durchgeführt werden müssen • Testfälle häufig wiederholt (oder abgewandelt) werden müssen (Fehlerbeseitigung!, Verifikation!) • Viele Testfälle gleichzeitig ablaufen müssen (Last-/Stresstests) • Test cases have a lot of steps that have to be carried out in a certain order • Test cases often have to be repeated (or modified) (troubleshooting !, verification!) • Many test cases have to run simultaneously (load / stress tests)

Claims

Patentansprüche claims
1. Verfahren zur automatisierten Durchführung von Tests an Computerprogrammen, mit den Schritten: Starten eines Testprogramms auf einem Computersystem, Aufzeichnen von Benutzeraktivitäten am Computersystem, die einem vorgegebenen Testablauf entsprechen, Starten eines zu testenden Computerprogramms, automatisches Abarbeiten der zuvor aufgezeichneten Benutzeraktivitäten, und automatisches Aufzeichnen der Reaktionen des zu testenden Computerprogramms und des Computersystems als Folge der automatisierten Benutzeraktivitäten.1. A method for the automated execution of tests on computer programs, comprising the steps of: starting a test program on a computer system, recording user activities on the computer system which correspond to a predetermined test sequence, starting a computer program to be tested, automatic processing of the previously recorded user activities, and automatic recording the reactions of the computer program to be tested and the computer system as a result of the automated user activities.
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass das zu testende Programm gestartet wird und die Systemantworten auf die Benutzeraktivitäten gewonnen und aufgezeichnet werden.2. The method according to claim 1, characterized in that the program to be tested is started and the system responses to the user activities are obtained and recorded.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Benutzeraktivitäten Benutzereingaben mittels Tastatur und/oder Computermaus umfassen.3. The method according to claim 1 or 2, characterized in that the user activities include user input using the keyboard and / or computer mouse.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die zeitliche Abfolge und der zeitliche Abstand der Tastatur- und/oder Computermausaktivitäten aufgezeichnet werden.4. The method according to claim 3, characterized in that the time sequence and the time interval of the keyboard and / or computer mouse activities are recorded.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die aufgezeichneten Benutzeraktivitäten editierbar sind.5. The method according to any one of the preceding claims, characterized in that the recorded user activities are editable.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Ablauf der automatisierten Benutzeraktivitäten in Form eine Computersprache formuliert werden. 6. The method according to any one of the preceding claims, characterized in that the sequence of automated user activities are formulated in the form of a computer language.
. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Wiedergabe der aufgezeichneten Benutzeraktivitäten in Bezug auf deren zeitliche Abfolge dem Verhalten eines Benutzers nachempfunden ist., Method according to one of the preceding claims, characterized in that the reproduction of the recorded user activities is based on the behavior of a user in relation to their chronological sequence.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Abläufe von mehreren gleichzeitig ablaufenden Testprozeduren miteinander synchronisierbar sind.8. The method according to any one of the preceding claims, characterized in that the processes of several test procedures running simultaneously can be synchronized with one another.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die aufgezeichneten Aktionen des zu testenden Computerprogramms und des Computersystems zu Dokumentationszwecken ausgewertet werden.9. The method according to any one of the preceding claims, characterized in that the recorded actions of the computer program to be tested and the computer system are evaluated for documentation purposes.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die aufgezeichneten Aktionen des zu testenden Computerprogramms und des Computersystems auf fehlerhaftes Verhalten ausgewertet werden. 10. The method according to any one of the preceding claims, characterized in that the recorded actions of the computer program to be tested and the computer system are evaluated for incorrect behavior.
11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Systemantworten des zu testenden Computersystems Bilddaten umfassen, wobei eine Analyse und Erkennung von Fehlern anhand eines unscharfen Vergleichs der Bilddaten durchgeführt wird. 11. The method according to any one of the preceding claims, characterized in that the system responses of the computer system to be tested comprise image data, an analysis and detection of errors being carried out on the basis of a fuzzy comparison of the image data.
PCT/EP2005/006084 2004-06-11 2005-06-07 Method for automatically testing computer programs WO2005121964A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004028526.8 2004-06-11
DE200410028526 DE102004028526A1 (en) 2004-06-11 2004-06-11 Method for automated testing of computer programs

Publications (1)

Publication Number Publication Date
WO2005121964A1 true WO2005121964A1 (en) 2005-12-22

Family

ID=35058621

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/006084 WO2005121964A1 (en) 2004-06-11 2005-06-07 Method for automatically testing computer programs

Country Status (2)

Country Link
DE (1) DE102004028526A1 (en)
WO (1) WO2005121964A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157779A (en) * 1990-06-07 1992-10-20 Sun Microsystems, Inc. User extensible testing system
US5214780A (en) * 1990-03-23 1993-05-25 Sun Microsystems, Inc. Synchronized journaling system
US5657438A (en) * 1990-11-27 1997-08-12 Mercury Interactive (Israel) Ltd. Interactive system for developing tests of system under test allowing independent positioning of execution start and stop markers to execute subportion of test script

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214780A (en) * 1990-03-23 1993-05-25 Sun Microsystems, Inc. Synchronized journaling system
US5157779A (en) * 1990-06-07 1992-10-20 Sun Microsystems, Inc. User extensible testing system
US5657438A (en) * 1990-11-27 1997-08-12 Mercury Interactive (Israel) Ltd. Interactive system for developing tests of system under test allowing independent positioning of execution start and stop markers to execute subportion of test script

Also Published As

Publication number Publication date
DE102004028526A1 (en) 2006-01-12

Similar Documents

Publication Publication Date Title
DE69629098T2 (en) Method and device for load testing
DE4108590C2 (en) Process for benchmarking the working speed of a computer system
DE60308505T2 (en) METHOD AND SYSTEM FOR AUTOMATIC TESTING OF SOFTWARE
DE102005006170B4 (en) Control for an analyzer
DE10035046B4 (en) Maintain, emulate, and manipulate the timing of user interaction events
EP3082000B1 (en) Method and system for testing a mechatronic system
DE10127722A1 (en) System for developing an application system and its implementation
DE102017106023A1 (en) Method and system for automated user interface testing via model-driven techniques
DE102011008941A1 (en) System for visualization of status information of field devices
DE102017211433A1 (en) Method for performing a functional test of a control unit in a hardware-in-the-loop test, HIL test, and HIL test bench and control unit
DE112009000211T5 (en) Program tester and program
EP1035707A2 (en) Method, generation modul, server, control modul and storing device for creating validation rules
DE102008015980A1 (en) Cooperative simulation system, has database storage server, which stores data, and multiple simulation tools of cooperative simulation system contains cooperative module for writing and reading data from database storage server
EP2221697A1 (en) Method for testing a control device and testing device
WO2003077047A2 (en) Diagnosis system for at least one technical system
WO2005121964A1 (en) Method for automatically testing computer programs
DE102006060322A1 (en) Method for automatic testing of simulation models for software functions, involves copying one or multiple objects from simulation model on basis of selection criteria
DE102009032197A1 (en) System and method for testing an electronic device
EP1505399B1 (en) Method for Generating Test Data for functional test of data processing circuits
EP1681798B1 (en) Facultative logging
EP1691509B1 (en) Load test apparatus and method for creating load tests for testing a telecommunication system
WO2010034548A1 (en) Test module and method for testing an o/r imaging middleware
DE10325513B4 (en) Method and apparatus for creating a behavioral aspect of a formal verification circuit
DE102017201156A1 (en) Creation and execution of software modules
DE10353512A1 (en) Cyber recorder and player software for e.g. Internet, records graphical data in lookup database of language translation table for different national languages, where data can be used for setting automatic and interactive tasks

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase