DE4118454A1 - System zum automatischen testen von anwendersoftware - Google Patents

System zum automatischen testen von anwendersoftware

Info

Publication number
DE4118454A1
DE4118454A1 DE4118454A DE4118454A DE4118454A1 DE 4118454 A1 DE4118454 A1 DE 4118454A1 DE 4118454 A DE4118454 A DE 4118454A DE 4118454 A DE4118454 A DE 4118454A DE 4118454 A1 DE4118454 A1 DE 4118454A1
Authority
DE
Germany
Prior art keywords
data
comparison
test system
functions
differences
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.)
Granted
Application number
DE4118454A
Other languages
English (en)
Other versions
DE4118454C2 (de
Inventor
James C Washbum
Steven E Lemmo
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE4118454A1 publication Critical patent/DE4118454A1/de
Application granted granted Critical
Publication of DE4118454C2 publication Critical patent/DE4118454C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/32Monitoring with visual or acoustical indication of the functioning of the machine
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Description

Die Erfindung betrifft das automatisierte Testen von Com­ putersystemen. Insbesondere bezieht sich die Erfindung auf das automatisierte Testen von Anwender-Computersoftware in einer Window-System-Umgebung.
Während der Entwicklung von Software besteht die Notwendig­ keit zu ihrer umfassenden Testung, bevor sie an die Kunden zur Nutzung freigegeben wird. Anfänglich wurden die Tests durch einen Benutzer ausgeführt, der die Software manuell abarbeitete und verschiedene Operationen ausführte, bis alle wahrnehmbaren Funktionen der Software getestet waren. Als die Software ausge­ klügelter und komplizierter wurde, wuchs die Notwendigkeit des automatisierten Testens. Außerdem wurde es wünschenswert, den Software-Test akkurat wiederholen zu können, so daß der Test standardisiert wurde und daß, sofern die Software modifiziert wurde, der gleiche Test angewendet werden konnte, um die Zuver­ lässigkeit und Leistungsfähigkeit der Software zu testen.
Um diese Bedingung zu erfüllen, wurden verschiedene Testsy­ steme entwickelt. Die im folgenden genannten Testsysteme sind exemplarisch für verfügbare Testsysteme:
DEC/TEST MANAGER von Digital Equipment Corp., Maynard, Mas­ sachusetts und
CAPBACK/SMARTS von Software Research, Inc., San Francisco, Kalifornien.
Jedoch besteht noch ein Bedarf an automatisierten Testsy­ stemen, die eine große Breite von Softwareprogrammen auf Hard­ ware verschiedener Architekturen testen können, in welchen das Testsytem flexibel gegenüber Testparametern und -ergebnissen und durch den Benutzer erweiterbar ist, d. h., das System leicht auf die spezifische zu testende Software zugeschnitten werden kann. Außerdem besteht ein Bedarf an automatisierten Testsyste­ men, in welchen die Testprozeduren und -parameter interaktiv während des Abarbeitens des Tests modifiziert werden können. Weiterhin besteht ein Bedarf an automatisierten Testsystemen, welche einfach anzuwenden sind und kein ausgedehntes Wissen über die Kompliziertheiten des Testsystems erfordern. Aufgabe der vorliegenden Erfindung ist es somit, ein auto­ matisiertes Testsystem zur Verfügung zu stellen, das eine große Breite von Softwareprogrammen unter Hardware verschiedener Ar­ chitekturen testen kann, wobei das Testsystem sowohl flexibel gegenüber Testparametern und -ergebnissen als auch durch den Benutzer erweiterbar ist.
In einer Weiterbildung der Erfindung sollen die Testproze­ dur und -parameter interaktiv während des Abarbeitens des Tests der Software modifiziert werden können.
Das erfindungsgemäße automatisierte Testsystem weist eine Mehrzahl von durch den Benutzer erweiterbaren Modulen auf. Ein Journal-Modul sorgt für die Fähigkeit, Ereignisse aufzuzeich­ nen, die Benutzeraktionen repräsentieren, welche zur Ausführung bestimmter, den Test betreibender Aufgaben vorgenommen werden. Ein Filter-Modul liefert die Mittel zur Ausfilterung von Daten, welche auf das Bestehen oder Nicht-Bestehen eines Tests keinen Einfluß haben. Ein Datensicherungs-Modul liefert die Mittel zur Sicherung von Daten, welche anschließend mit Referenz- oder Ma­ ster-Daten verglichen werden, um den Zustand des Bestehens oder Nicht-Bestehens des Tests zu bestimmen. Ein Vergleichs-Modul liefert die Mittel zum Vergleichen der gesicherten Daten mit den Master-Daten, um Differenzen zwischen diesen Daten und so­ mit das Bestehen bzw. Nicht-Bestehen des Tests zu bestimmen. Ein Durchsicht-Modul liefert eine graphische Durchsicht der Differenzen zwischen den Master-Daten und den aktuellen Daten. Jeder Modul ist durch den Benutzer erweiterbar, wobei der Be­ nutzer Teile der Modulfunktionalität aktualisieren, auswechseln oder löschen kann, um das Testsystem auf ein einzelnes Com­ putersystem oder eine einzelne Computersoftwareanwendung zuzu­ schneiden.
Vorteilhafterweise stellt die vorliegende Erfindung ein au­ tomatisiertes Testsystem zur Verfügung, welches einfach zu nut­ zen ist und welches keine ausgedehnten Kenntnisse der baulichen Einzelheiten des Testsystems erfordert.
Im folgenden wird die Erfindung anhand der Zeichnung näher erläutert. In der Zeichnung zeigen:
Fig. 1 ein vom Testsystem der Erfindung genutztes Com­ putersystem;
Fig. 2 ein Blockdiagramm eines in einem Window-System implementierten Testsystems der Erfindung;
Fig. 3a und 3b Filterfunktionen, die im bevorzugten Ausführungsbeispiel des Testsystems der vorlie­ genden Erfindung genutzt werden;
Fig. 4a ein Filterfunktions-Menü des bevorzugten Ausfüh­ rungsbeispiels der Erfindung;
Fig. 4b eine Filterfunktionsliste des bevorzugten Aus­ führungsbeispiels der Erfindung;
Fig. 5a Daten vor der Eingabe in ein Filter;
Fig. 5b Daten nach dem Verlassen eines Filters;
Fig. 6a eine Datensicherungsfunktion;
Fig. 6b die Darstellung einer Auswahl einer Datensiche­ rungsfunktion aus einem Menü;
Fig. 7a eine Vergleichsfunktion;
Fig. 7b und 7c eine Darstellung von Master-Daten und ak­ tuellen Daten, welche mit Hilfe einer Vergleichs­ funktion verglichen werden sollen;
Fig. 7d die Differenzen zwischen den Daten der Fig. 7b und 7c;
Fig. 8a eine Durchsichtfunktion;
Fig. 8b die Daten, die gemäß der Durchsichtfunktion an­ gezeigt werden;
Fig. 9a das Hauptmenü des bevorzugten Ausführungsbei­ spiels der Erfindung;
Fig. 9b das Menü des Durchsicht-Moduls;
Fig. 10a die Menüs, die genutzt werden, um dem Benutzer die Möglichkeit zu geben, Bit-Masken zu definie­ ren;
Fig. 10b die Maskendaten, die mit den Master-Daten ge­ speichert werden;
Fig. 11a-11f die Fähigkeit des Durchsicht-Moduls des bevorzugten Ausführungsbeispiels des Testsystems der Erfindung, geringe Differenzen darzustellen (small differences feature);
Fig. 12 die Inhalte der Datei IrsApplications, die eine Auflistung aller-Siche­ rungs/Vergleichs/Durchsicht-Sequenzen enthält, die im bevorzugten Ausführungsbeispiel des neuen Testsystems verfügbar sind;
Fig. 13a und 13b Flußdiagramme, die die Verfahren des Aufstellens und des Ausführens eines Tests unter Nutzung des vom Benutzer erweiterbaren Testsy­ stems der Erfindung illustrieren;
Fig. 14a die Inhalte einer vom Testsystem der Erfindung genutzten Daten-Directory;
Fig. 14b die Inhalte einer Test-Directory nach Aufzeich­ nung eines Tests;
Fig. 14c die Inhalte eines durch das Testsystem der Er­ findung erzeugten Zeit-Protokolls (time log);
Fig. 14d ein durch das Testsystem der Erfindung erzeugtes Testprotokoll (pass/fail log) ;
Fig. 14e die Inhalte einer durch das Testsystem der Er­ findung erzeugten Versions-Datei;
Fig. 14f die Inhalte einer Arbeits-Directory nach Ausfüh­ rung des Tests;
Fig. 15 das Hauptmenü der Optionen und die Arbeitsfläche im Testsystem der Erfindung;
Fig. 16 die Auswahl der manuellen Editierfunktion;
Fig. 17a und 17b die Ausführung der Haltepunkte im be­ vorzugten Ausführungsbeispiel des Testsystems der Erfindung;
Fig. 18a eine Journal-Datei im ASCII-Format;
Fig. 18b eine Journal-Datei im einem Format höherer Ord­ nung; und
Fig. 19a und 19b die zur Definition eines Tests im Test­ system der Erfindung genutzte Makrosprache.
Generelle Systembeschreibung
Fig. 1 zeigt ein typisches System auf Computerbasis für ein vom Benutzer erweiterbares Testsystem gemäß der Erfindung. Ge­ zeigt ist ein Computer 101 mit drei Hauptkomponenten. Die erste dieser Hauptkomponenten ist die Ein/Ausgabe-Schaltung 102, die zur Informationsübertragung in geeignet strukturierter Form zu und aus den anderen Teilen des Computers 101 verwendet wird. Ebenfalls als Teil des Computers 101 sind die Zentraleinheit (CPU) 103 und der Speicher 104 gezeigt. Die beiden zuletzt ge­ nannten Komponenten sind diejenigen, die typischerweise bei den meisten Universalcomputern und beinahe allen Spezialcomputern vorhanden sind. Tatsächlich sind einige der im Computer 101 vorhandenen Elemente repräsentativ für diese breite Kategorie von Datenverarbeitungsmaschinen. Einzelne Beispiele für ge­ eignete Datenverarbeitungsmaschinen, welche die Rollen des Com­ puters 101 erfüllen können, sind die von der Firma Sun Microsy­ stems, Inc., Mountain View, Kalifornien hergestellten Maschi­ nen. Andere Computer mit ähnlichen Eigenschaften sind natürlich ebenfalls geeignet, die weiter unten beschriebenen Funktionen in direktem Ablauf durchzuführen.
Ebenfalls in Fig. 1 ist ein Eingabegerät 105 in einer Aus­ führungsform als Tastatur gezeigt. Es ist jedoch klar, daß als Eingabegerät auch ein Kartenleser, ein Magnet- oder Papierband­ leser oder andere bekannte Eingabegerät (ebenso wie ein anderer Computer) vorgesehen sein können. Ein Massenspeicher 106 ist mit der Ein/Ausgabeschaltung 102 gekoppelt und liefert zusätz­ liche Speicherkapazität für den Computer 101. Der Massenspei­ cher kann andere Programme u. dgl. enthalten und die Form eines Magnet- oder Papierbandlesers oder eines anderen bekannten Ge­ räts annehmen. Es ist klar, daß die im Massenspeicher 106 ent­ haltenen Daten in geeigneten Fällen auch in herkömmlicher Weise in den Computer 101 als Teil des Speichers 104 einbezogen wer­ den können.
Zusätzlich ist ein Display-Monitor 107 dargestellt, der zur Anzeige von Nachrichten oder anderen Benutzerkommunikationen verwendet werden kann. Ein solcher Display-Monitor kann die Form eines üblichen Kathodenstrahlbildschirms annehmen. Eine Cursor-Steuerung 108 dient zur Ausgabe von Befehlsmoden und zum Editieren der Eingabedaten und bildet generell ein zweckmäßiges Mittel zur Informationseingabe in das System.
Prozeßbeschreibung
Das Testsystem der vorliegenden Erfindung kann generell mit Bezugnahme auf Fig. 2 beschrieben werden. Eine Mehrzahl von An­ wendungen 200, 210 arbeiten in einer Window-System-Umgebung über das Window-System 230. Die Anwendungen 200, 210 empfangen Informationen über das Tastatur- bzw. Maus-Eingabegerät 250, 260 und geben die anzuzeigenden Informationen auf dem Display­ gerät 240 aus.
Das aktive Fenster, d. h. das Fenster, welches die Eingabe- Einstellung hat, diktiert, welche Anwendung die Eingabe von den Eingabegeräten 250, 260 empfängt. Das Fenster, in welchem die Anwendung aktiv ist, diktiert, wo die Ausgabedaten angezeigt werden sollen.
Vorzugsweise ist das Testsystem der vorliegenden Erfindung 220 als ein zusätzlicher im Window-System arbeitender Prozeß implementiert. Das Testsystem kann jedoch auch als ein separa­ ter Prozeß auf einem verbundenen Gerät implementiert sein. Der Journal-Mechanismus 270 schafft die grundlegende Fähigkeit zur Aufzeichnung der Daten in einer Journal-Datei, die repräsenta­ tiv für die Benutzeraktionen ist. Letztere dienen zum Initiie­ ren und Ausführen bestimmter Aufgaben zum Testen des Computer­ systems und/oder zur Software-Abarbeitung auf dem Computersy­ stem. Die Journal-Datei wird nachfolgend wiedergegeben, wobei jedes aufgezeichnete Ereignis von der Journal-Datei gelesen wird und dem Window-System in der aufgezeichneten Sequenz ein­ gegeben wird. Das Window-System reagiert auf diese Ereignisse so, als würden die Ereignisse von den Eingabegeräten 250, 260 empfangen werden. Dabei wird der Test ausgeführt. Vorzugsweise wird ein synchronisiertes Journal-System gemäß einem älteren Vorschlag der Anmelderin genutzt.
Das Testsystem der Erfindung enthält eine Mehrzahl von Mo­ dulen, die durch den Benutzer erweiterbar sind, so daß ein Be­ nutzer Teile der Modulfunktionalität aktualisieren, auswechseln oder löschen kann, um das Testsystem auf ein einzelnes Com­ putersystem oder eine Computersoftwareanwendung zuschneiden zu können. Das Testsystem 220 ist in Verbindung mit dem Journal- Mechanismus 270 implementiert, um eine durch einen Benutzer er­ weiterbare automatisierte Testfähigkeit zu erhalten. Das Test­ system ist als ein zusätzlicher Prozeß, der in einem Window-Sy­ stem arbeitet, implementiert, um die Bestandteile des Journal- Mechanismus auszunutzen. Die Aktionen, die durch den Benutzer vorgenommen werden, um bestimmte Bestandteile des Testsystems freizugeben und bestimmte Tests zu initiieren, werden als eine Serie von Ereignissen in dem Window-System wiedergegeben und durch den Journal-Mechanismus aufgezeichnet. Der Akt der Frei­ gabe eines bestimmten Filters für einen nachfolgenden Test bei­ spielsweise kann durch eine Serie von Maus-Ereignissen wieder­ gegeben werden, wobei die Maus den Cursor zu der Position auf dem Display bewegt, wo der Filter als Menüposition angezeigt ist, sowie durch das Drücken und Loslassen einer Maustaste, um die Auswahl des Filters anzuzeigen. Während der Wiedergabe der Journal-Datei werden sowohl die die Freigabe bestimmter Be­ standteile des Testsystems und die Initiierung bestimmter Tests betreffenden Benutzeraktionen als auch jene, das Testen der An­ wendung betreffenden Benutzeraktionen, ausgeführt. Somit sind die Bestandteile wie beispielsweise die Datensicherung, die Ausführung von Vergleichen, die Freigabe von Filtern u. dgl. zu­ sammenhängend für einen einzelnen Anwendungstest implementiert, was sichert, daß der identische Test wiederholt ausgeführt wer­ den kann.
Das durch den Benutzer erweiterbare Testsystem der vorlie­ genden Erfindung enthält einen Journal-Modul, einen Filter-Mo­ dul, einen Datensicherungs-Modul, einen Datenvergleichs-Modul, einen Durchsicht-Modul und einen Wiedergabe/Editier-Modul. Wie oben beschrieben, zeichnet der Journal-Modul alle innerhalb des Window-Systems stattfindenden Ereignisse auf und plaziert sie in eine Journal-Datei für die nachfolgende Wiedergabe. Während der Wiedergabe sind diese Ereignisse Ausgaben der Journal-Datei in das Window-System, wobei die Ereignisse ausgeführt werden und dabei die Benutzeraktionen der anfänglich aufgezeichneten Benutzersitzung simulieren.
Der Filter-Modul liefert einen Filtermechanismus zur Aus­ filterung von den Daten, welche keinen Einfluß auf den Zustand des Bestehens oder Nicht-Bestehens eines Tests haben. Der Fil­ ter-Modul ist aus separat identifizierbaren Filterfunktionen zusammengesetzt, so daß für bestimmte Tests individuelle Fil­ terfunktionen freigegeben werden können. Diese Filterfunktionen werden durch ein Filterfunktionsausführungsmittel ausgeführt, um die Daten während der Ausführung eines Tests vor der Siche­ rung der Daten zu filtern. Die Filterfunktionen können standar­ disiert für alle Arten von Datenvergleichen, standardisiert für eine einzelne Anwendung oder einen einzelnen Datenvergleich oder anwendungsspezifisch und benutzerdefinierbar sein. Über Filterfunktionsmodifikationsmittel können die Filterfunktionen gelöscht, hinzugefügt oder modifiziert werden. Die Filterfunk­ tionen können sowohl für Textdaten als auch für binäre Daten, einschließlich Bildpunktdaten digitalisierter Bilder, ent­ wickelt werden.
Die Filterfunktionen enthalten einen Code, der durch Fil­ terausführungsmittel ausgeführt werden kann. Die Filterfunktion kann beispielsweise in einer bekannten Programmiersprache (wie beispielsweise die Programmiersprache C), einer speziell für das Filter entwickelten und optimierten Programmiersprache oder einem Maschinencode geschrieben sein. Die Filterfunktionsmodi­ fikationsmittel können einfach ein ASCII-Texteditor sein, der es einem Benutzer gestattet, neue Filterfunktionen zu erstel­ len, existierende Filterfunktionen zu modifizieren oder jene Filterfunktionen zu löschen, welche nicht länger benutzt wer­ den. Andererseits können die Filterfunktionsmodifikationsmittel ein speziell auf die Modifikation des Filterfunktionscodes zu­ geschnittener Editor sein. Die Filterausführungsmittel bewirken die Ausführung der Filterfunktion vor der Sicherung der Textda­ ten, welche während der Ausführung eines Tests erzeugt wurden. Vorzugsweise initiieren die Filterausführungsmittel den aus­ führbaren Code, der für die Filterfunktion repräsentativ ist. Wenn jedoch die Filterfunktion in einer Programmiersprache hö­ herer Ordnung (d. h., beispielsweise die Programmiersprache C) erzeugt oder modifiziert wurde, so muß die Filterfunktion vor der Ausführung in einen ausführbaren Code kompiliert und über­ setzt werden. Dies kann durch ein Filterfunktionsmodifikations­ mittel oder ein Filterausführungsmittel ausgeführt werden, wel­ ches diese Funktionalität aufweist. Alternativ ist das Filter­ ausführungsmittel ein Sprach- oder Code-Interpreter, der den Code der Filterfunktion interpretiert und durch den Code spezi­ fizierte Aufgaben ausführt. Vorzugsweise sind die Filterfunk­ tionen in einer Programmiersprache höherer Ordnung geschrieben, die nach der Erstellung oder Modifikation in einen ausführbaren Code kompiliert wird und in der ausführbaren Form für die spä­ tere Ausführung gespeichert wird.
Eine Filterfunktion kann in einem einfachen Fall in der Ausfilterung von Leerzeichen zwischen Worten eines Textes oder in einem komplexen Fall in der Ausfilterung spezifischer Teile der in einer Text- oder binären Datei verkörperten Daten beste­ hen. Beispielsweise kann ein Filter Daten von einem Format in ein anderes übersetzen oder irgendeine Gleitkommazahl in eine Gleitkommazahl mit einer bestimmten Genauigkeit übersetzen. Vorzugsweise werden die Filter genutzt, um jene Datenteile zu eliminieren, welche sich ändern können, wenn eine Anwendung wiederholt ausgeführt wird, und welche nicht das Bestehen oder Nicht-Bestehen des Tests beeinflussen. Wenn beispielsweise die Daten, die zum Feststellen des Bestehens oder Nicht-Bestehens des Tests durchgesehen und verglichen werden, Datum und Zeit der Ausführung berücksichtigen, so wird stets ein Fehlerstatus bemerkt, weil das Datum und die Zeit bei jeder Ausführung des Tests wechseln. Folglich werden, selbst wenn der Test ohne einen Fehler beendet werden könnte, Änderungen in den Daten be­ merkt, und der Test wird durch einen "Nicht bestanden"-Status gekennzeichnet, weil das Datum und die Zeit des Tests sich ge­ ändert haben. Um diesem Problem zu begegnen, wird eine Filter­ funktion ausgeführt, die die zu sichernden Daten liest und be­ stimmt, ob die Daten das Datum und/oder die Zeit der Ausführung enthalten. Wenn das der Fall ist, werden diese Informationenen nicht gesichert. Wenn eine Datensicherungsfunktion ausgeführt wird und die Filterfunktion freigegeben ist, so werden die Fil­ terausführungsmittel aus den Daten, welche in das Filter einge­ geben werden, jede Zeit- oder Datums-Information eliminieren.
Beispiele von Filterfunktionen sind in den Fig. 3a und 3b dargestellt. Fig. 3a stellt den Code für eine "IRSfloat" ge­ nannte Filterfunktion dar. IRSfloat empfängt eine Textdatei als Eingangssignal und bestimmt, ob der Text Gleitkommazahlen ent­ hält. Für jede im Text gefundene Gleitkommazahl wird der Abso­ lutwert zur Messung der Größe der Zahl bestimmt, um das Ausga­ beformat der Zahl, d. h. das exponentielle ("E") oder das Gleit­ komma-("F")-Format, zu bestimmten. Wenn die Größe der Zahl und das Format bestimmt wurden, so wird die Gleitkommazahl vom Fil­ ter mit einer Genauigkeit von 5 Ziffern ausgegeben.
Fig. 3b stellt den Code einer als "IRSspace" bezeichneten Filterfunktion dar. IRSspace empfängt als Eingabe eine Textda­ tei und eliminiert mehrere zusammenhängende Leerzeichen oder Tabulatoren. Wenn ein oder mehrere zusammenhängende Zeichen oder Tabulatoren im Text gefunden werden, so wird nur das erste Leerzeichen oder der erste Tabulator aus dem Filter ausgegeben.
Die Filterfunktion IRSfloat ist in der Sprache "LEX" des Betriebssystems UNIX (Warenzeichen von AT & T). Die Filter­ funktion IRSspace ist in der Programmiersprache C geschrieben. Wenn die Filter ausgewählt werden, werden diese Funktionen an­ schließend in einen ausführbaren Code kompiliert zur nachfol­ genden Ausführung durch die Filterausführungsmittel. Weitere Informationen über die Sprache LEX sind Leek und Schmidt, "LEX- A Lexical Analyzer Generator" (Bell Laboratories, Murray Hill, New Jersey) zu entnehmen. Obwohl die dargestellten Filterfunk­ tionen in den Sprachen LEX und C geschrieben sind, sind die Filterfunktionen nicht auf solche Sprachen begrenzt und können in irgendeiner Form oder Sprache erzeugt werden, die kompatibel mit dem Testsystem ist.
Um eine Filterfunktion freizugeben, wählt der Benutzer wäh­ rend der Aufnahme-Sequenz eine Menüposition aus, welche das Auswählen einer einzelnen Filterfunktion oder mehrerer Filter­ funktionen bewirkt. Ein beispielhaftes Filterfunktionsmenü ist in Fig. 4a gezeigt. Das Filterfunktionsmenü zeigt alle verfüg­ baren Filterfunktionen, die für eine einzelne Datensiche­ rung/Vergleich oder einen einzelnen Test implementiert werden können. Beispielsweise sind die Filterfunktionen IRSfloat und IRSspace nach rechts aufklappbare Menüpositionen der im Haupt­ menü angeordneten Menüposition "Text Save" 300, wie in Fig. 4a gezeigt ist.
Das Menü soll die Möglichkeit bieten, ein oder mehrere Fil­ terfunktionen auszuwählen. Vorzugsweise ist eine Liste von Fil­ terfunktionen vorgesehen, auf die von dem Teil des Testsystems zugegriffen wird, der das Menü erzeugt und der eine Schnitt­ stelle mit dem Window-System bildet, um das Fenster anzuzeigen. Weitere Informationen zur Erzeugung von Menüs in dem Window-Sy­ stem sind beispielsweise SunView TM 1 Programmer′s Guide, Chap­ ter 12, "Menus" (1988) zu entnehmen. Um Filterfunktionen zum Menü hinzuzufügen oder vom Menü zu entfernen, ist die Filterda­ tei einfach durch Einfügen oder Entfernen der Namen der hinzu­ zufügenden oder zu löschenden Filterfunktionen zu aktualisie­ ren. Eine Darstellung einer Filterfunktionsliste ist in Fig. 4b gezeigt. Die "%%"-Zeichenkette zeigt die Menüebenen an. Die Filterfunktion IRSfloat ist auf der zweiten Ebene und die Fil­ terfunktion IRSspace auf der dritten Menüebene angeordnet.
Die Filterfunktionen des Testsystems der Erfindung sind durch den Benutzer erweiterbar. Um eine Filterfunktion zum Testsystem hinzuzufügen, erstellt der Benutzer eine Filterfunk­ tion, die die für die Filterung der Eingangsdaten auszuführen­ den Schritte kennzeichnet. Der Filterfunktionsname wird an der gewünschten Menüebene zur Filterfunktionsliste hinzugefügt, an der die Filterfunktion als Menüposition angezeigt werden soll. Um eine Filterfunktion zu modifizieren, editiert der Benutzer folglich den Filterfunktionscode, um die Funktionalität des Filters zu ändern. Um eine Filterfunktion zu löschen, löscht der Benutzer die Filterfunktionsdatei und entfernt den Filter­ funktionsnamen von der Filterliste, so daß die Filterfunktion nicht im Menü angezeigt wird.
Die Filterfunktionen können aneinandergereiht werden, so daß eine Mehrzahl von Filterfunktionen nacheinander an den Da­ ten ausgeführt werden, bevor diese gesichert und nachfolgend verglichen werden, um das Bestehen oder Nicht-Bestehen eines Tests zu bestimmen. Dies ist in den Fig. 5a und 5b darge­ stellt. Fig. 5a zeigt eine Textdatei, welche eine Anzahl von Gleitkommazahlen und zusätzlichen Leerzeichen und Tabulatoren zwischen Worten im Text enthält. In der vorliegenden Darstel­ lung hat der Benutzer beschlossen, daß der Wert und nicht das Format der Zahlen das Bestehen oder Nicht-Bestehen des Tests bestimmen soll. Folglich hat der Benutzer das Filter IRSfloat freigegeben, um zu gewährleisten, daß alle Gleitkommazahlen dasselbe Format haben und Differenzen nur erkannt werden, wenn eine Zahl differiert. In ähnlicher Weise hat der Benutzer das Filter IRSspace freigegeben, um die zusätzlichen Leerzeichen und Tabulatoren zu entfernen, welche vorkommen können und kei­ nen Einfluß auf das Bestehen oder Nicht-Bestehen des Tests ha­ ben. Die Datenausgabe nach der Ausführung der Filterfunktion ist in der Fig. 5b dargestellt. Die Gleitkommazahlen sind alle im selben Format, und die zusätzlichen Leerzeichen und Tabula­ toren wurden entfernt, um die Daten zu liefern, welche nachfol­ gend verglichen werden, um das Bestehen oder Nicht-Bestehen des Tests zu bestimmen.
Ein anderer Modul des durch den Benutzer erweiterbaren Testsystems der vorliegenden Erfindung ist der Datensicherungs- Modul, welcher die Möglichkeit liefert, die den Ausgang des Tests bestimmenden Daten während der Ausführung des Tests zu sichern. Die gesicherten Daten werden nachfolgend mit den Soll- Daten verglichen, die als Master-Daten bezeichnet werden. Wenn die gesicherten Daten nicht gleich den Master-Daten sind, so wird der Vergleich fehlerhaft, was zu einem Zustand des Nicht- Bestehens des Tests führt.
Der Datensicherungs-Modul besteht aus zumindest einer Da­ tensicherungsfunktion, welche die zu sichernden Daten und das Format, in welchem die Daten gesichert werden sollen, bestimmt. Der Datensicherungs-Modul weist außerdem Datensicherungsausfüh­ rungsmittel zur Ausführung der Datensicherungsfunktion auf, wie beispielsweise einem Sprachinterpreter oder einem Mittel zur Ausführung eines ausführbaren Codes. Beispielsweise wird durch das Testsystem ein Systemaufruf während der Aufzeichnung oder der Wiedergabe durchgeführt, um den Datensicherungs-Modul aus­ zuführen ohne das Testsystem zu verlassen. In UNIX beispiels­ weise wird dies erreicht durch den Systemruf "System" (siehe SunOSTM Reference Manual (Mai 1988)). Ein Datensicherungsmodi­ fikationsmittel modifiziert die Datensicherungsfunktion, so daß der Benutzer existierende Funktionen hinzufügen, löschen oder ändern kann, um die Datensicherungsfunktionen auf eine einzelne Anwendung zuzuschneiden. Die Informationen, die im Datensiche­ rungs-Modul geliefert werden, sind vorzugsweise der Typ der zu sichernden Daten, der Ort, wo die Daten lokalisiert sind (die Identität der Daten), und der Ort, wo die gesicherten Daten ge­ meinsam zu benutzen sind. Um beispielsweise Textdaten zu si­ chern, werden dem Datensicherungs-Modul der Name der die zu si­ chernden Daten enthaltenden Textdatei und der Name der Datei geliefert, in welcher die Daten gesichert werden sollen. Wenn die zu sichernden Daten Bildpunktdaten sind, so wird der Daten­ sicherungs-Modul mit den Bildschirmkoordinaten des zu sichern­ den Bildes und mit dem Namen der Datei, in welcher die Bild­ punktdaten gesichert werden sollen, versorgt. Vorzugsweise sind diese Informationen entsprechend der Datensicherungsfunktion wählbar, so daß die Auswahl einer einzelnen Datensicherungs­ funktion automatisch die notwendigen Informationen liefert.
Fig. 6a zeigt eine einfache Datensicherungsfunktion, welche Text durch byteweises Kopieren der spezifizierten Datei in die Master-Datensicherungsdatei sichert. Es ist für den Fachmann klar, daß die Art der Datensicherungsfunktion nicht auf die des Beispiels beschränkt ist. Beispielsweise kann eine detaillierte komplexe Datensicherungsfunktion entwickelt werden, um be­ stimmte Teile der Daten zu sichern oder um die Daten in einem speziellen Format zu sichern.
Während spezifischer Zeiten während der Aufzeichnung zeigt der Benutzer dem Testsystem an, daß eine Datensicherungsfunk­ tion ausgeführt werden soll. Die Datensicherungsfunktion kann zugeschnitten werden auf die Sicherung von Datentypen wie bei­ spielsweise Text, Bildpunktdaten oder Daten in einem speziellen Format, z. B. Datenbankstrukturen oder Spreadsheets, welche in einem Binärformat gespeichert sind. Die eine Datensicherungs­ funktion anzeigenden Ereignisse werden in die Journal-Datei an den Stellen eingefügt, an denen die Daten verglichen werden sollen. Die Ereignisse können speziell erzeugte Ereignisse sein, welche die Datensicherungsfunktion kennzeichnen. Vorzugs­ weise sind die Datensicherungsfunktionen jedoch über angezeigte Menüpositionen verfügbar, und die die Datensicherungsfunktion freigebenden Ereignisse sind eine Serie von Ereignissen, die die Bewegung des Cursors zur Datensicherungsmenüposition und die Auswahl der Datensicherungsmenüposition berücksichtigen. Durch den Benutzer des Testsystem kann auf die Datensicherungs­ funktionen zugegriffen werden durch Menüs, die dem Benutzer während der Aufzeichnungsfolge geliefert werden. Der Benutzer wählt Menü und Menüposition für einen bestimmten Typ der auszu­ führenden Datensicherung aus. Dies ist in Fig. 6b dargestellt. Der Aufzeichnungsmodus wurde ausgewählt und initiiert, was an der "capture" Menüschaltfläche 320 zu erkennen ist. Fig. 6b zeigt außerdem, daß die Datensicherungsfunktion "Spreadsheet" 325 ausgewählt wurde. Wahlweise kann der Benutzer den Datei­ namen oder den Ort, wo die gesicherten Daten gespeichert werden sollen, spezifizieren.
Der Journal-Mechanismus während der Aufzeichnung zeichnet Ereignisse wie die Cursorbewegung und die Mausfunktionen auf, die realisiert werden, um die Menüposition der Datensicherungs­ funktion "Spreadsheet" auszuwählen. Folglich wird der Journal- Modul während der Wiedergabe der Journal-Datei die auszuführen­ den gleichen Bewegungen und Funktionen zum Window-System ausge­ ben, wobei die Menüposition für die Datensicherungsfunktion wieder ausgewählt und die Datensicherungsfunktion ausgeführt wird. Zusätzlich werden die zu sichernden Daten den aktivierten Filterfunktionen eingegeben, bevor die Daten für den nachfol­ genden Vergleich gesichert werden.
Vorzugsweise wird, wenn eine Datensicherungsfunktion wäh­ rend der Wiedergabe ausgeführt wird, der Vergleichs-Modul auto­ matisch freigegeben, nachdem die Daten gesichert wurden, um die aktuellen Daten, d. h. die Daten, die gerade während der aktuel­ len Ausführung der Anwendung gesichert wurden, mit den die Soll-Daten bildenden Master-Daten, zu vergleichen. Wenn die Ma­ ster-Daten nicht gleich den aktuellen Daten sind, werden Diffe­ renzen bestimmt, der Vergleich wird fehlerhaft, der Test erhält den Zustand "Nicht bestanden", und eine Fehlerdatei wird er­ zeugt, wobei die Fehlerdatei eine Kopie der aktuellen Daten enthält, in welchen die Differenzen bestimmt wurden. Wie weiter unten beschrieben werden wird, dient die Fehlerdatei einer Durchsicht der Vergleiche für die Analyse des Tests. Der Ver­ gleichs-Modul enthält zumindest eine Vergleichsfunktion, ein Vergleichsfunktionsmodifikationsmittel und ein Vergleichsfunk­ tionsausführungsmittel. Die Vergleichsfunktion ist zur Erhöhung der Flexibilität des Tests durch den Benutzer erweiterbar und vom Benutzer definierbar. Die Vergleichsfunktion kann entweder zwei Textdateien oder zwei Bildpunktdateien oder einen anwen­ dungsspezifischen Datentyp, wie beispielsweise eine Datenbank­ struktur oder ein Spreadsheet, vergleichen. Ein Beispiel für eine Vergleichsfunktion ist in Fig. 7a dargestellt. Fig. 7a ist eine einfache Vergleichsfunktion, die zwei Textdateien ver­ gleicht. Wenn diese Funktion genutzt wird, liest der Modul die Master-Datei und die aktuellen Daten und vergleicht sie byte­ weise. Wenn eine Differenz festgestellt wird, so wird der Ver­ gleich beendet und der Fehlerstatus notiert. Wenn keine Diffe­ renz festgestellt wird, werden die gesicherten Daten von der Master-Datei entfernt, und ein "Test bestanden"-Status wird no­ tiert. Es ist jedoch klar, daß diese Vergleichsfunktion nur beispielhaft ist, und es ist offensichtlich für den Fachmann, daß die Vergleichsfunktion zu einem komplexeren, komplizierte­ ren und detaillierteren Vergleichs-Modul entwickelt werden kann. Beispielsweise kann die Funktion bestimmte Aktionen be­ züglich der fehlerhaften Daten ausführen, oder der Modul kann den Vergleich nicht beenden und mit dem Vergleich der Master­ und der aktuellen Textdaten fortfahren. Die Vergleichsfunktio­ nen werden vorzugsweise in einer höheren Programmiersprache er­ stellt und nachfolgend in einen ausführbaren Code für die nach­ folgende Ausführung durch die Vergleichsfunktionsausführungs­ mittel kompiliert. Das Vergleichsfunktionsmodifikationsmittel ist vorzugsweise ein Texteditor, jedoch kann es auch ein spezi­ ell zur Editierung der Vergleichsfunktion entwickeltes Modifi­ kationsmittel sein.
Vorzugsweise wird eine Vergleichsfunktion erstellt, um einen speziellen Typ von gesicherten Daten zu vergleichen, bei­ spielsweise Text oder ein Spreadsheet. Jedoch kann eine Ver­ gleichsfunktion genutzt werden, um Daten zu vergleichen, die entsprechend einer Vielzahl von Datensicherungsfunktionen gesi­ chert worden sind. Beispielsweise kann eine binäre Bit-Ver­ gleichsfunktion genutzt werden, um Daten zu vergleichen, die mit einer Datensicherungsfunktion gesichert wurden, welche Spreadsheet-Daten in einem binären Format sichert oder Daten­ bankdaten, die in einem binären Format gesichert wurden. Die gleiche Text-Vergleichsfunktion kann genutzt werden, um eine Text-Datei zu vergleichen, wie beispielsweise Text aus einem Buch, oder um Daten zu vergleichen, welche vor ihrer Sicherung in eine Datei durch die Datensicherungsfunktion durch ein Fil­ ter in ein Textformat konvertiert wurden. Obwohl eine auszufüh­ rende Vergleichsfunktion aus einem Menü von Vergleichsfunktio­ nen ausgewählt werden kann, ist die Vergleichsfunktion vorzugs­ weise verbunden mit einer Datensicherungsfunktion, so daß die Vergleichsfunktion automatisch nach der mit ihr verbundenen Da­ tensicherungsfunktion ausgeführt wird, wenn die Datensiche­ rungsfunktion ausgeführt wurde. Dies kann erreicht werden durch die Lieferung einer Liste von Datensicherungsfunktionen und korrespondierenden Vergleichsfunktionen, auf welche das Testsy­ stem Bezug nimmt, um die auszuführende Vergleichsfunktion zu bestimmen. Die Paare von Datensicherungsfunktion und Ver­ gleichsfunktion sind vorzugsweise jeweils durch einen speziel­ len Namen gekennzeichnet, so daß der Benutzer dementsprechend die Datensicherungsfunktion und Vergleichsfunktion identifizie­ ren kann. Die Funktionen können gemischt und passend zusammen­ gestellt werden, um die gewünschte Testfunktionalität zu errei­ chen, wobei jede Kombination durch einen speziellen Namen iden­ tifiziert ist.
Die Fig. 7b und 7c zeigen die Ausführung eines Ver­ gleichs. Fig. 7b zeigt ein digitalisiertes Bild, welches die Master-Daten darstellt. Fig. 7c stellt die aktuellen Daten dar, die während einer Wiedergabe der Journal-Datei gesichert wur­ den. Während der Ausführung einer Vergleichsfunktion, welche die beiden Bildpunktdateien vergleicht, werden die erkannten Differenzen notiert (siehe Fig. 7d), und die Daten von Fig. 7c werden in eine Fehlerdatei für eine nachfolgende Durchsicht und Analyse geschrieben.
Wenn der Test abgearbeitet und die Journal-Datei wiederge­ geben wurde, können die Ergebnisse des Tests durchgesehen wer­ den. Der durch den Benutzer erweiterbare Durchsicht-Modul lie­ fert ein Werkzeug, mit welchem der Benutzer die Differenzen zwischen den Master-Daten und den aktuellen Daten eines fehler­ haften Vergleichs durchsehen kann. Der Durchsicht-Modul enthält mindestens eine Durchsichtfunktion, welche spezifiziert, wie der Benutzer die Differenzen durchsehen und analysieren kann, ein Durchsichtfunktionsausführungsmittel und ein Durchsicht­ funktionsmodifikationsmittel.
Außerdem kann der Benutzer Durchsichtfunktionen hinzufügen, löschen oder modifizieren. Vorzugsweise werden die Durchsicht­ funktionen mit Hilfe eines Texteditierwerkzeugs erstellt, um ein Programm in einer höheren Programmiersprache zu erzeugen, welches in einen ausführbaren Code für die nachfolgende Ausfüh­ rung durch das Durchsichtfunktionsausführungsmittel kompiliert wird. Ein einfacher Durchsicht-Modul ist in Fig. 8a darge­ stellt. Der Durchsicht-Modul nutzt den UNIX-Modul "diff", um eine Liste von Differenzen der beiden Dateien anzufertigen und startet ein Shell-Fenster (d. h. ein neues Fenster auf der An­ zeige), welches einen Texteditor zur Anzeige der Ergebnisse der diff-Funktion startet. Wenn der Texteditor beendet wird, for­ dert der Durchsicht-Modul den Benutzer auf, mitzuteilen, ob er die Master-Daten mit den aktuellen Daten aktualisieren soll.
Wenn der Benutzer bejahend antwortet, so werden die aktuellen Daten über die gesicherten Daten kopiert. Die Durchsichtfunk­ tion ist speziell auf den Datentyp, der gesichert und vergli­ chen wurde, zugeschnitten. Wenn beispielsweise die Daten Text­ daten sind, so zeigt der Durchsicht-Modul, wenn er ausgeführt wird, die Zeile des Textes der Master-Daten und die korrespon­ dierende Zeile des Textes der aktuellen Daten an, bei denen eine Differenz festgestellt wurde. Andererseits kann der Durch­ sicht-Modul die aktuellen Daten mit hervorgehobenen Textdiffe­ renzen anzeigen. In ähnlicher Weise kann, wenn die Daten Bild­ punktdaten sind, die Durchsichtfunktion eine Anzeige der aktu­ ellen Daten erzeugen, bei der die Differenzen durch eine andere Farbe oder durch Blinken der Pixel angezeigt werden. Es ist für einen Fachmann klar, daß der Durchsicht-Modul in Abhängigkeit von den Erfordernissen des Tests einfach oder kompliziert und detailliert sein kann. Ein Beispiel für die gemäß einer Durch­ sichtfunktion angezeigten Daten ist in Fig. 8b gezeigt. Fig. 8b zeigt eine Anzeige, die durch einen Text-Durchsicht-Modul er­ zeugt wurde, welcher die Unterschiede zwischen Gleitkommazahlen bemerkt. Die Master-Daten werden auf der linken und die aktuel­ len Daten auf der rechten Seite angezeigt. Die ganz linke Spalte zeigt mit Hilfe der Zeichenkette "CHG" an, wo Differen­ zen festgestellt wurden.
Vorzugsweise wird der Durchsicht-Modul über eine Menüposi­ tion ausgewählt, welche Teil des Hauptmenüs (Fig. 9a) ist, um das Durchsicht-Modulmenü (Fig. 9b) aufzurufen. Durch Nutzung des Durchsicht-Moduls kann der Benutzer die Testergebnisse durchsehen und analysieren, um die in der Anwendung oder im ge­ testeten System gemachten Änderungen zu bestimmen und die durch Differenzen hervorgerufenen Fehler zu korrigieren. Eine zusätz­ liche Möglichkeit, die das durch den Benutzer erweiterbare Testsystem der vorliegenden Erfindung bietet, ist die Möglich­ keit für den Benutzer, Differenzen der aktuellen Daten darstel­ lende Daten zu eliminieren oder auszublenden. Der Benutzer kann nach der Durchsicht der Differenzen entscheiden, daß einige der Differenzen das Bestehen oder Nicht-Bestehen eines Tests nicht berücksichtigt und daß er solche Differenzen ausblenden möchte, so daß die ausgeblendeten Differenzen keinen "Nicht-Bestanden"- Zustand des Tests hervorrufen, wenn der Test wiederholt wird. Auch kann der Benutzer das Ausblenden von Differenzen wünschen, während er eine Anwendung von Fehlern befreit, um einige Diffe­ renzen zu eliminieren, während er andere fehlerfrei macht. Ein Beispiel, wo die Möglichkeit des Benutzers, Masken zu definie­ ren, wünschenswert sein kann, ist in Fig. 10a dargestellt. Fig. 10a stellt ein Display dar, das drei Fenster anzeigt. Das erste Fenster 400 ist das Durchsicht-Modulmenü. Der Benutzer hat die ersten fehlerhaften, verglichenen Daten (gekennzeichnet durch das "<" Symbol 410) ausgewählt und prüft die Bildschirmmenü­ funktion 420, um den Durchsicht-Modul für den Vergleich auszu­ führen. Das Menü kennzeichnet die Master-Daten 430 und liefert dem Benutzer die Wahlmöglichkeit, die Master- oder die aktuel­ len Daten anzuzeigen, ebenso wie eine Vielzahl von Wahlmöglich­ keiten 440, 450, 460, die Differenzen anzuzeigen.
In Fig. 10a sind die Master-Daten angezeigt. Der Benutzer hat ermittelt, daß das Feld in der Darstellung "Dir" 470 eine zu bestimmende Differenz hervorgerufen hat. Das Feld "Dir" identifiziert die Directory, in welcher die Tests ausgeführt werden. Die Directory kann sich aus Gründen ändern, die in kei­ ner Beziehung zum Bestehen oder Nicht-Bestehen eines Tests ste­ hen, wie beispielsweise dem, daß ein anderer Benutzer den Test von seiner lokalen Directory abarbeitet. Um die Anzeige des Zu­ stands des Nicht-Bestehens des Tests infolge eines Wechsels der aktuellen Directory zu vermeiden, wird das Feld "Dir" maskiert bzw. ausgeblendet. Um eine Maske zu erstellen, müssen die Koor­ dinaten der Umrißlinie der Maske dem Durchsicht-Modul mitge­ teilt werden. Beispielsweise kann der Benutzer die Maus und den Zeiger benutzen, um den Bereich durch Anklicken der oberen lin­ ken und der unteren rechten Ecken der zu maskierenden Fläche auszuwählen. Vorzugsweise antwortet der Durchsicht-Modul durch Hervorhebung der maskierten Fläche 480. Die Maskierungs-Infor­ mation wird in der gleichen Datei wie auch die Master-Daten ge­ speichert. Ein Beispiel der gespeicherten Maskierungsdaten ist in Fig. 10b dargestellt. Wenn der Test wiederholt und ein Ver­ gleich ausgeführt wird, durchsucht der Vergleichs-Modul die Ma­ ster-Datei und bestimmt zuerst, ob eine Maske für den vorlie­ genden Vergleich existiert. Der Vergleichs-Modul schließt dann jeden durch die Masken definierten Datenbereich von dem Ver­ gleich aus.
Der Durchsicht-Modul kann erstellt sein, um ein einzelnes Merkmal (feature) zur Verfügung zu stellen, wie beispielsweise die Durchsicht der Differenzen, oder er kann erstellt sein, um eine Vielzahl von Merkmalen zur Verfügung zu stellen, wie im Durchsicht-Modulmenü gemäß Fig. 10a zu sehen ist. Ein anderes Merkmal, das vorzugsweise im Durchsicht-Modul enthalten ist, ist "Aktualisierung erwartet"-Bestandteil. Die Auswahl dieser Menüposition bewirkt ein Ersetzen der Master-Daten durch die aktuellen Daten. Dies kann wünschenswert sein, wenn die Master- Daten aufgrund von Daten- oder Systemänderungen nicht mehr ak­ tuell sind, und die aktuellen Daten die korrekten zu verglei­ chenden Daten sind.
Ein anderes Merkmal, das dem Testsystem der Erfindung eine zusätzliche Funktionalität gibt, ist das "geringe Differenzen"- Merkmal. Dieses ist als eine Menüposition 490 im Durchsicht-Mo­ dul in Fig. 11a wiedergegeben. Manchmal können geringe Diffe­ renzen zwischen Tests erzeugt werden, welche nicht kritisch in bezug auf das Bestehen oder Nicht-Bestehen des Tests sind oder welche der Benutzer bis zu einer nachfolgenden Wiederholung des Tests zurückzustellen wünscht. Durch Nutzung des "geringe Dif­ ferenzen"-Merkmals kann der Benutzer Toleranzgrenzen für Diffe­ renzen setzen. Wenn die Differenz innerhalb der Toleranzgrenzen ist, wird eine "geringe Differenz" festgestellt. Die Toleranz­ grenzen können als Parameter dem Testsystem während der Wieder­ gabe zugeführt werden. Andererseits können die Toleranzgrenzen während der Durchsicht der fehlerhaften Vergleiche eingegeben werden. Die Toleranzen können auch in einer separaten Referenz­ datei gespeichert werden. Die Fig. 11a bis 11f stellen die­ ses Merkmal in bezug auf Bildpunktdateien (bit maps) dar, ob­ gleich Toleranzgrenzen auch für andere Datentypen erstellt wer­ den können.
Fig. 11a zeigt das Durchsicht-Modul-Menü und die Aufzeich­ nung der Ergebnisse des Tests. Der Test wurde mit dem freigege­ benen "geringe Differenzen"-Merkmal abgearbeitet. Der erste Vergleich, "bm1", der den Vergleichsmodul "BIT MAP" nutzte, war erfolgreich (Test bestanden). Der zweite Vergleich, "bm2", wel­ cher einen Kasten von drei Pixel Breite verglich, war fehler­ haft (Test nicht bestanden). Notiert wurde eine "geringe Diffe­ renz", was zeigt, daß die Differenz gering und innerhalb der durch den Benutzer gesetzten Toleranz war (Fig. 11b). Fig. 11b stellt das Einstellen einer Pixel-Verschiebungstoleranz dar. Fig. 11b zeigt die Auswahl der "geringen Differenzen"-Menüposi­ tion und der Submenüposition "Distanz". Diese zeigt ein Menü von Zahlen an, die die Anzahl von Pixelpunkten repräsentieren, um die ein Pixel bei Bewertung als geringe Differenz verschoben werden kann. Folglich wird eine geringe Differenz festgestellt, wenn eine Pixelverschiebung nur 1 bis 3 Pixel beträgt. Fig. 11c zeigt die Durchsicht-Tafel, in welcher die Master-Daten ange­ zeigt werden. Eine Prüfung der Fig. 11d zeigt, daß die aktuel­ len Daten der oberen Linie des Blocks wenige Pixel nach oben geschoben wurden, und Fig. 11e zeigt nur die Differenzen zwi­ schen den Master-Daten und den aktuellen Daten.
Das Testsystem kann entsprechend der getesteten Anwendung andere Toleranzen enthalten, wie beispielsweise numerische To­ leranzen. Beispielsweise zeigt Fig. 11f die Auswahl der "Farbtoleranz"-Submenüposition, welche die Farbtoleranzgrenzen anzeigt.
Die Flexibilität jedes Moduls ebenso wie des gesamten Sy­ stems liefert ein durch den Benutzer erweiterbares Testsystem, welches auf einen speziellen Test zugeschnitten werden kann. Im bevorzugten Ausführungsbeispiel ist jede Funktion jedes Moduls zur leichten Bezugnahme durch einen gesonderten Namen gekenn­ zeichnet. Es wird eine Datei (hier bezeichnet als die IrsAppli­ cation-Datei) erstellt, welche jede Kombination von Funktionen auflistet, die als Sicherungs/Vergleichs/Durchsicht-Sequenz be­ zeichnet wird, eine Datensicherungsfunktion und die korrespon­ dierende Vergleichsfunktion und Durchsichtfunktion enthält und jede Sicherungs/Vergleichs/Durchsicht-Sequenz durch einen ge­ sonderten Namen identifiziert. Typischerweise nutzt eine Daten­ sicherungsfunktion stets die gleiche Vergleichsfunktion und Durchsichtfunktion. Jedoch ist das System nicht darauf be­ grenzt; mehrfache Kombinationen von Datensicherungs-, Ver­ gleichs- und Durchsicht-Modulen können durch besondere Identi­ fizierung jeder Kombination in der Funktionsdatei aufgestellt werden. Eine Darstellung des Inhalts der Datei ist in Fig. 12 gezeigt.
Fig. 12 zeigt den Inhalt einer beispielhaften IrsApplica­ tion-Datei. Diese Datei enthält vier Siche­ rungs/Vergleichs/Durchsicht-Sequenzen, einschließlich einer "SPREADSHEET" genannten Sicherungs/Vergleichs/Durchsicht-Se­ quenz. Auf diesen Namen nimmt das Testsystem Bezug und zeigt ihn als eine der Menüoptionen des Testsystems an. Das Testsy­ stem nimmt beim Starten des Systems auf die IrsApplication-Da­ tei Bezug und nutzt sie, um die Menüoptionen des Systems zu er­ zeugen. Beispielsweise wird das Toolkit des SunView-Window-Sy­ stems benutzt, um Menüpositionen zu erstellen, die den Schalt­ flächen des Hauptmenüs zugeordnet sind (weitere Informationen zum SunView Toolkit siehe SunView TM 1 Programmer′s Guide, Ka­ pitel 12, "Menüs", Mai 1988). Die Siche­ rungs/Vergleichs/Durchsicht-Sequenz SPREADSHEET enthält die Da­ tensicherungsfunktion "save spread", die Vergleichsfunktion "IRScompTX" und die Durchsichtfunktion "IRStextdiff". Die Da­ tenanwendung enthält außerdem den Suffix oder die Erweiterung der Dateinamen, der zur Identifizierung jener Dateien genutzt wird, in denen die Daten bei Nutzung dieser Datenanwendung ge­ sichert und verglichen werden. Beispielsweise sind alle Master- und aktuellen Dateien, die gemäß dieser Datenanwendung erzeugt wurden, durch die Dateierweiterung ".wk" identifiziert.
Die Datensicherungsfunktion "save spread" liest ein Spreadsheet ein, welches in der Anwendung in einem binären For­ mat vorliegt, konvertiert das binäre Format in das ASCII-Format und speichert die ASCII-Daten zum Vergleich mit den Master-Da­ ten in einer Datei. Die Vergleichsfunktion "IRScompTX" ist eine allgemeine Textvergleichsfunktion, und der Durchsicht-Modul "IRStextdiff" zeigt Textdifferenzen in einem leicht zu über­ schauenden graphischen Format an.
Andererseits kann der Benutzer aufgrund der Flexibilität des Testsystems der vorliegenden Erfindung eine zweite Siche­ rungs/Vergleichs/Durchsicht-Sequenz zum Vergleich von Spread­ sheets erstellen, welche eine andere Datensicherungsfunktion und/oder eine andere Vergleichsfunktion und/oder eine andere Durchsichtfunktion nutzt. Beispielsweise kann der Benutzer eine Datenanwendung "SPREADSHEET2" erstellen, welche eine Datensi­ cherungsfunktion "save binary" nutzt, welche das Spreadsheet in einem Binärformat sicherstellt, eine Vergleichsfunktion "comp binary", welche zwei binäre Dateien vergleicht und eine Durchsichtfunktion "binary diff", welche die Differenz zwischen binären Dateien in einem graphischen Format anzeigt. Daher hat der Benutzer durch Erstellen von Datensicherungs-, Vergleichs­ und Durchsicht-Funktionen und Identifizierung der Kombination der Funktionen für einen bestimmten Datentyp in der IrsApplica­ tion-Datei die Flexibilität, jeden beliebigen Typ von Daten zu sichern, zu vergleichen und durchzusehen.
Das Verfahren zur Erstellung eines Tests und zur Ausführung des Tests ist durch Ablaufdiagramme in den Fig. 13a und 13b dargestellt. Um einen Test zu erstellen, wird eine Daten-Direc­ tory aufgestellt, in welcher die für den Test relevanten Da­ teien eingeordnet werden (Block 600). Fig. 14a zeigt eine Auf­ listung von Dateien in einer Daten-Directory vor der Aufzeich­ nung und Schaffung einer Journal-Datei und der Master-Daten. Die Daten-Directory "sample data" enthält anwendungsspezifische Informationen, welche durch das Testsystem genutzt werden. Die Daten-Directory kann die Sicherungs/Vergleichs/Durchsicht-Se­ quenz, welche genutzt werden kann (IrsApplications), die Datei der verfügbaren Filter (IrsFilters) und die zur Ausführung der zu testenden Anwendung relevanten Daten enthalten. Die Datei "traffic-icon" enthält anwendungsspezifische Daten. traf­ fic.icon enthält Bildschirmsymbol-Daten (icons), welche durch die vom Testsystem der vorliegenden Erfindung zu testende An­ wendung manipuliert werden (weil die getestete Anwendung ein Bildschirmsymbole editierendes Programm ist). Der Benutzer kann außerdem während der Arbeit des Testsystems zu nutzende Anwen­ dungsprogramme in die Datei einfügen. Wie in Fig. 14a darge­ stellt, ist beispielsweise die Datei "floating prog" unter den Probedaten der Daten-Directory abgelegt und ein Anwendungspro­ gramm, welches eine Ausgabe von Gleitkommazahlen enthaltendem Text bewirkt.
Im folgenden wird wieder auf Fig. 13a Bezug genommen. Am Block 610 wird das Testsystem initiiert. Zu diesem Zeitpunkt wird das Menü der verfügbaren Optionen des Testsystems ebenso wie ein zweites Fenster, welches die Arbeitsfläche des Systems enthält, dem Benutzer angezeigt (siehe Fig. 15). Die Arbeits­ fläche wird genutzt, um die zu testende Anwendung zu initiieren oder um Operationsbefehle auszuführen, welche in Verbindung mit dem Test benötigt werden. Die in der vorliegenden Darstellung verfügbaren Menüoptionen sind Aufzeichnung (capture), Stop, Wiedergabe (replay), Durchsicht (review) und Editieren. Um eine Journal-Datei zu erzeugen, wird am Block 620 die Menüposition "Aufzeichnung" (capture) ausgewählt, welche dem System anzeigt, daß eine Journaldatei von die Benutzeraktionen während des Tests berücksichtigenden Ereignissen zu starten ist (Block 630). Wenn der Aufzeichnungs-Modus eingeschaltet ist und das System alle Benutzeraktionen aufzeichnet, kann der Benutzer mit dem Starten der zu testenden Anwendung fortfahren (Block 650) und verschiedene, sich auf die Anwendung beziehende Aufgaben (Block 660) ebenso wie Vergleiche von Daten (Block 670) während der Ausführung verschiedener Tests durchführen. Vorzugsweise werden am Block 640 Filter freigegeben, um in Verbindung mit der Ausführung des Datensicherungs-Moduls Filterungen auszufüh­ ren.
Am Block 650 wird die zu testende Anwendung durch Wechseln der Eingabe auf die Arbeitsfläche und Eintasten des Startkom­ mandos für die Anwendung initiiert. Am Block 660 werden die sich auf das Testen der Anwendung beziehenden Benutzeraktionen ausgeführt. Diese Aktionen werden als Ereignisse aufgezeichnet und in der Journal-Datei gespeichert. Diese Aktionen können einfache Cursorbewegungen, eine Auswahl einer Menüposition in­ nerhalb der Anwendung, die Ausführung einer bestimmten Aufgabe oder die Tastatureingabe von Informationen sein. Die vom Benut­ zer zur Auswahl der Filter und zum Starten der Anwendung vorge­ nommenen Aktionen werden ebenfalls in der Journal-Datei in der ausgeführten Reihenfolge aufgezeichnet. An jedem Punkt während der Ausführung von Benutzeraktionen kann der Benutzer, am Block 670, die Eingabemöglichkeit in das Fenster des Testsystems wechseln und eine auszuführende Datensicherungs- und Ver­ gleichsfunktion aus dem Menü der Optionen auswählen (siehe Fig. 6b) . Wenn der Aufzeichnungsmodus freigegeben ist, zeichnet der Journal-Modul die Ereignisse auf, die die Bewegung des Cursors in das Fenster des Testsystems, den Wechsel der Eingabemöglich­ keit zu diesem Fenster und das Zeigen einer Auswahl eines an einer bestimmten Stelle innerhalb des Fensters lokalisierten Objekts, das aufgezeichnet werden soll und welches in der vor­ liegenden Darstellung die Vergleichsmenüposition ist, berück­ sichtigen. Somit werden während der Wiedergabe die gleichen Er­ eignisse ausgeführt, welche die gleiche Folge von Aktionen be­ wirken, einschließlich dem ausgewählten Vergleich.
Vorzugsweise werden die Master-Daten während der Aufzeich­ nung erzeugt, wobei nach der Auswahl des auszuführenden Ver­ gleichs die Daten gesichert und als Master-Daten für den Ver­ gleich gekennzeichnet werden. Am Block 680 kann der Benutzer den Test abschließen durch Beenden der getesteten Anwendung, Block 690, und Auswahl der Menüposition Stop aus dem Testsy­ stemmenü, Block 700, welche dann das Schließen der Journal-Da­ tei, Block 710, bewirkt.
Fig. 14b zeigt die Inhalte der Test-Directory "sample.irs" nach der Aufzeichnung eines Tests. Jeder ausgeführte Vergleich ist durch die Vergleichserweiterung gekennzeichnet, die in der IrsApplication-Datei zur Verfügung gestellt wird. Beispiels­ weise sind bei einem Bildpunktvergleich die Dateien durch die Erweiterung "bm" identifiziert. Jeder Vergleich ist weiterhin durch einen Präfix identifiziert, der eine Nummer enthält, die die Anzahl der für eine bestimmte Siche­ rungs/Vergleichs/Durchsicht-Sequenz ausgeführten Proben oder Vergleiche anzeigt. Beispielsweise zeigt Fig. 14b zwei Bild­ punktdatei-Vergleiche, bm1.bm und bm2.bm, was zeigt, daß bm1.bm der erste ausgeführte Vergleich von Bildpunktdateien und daß bm2.bm der zweite ausgeführte Bildpunktdatei-Vergleich war. In ähnlicher Weise zeigt tx1.tx, daß hier ein durch die Erweite­ rung tx identifizierter Vergleich ausgeführt wurde. Die Datei session.log ist die Journaldatei, welche eine Liste von während der Aufzeichnung ausgeführten Ereignissen enthält. Während der Wiedergabe wird diese Datei durch den Journal-Modul gelesen und dem Window-System zur Ausführung in der aufgezeichneten Reihen­ folge ausgegeben, wobei die gleiche Testsequenz wiedergegeben wird, die während der Aufzeichnung ausgeführt wurde. Die Datei tx1.fltrs ist eine Liste von Filtern, die für eine Datensiche­ rungsfunktion implementiert sind. Die Datei time.log ist ein zeitliches Protokoll von Ereignissen, welche dem Benutzer einen zusätzlichen Einblick in die Ausführung des Tests liefert. Be­ zugnehmend auf Fig. 14c zeigt das zeitliche Protokoll, daß das System 149 Sekunden benötigte, um zu demjenigen Ereignis zu ge­ langen, an dem die Textdatensicherstellung und der Vergleich tx1 ausgeführt wurde. Das Protokoll zeigt außerdem durch die Zeichenkette "COMPARE 2", daß die Ausführung des Vergleichs tx1 zwei Sekunden erforderte. In ähnlicher Weise benötigte das Sy­ stem 39 Sekunden, um zum nächsten ausgeführten Vergleich bm1 zu gelangen, und die Ausführung der Datensicherung und des Ver­ gleichs bm1 erforderte 5 Sekunden.
Die Datei pass/fail.log ist eine Datei, welche den Zustand des Tests enthält, d. h., den Zustand des Bestehens oder Nicht- Bestehens jedes Datenvergleichs. Während der Aufzeichnung sind die gesicherten Daten die Master-Daten, und es existieren keine Daten, die damit verglichen werden können; somit geben alle Vergleiche einen Durchlaufzustand vor. Die Datei pass/fail.log gemäß Fig. 14b zeigt, daß der Test alle Kontrollpunkte und Da­ tenvergleiche erfolgreich passierte. Ein Kontrollpunkt ist eine Stelle im Test, an der spezielle Situationen des Tests notiert werden, und die zur Erlangung von Statusinformationen über den Test benutzt werden kann. Vorzugsweise sind der Start und das Ende des Tests als Kontrollpunkte gekennzeichnet. Zusätzlich können Kontrollpunkte in den Test eingefügt werden durch Nut­ zung einer zuvor bestimmten Schaltfläche des Menüs, die die Lage der Kontrollpunkte identifiziert. Die Versions-Datei wird benutzt, um die Version des Testsystems zu kennzeichnen, wel­ ches zur Erzeugung der Master-Datei genutzt wurde. Die Versi­ ons-Datei wird genutzt, um irgendwelche unvorhergesehenen Pro­ bleme zu vermeiden, die dadurch entstehen können, daß die Ver­ sion des Testsystems, welches zur Erzeugung der Master-Daten genutzt wurde, eine andere Version ist, als die zur Wiedergabe des Tests benutzte. Eine Darstellung der Versions-Datei ist in Fig. 14e gezeigt.
Die nach der Aufzeichnung verfügbaren Optionen sind im Ab­ laufdiagramm gemäß Fig. 13b dargestellt. Das einmal freigege­ bene Testsystem (Block 720) ruft das Hauptmenü der Optionen (siehe Fig. 15) und eine Arbeitsfläche auf, über welche System­ kommandos eingegeben werden können. Der Benutzer kann dann die Menüposition Wiedergabe auswählen (Block 730), welche bewirkt, daß das Testsystem die Sitzungsprotokolldatei liest und die Er­ eignisse an das Window-System ausgibt, um die in der Sitzungs­ protokolldatei sequentiell aufgelisteten Ereignisse auszuführen (Block 740), um dadurch den früher ausgeführten Test zu wieder­ holen. Wenn das Testsystem ein Ereignis veranlaßt, welches die Ausführung einer Datensicherung und eines Vergleichs bewirkt, so wird das Testsystem die angezeigten Daten sichern, sie mit den in der Daten-Directory angeordneten Master-Daten verglei­ chen und eine Fehlerdatei der Daten erzeugen, wenn der Daten­ vergleich fehlerhaft ist. Wenn der Datenvergleich erfolgreich ist, werden die Daten nicht zurückgehalten, weil sie bereits in den Master-Daten wiedergegeben sind. Die Ausführungsreihenfolge wird dann fortgesetzt durch die Ausführung von Ereignissen, die Benutzeraktionen wiedergeben und von Vergleichen, wo diese an­ gezeigt sind, bis das letzte Ereignis auftritt, welches die Stop-Funktion im Fenster des Testsystems auswählt. Dies beendet die Wiedergabe-Sequenz.
In der Arbeits-Directory, d. h., der Directory, von welcher das Testsystem aufgerufen und der Test ausgeführt wird, werden gemäß Darstellung in Fig. 14f die folgenden Dateien erstellt. Die Directory sample.result enthält eine Kopie der Datei pass/fail.log, welche in der Directory sample.irs gespeichert ist, ebenso wie ein Testprotokoll (pass/fail log) der aktuellen Wiedergabe des Tests. Beide Testprotokolle (pass/fail logs) werden der Option zum Vergleichen der Testprotokolle zur Verfü­ gung gestellt, um zu bestimmen, wo Differenzen zwischen den beiden Protokollen existieren. Diese Möglichkeit ist hilfreich für lange Tests mit vielen Vergleichen. Die Directory enthält ferner eine Kopie der Master-Daten und der aktuellen Daten für jeden fehlerhaften Vergleich. Entsprechend Fig. 14f trat bei­ spielsweise ein Fehler bei zwei Vergleichen auf. Deshalb wurden die Fehlerdateien bm1.bm.FAIL und tx1.tx.FAIL für die fehler­ haften Vergleiche erzeugt. Für die nachfolgende Verwendung durch den Durchsicht-Modul ist außerdem eine Kopie jeder Ma­ ster-Datei enthalten. Die Ergebnis-Directory enthält auch eine Kopie der Daten, die durch die Anwendung benutzt werden. Auf diese Daten wurde durch die Anwendung zugegriffen, und es kann sein, daß diese nicht identisch mit den Originaldaten sind. Um Fehler zu vermeiden, welche aus der Anwendung unterschiedlicher Anwendungsdaten resultieren, werden folglich die Daten nicht wieder benutzt, um den Text erneut auszuführen. Um gegen das Auftreten solcher Fehler zu schützen, wird bei Beginn des Tests eine Kopie der Datendatei von der Daten-Directory in die Ergeb­ nis-Directory kopiert, und die Anwendung bezieht sich dann auf die Daten in der Ergebnis-Directory. Somit werden die Original­ inhalte der Daten in der Daten-Directory für die nachfolgende Testausführung bewahrt.
Im folgenden wird erneut auf Fig. 13b Bezug genommen. Nach der Wiedergabe des Tests (Block 750) kann die Durchsicht-Option ausgewählt werden. Der Benutzer hat die Möglichkeit zu folgen­ den Optionen: Vergleichen von Testprotokollen (pass/fail logs), geringe Differenzen, Auswahl von Bitmasken, Setzen und Entfer­ nen von Unterbrechungspunkten (Breakpoints), erneuter Ablauf der Anwendung oder Durchsicht der Differenzen (Blöcke 760, 770, 775, 780, 790, 800). Die Funktion "Setzen und Entfernen von Un­ terbrechungspunkten" wird benutzt, um Unterbrechungspunkte wäh­ rend der Ausführung der Journal-Datei bei der Wiedergabe zu setzen. Ein Unterbrechungspunkt wird vor einem Vergleich in dem durch den Durchsicht-Modul angezeigten Testprotokoll (pass/fail log) gesetzt. Dies ist in Fig. 17a dargestellt. Fig. 17a zeigt ein Durchsicht-Modulmenü, in welchem ein Unterbrechungspunkt 850 vor dem Bildpunktdatei-Vergleich bm2 gesetzt wurde. Somit wird, wenn der Test durch Nutzung des Wiederhollauf-Moduls wie­ derholt wird, das System angehalten, unmittelbar bevor es die Datensicherung und den Vergleich für bm2 ausführt. Fig. 17b zeigt, daß während der Wiedergabe die Wiedergabeausführung an dem Punkt angehalten wird, wo der Unterbrechungspunkt gesetzt wurde. Um die Ausführung des Tests fortzusetzen, muß der Benut­ zer den Cursor zur Schaltfläche 860 bewegen und diese An­ klicken. Die Unterbrechungspunkte werden typischerweise zur Fehlersuche in einem Test benutzt. Wenn ein Fehler vorkommt und der Benutzer nicht in der Lage ist, die Ursache des Fehlers zu bestimmen, so kann ein Unterbrechungspunkt gesetzt und der Test wiederholt werden, so daß das System an dem Unterbrechungspunkt anhält und der Benutzer den Zustand des Tests einschätzen kann.
Der Wiederhollauf-Modul, Block 790, gestattet es dem Benut­ zer, den Test vom Durchsicht-Modul aus erneut ablaufen zu las­ sen, und der Durchsicht-Modul, Block 800 veranlaßt die Durch­ sichtfunktionsausführungsmittel, die Differenzen zwischen den Master-Daten und den aktuellen Daten entsprechend der Ver­ gleichsfunktion, die aus der im Durchsicht-Modulmenü angezeig­ ten Testprotokolldatei (pass/fail log) ausgewählt wurde, anzu­ zeigen.
Mit Hilfe der durch den Durchsicht-Modul gelieferten Infor­ mationen kann der Benutzer fortfahren mit dem Testen der Anwen­ dung, dem Einfügen von Toleranzen und Filtern, um bestimmte, für den Test nicht geeignete Differenzen zu eliminieren, und mit dem Modifizieren der Anwendung, um Probleme zu korrigieren, welche durch diesen Test dem Benutzer sichtbar wurden. Der Test kann dann erneut mit der modifizierten Anwendung ausgeführt werden. Wenn dann der Test beendet ist, verläßt der Benutzer das Testsystem, Block 810, einfach durch Auswahl der geeigneten Menüposition, welche das System anhält und das Fenster des Testsystems schließt.
Dem Benutzer des neuen Testsystems wird die die Flexibili­ tät noch erweiternde Möglichkeit gegeben, die während des Auf­ zeichnungsteils des Tests erstellte Journaldatei der Benut­ zeraktionen zu editieren. Der Benutzer kann die Journal-Datei über eine Editierfunktion modifizieren, wobei der Benutzer ma­ nuell Veränderungen in der Journal-Datei vornimmt oder über eine interaktive Editierfunktion (auch bezeichnet als edit/replay). Um eine Journal-Datei manuell zu editieren, wählt der Benutzer einfach die Editierfunktion des Testsystemmenüs. Fig. 16 stellt die Auswahl der manuellen Editierfunktion "VI Session Script" dar. Vorzugsweise ist die Journal-Datei in ei­ nem maschinennahen Binärformat abgespeichert (eine ASCII-Über­ setzung einer Journal-Datei ist in Fig. 18a gezeigt). Zum ma­ nuellen Editieren der Journal-Datei übersetzt folglich das Testsystem den maschinennahen Code in einen Code höherer Ord­ nung mit einem Textformat, welches für den Benutzer verständ­ lich ist (siehe Fig. 18b). Der Benutzer kann dann auf die Nie­ derschrift zugreifen und Zeilen des Codes in der Sitzungsnie­ derschrift hinzufügen, löschen oder auswechseln. Vorzugsweise hat die Niederschrift folgendes Format:
SECS MSECS X-PIXEL Y-PIXEL
FORWARD/ACTION FORWARD/OPERATOR.
Wenn der Benutzer das manuelle Editieren der Niederschrift beendet hat, übersetzt das Testsystem die Niederschrift in einen maschinennahen Code und erzeugt eine aktualisierte Jour­ nal-Datei. In ähnlicher Weise kann der gesamte Test manuell mit Hilfe dieser Möglichkeit erstellt werden. Jedoch enthält das Testsystem vorzugsweise eine Makrosprache, um Journal-Dateien zu erstellen. Die Makroroutinen werden vorzugsweise zur Verfü­ gung gestellt, um das Erstellen des den Test bildenden Codes zu vereinfachen.
Die Makroroutinen definieren die Parameter der Benutzer­ schnittstelle, wie beispielsweise die Anordnung der Menüposi­ tionen. Dies wird durch das in Fig. 19a gezeigte Programm dar­ gestellt. Dieses Programm ist vorverarbeitet mit einem CPP und definiert die Fensterumrandungen, die Pixelbewegungen und die Auswahl von Funktionen, Schaltflächen, Texten, Menüs durch Na­ men. Beispielsweise ist die Quittier-Schaltfläche durch den Na­ men "QUIT BUTTON" definiert und an den (x, y)-Koordinaten (990, 426) angeordnet. Bestimmte während der Ausführung der Anwendung implementierte Operationen sind ebenfalls als Makroroutinen enthalten. Beispielsweise definiert eine Makroroutine den Stop der Anwendung durch den Namen "START ICONEDIT" und definiert die auszuführenden Aktionen (weitere Informationen über die Sprache CPP siehe CPP (1), SunOS Reference Manual, Section 1: Commands, Sun Microsystems, Inc., Mountain View, Kalifornien, Mai 1988) .
Mit Hilfe dieser Informationen kann der Benutzer manuell einen Test erstellen. Ein Beispiel für einen kurzen Test ist in Fig. 19a gezeigt. Die in Fig. 19b ausgeführten Definitionen sind in das Programm von Fig. 19a einbezogen, welches auf diese Bezug nimmt. Beispielsweise wird die zu testende Anwendung "Iconedit" durch das Makro "START ICONEDIT" initiiert, welches in dem in Fig. 19b gez 03138 00070 552 001000280000000200012000285910302700040 0002004118454 00004 03019eigten Programm definiert ist.
Durch separate Definition der Parameter der Benutzer­ schnittstelle kann der gleiche Test unter verschiedenen Schnittstellen durch Modifikation der Makrodefinitionen ausge­ führt werden. Das Testsystem interpretiert den Code und über­ setzt ihn in das Format einer Journal-Datei.
Wenn der Benutzer den interaktiven Editiermodus auswählt (siehe Fig. 16 "Interactive Edit"), so wird die Journal-Datei so wiedergegeben, wie bei der Ausführung eines anderen Tests. Jedoch kann der Benutzer zu jeder Zeit die Wiedergabe-Sequenz anhalten, indem er eine vordefinierte Interrupt-Taste, bei­ spielsweise die Alt-Taste benutzt. Wurde sie angehalten, so kann der Benutzer eine Serie von Ereignissen an der Stelle, wo die Wiedergabe-Sequenz angehalten wurde, hinzufügen oder lö­ schen. Wenn der Benutzer während des interaktiven Editiermodus in die Journal-Datei eingreift, erscheint ein Pop-Up-Menü, wel­ ches den Benutzer fragt, ob er Informationen in der Journal-Da­ tei zu löschen oder hinzuzufügen wünscht. Beispielsweise kann der Benutzer einen Bildpunktdatenvergleich zum Sitzungsproto­ koll hinzuzufügen wünschen, um während der Ausführung einen Be­ reich auf dem Bildschirm an einem Punkt, der zuvor nicht gete­ stet wurde, zu vergleichen. Dies ist auszuführen durch Auswäh­ len der Hinzufüge-Funktion und durch manuelle Ausführung der zur Sicherung einer Bildpunktdatei auszuführenden Benutzerak­ tionen. Andererseits kann der Benutzer Ereignisse zu entfernen wünschen, beispielsweise Vergleiche, welche nicht länger benö­ tigt werden, um ein System zu testen. Dies ist durch Auswahl der Lösch-Funktion auszuführen. Nach der Auswahl der Lösch- Funktion startet das Testsystem die Wiedergabe und löscht alle Ereignisse, bis eine andere Interrupt-Taste gedrückt wird.
Der Benutzer kann außerdem eine Marke einfügen. Wenn eine Marke in einer Journaldatei plaziert und nachfolgend der in­ teraktive Modus ausgewählt wird, so bewirkt die Marke, daß der Wiedergabe-Mechanismus an der Stelle der Marke in der Journal­ datei anhält. Dies ist beim Ersetzen eines Ereignisses hilfreich. Während des interaktiven Editierens werden die zu entfernenden Ereignisse markiert und gelöscht. Wenn die Jour­ nal-Datei wiedergegeben wird, so stoppt das Testsystem die Aus­ führung der Journal-Datei am Beginn des gelöschten Abschnittes, dort wo die Marke plaziert wurde, so daß die Einfügung statt­ finden kann.
Während des interaktiven Editiermodus werden die Ereignisse in der Journal-Datei gelesen, ausgeführt und in eine zweite Da­ tei geschrieben, welche dann zur aktualisierten Version der Journal-Datei wird. Folglich wird die Lösch-Funktion implemen­ tiert, indem die Ereignisse nicht in die zweite Datei geschrie­ ben werden. In ähnlicher Weise wird die Einfüge-Funktion frei­ gegeben, indem die zusätzlichen Ereignisse in die zweite Datei eingeschrieben werden, während die Wiedergabe der Original- Journal-Datei ausgesetzt wird.

Claims (77)

1. Durch einen Benutzer erweiterbares, automatisiertes Sy­ stem zum Testen von Anwendungsprogrammen in einem fensterba­ sierten Computersystem mit einer zentralen Verarbeitungseinheit (CPU 103), einem Speicher (104), Eingabe/Ausgabe-Geräten, zu denen eine Tastatur (105), eine Maus (108) und ein Display (107) gehören, wobei die Eingabe und die Ausgabe der Informa­ tionen durch auf dem Display definierte Fenster ausgeführt wer­ den, das Testsystem Referenz- oder Master-Daten mit aktuellen, während des Tests des Anwendungsprogramms erzeugten Daten ver­ gleicht, und wobei die Testergebnisse die Differenzen zwischen den Master-Daten und den aktuellen Daten enthalten, gekennzeichnet durch:
Journal-Mittel (270) zur Erzeugung und Wiedergabe einer Journal-Datei, die eine Liste von während einer Benutzersitzung ausgeführte Benutzeraktionen darstellenden Ereignissen enthält, die bei ihrer Wiedergabe eine Ausführung des Anwendungspro­ gramms in einer vorherbestimmten Weise derart bewirken, daß das Anwendungsprogramm getestet wird;
Filtermittel zur Beseitigung derjenigen Teile der Daten, welche für die Testergebnisse unmaßgeblich sind, wobei die Fil­ termittel enthalten:
Filterfunktionen, welche bei Ausführung Teile der Daten herausfiltern, wobei jede Filterfunktion durch einen Namen identifiziert ist;
eine Filterlistendatei, die eine Liste von Namen von Filterfunktionen enthält, wobei auf die Filterlistendatei Bezug genommen wird, um verfügbare Filterfunktionen zu be­ stimmen;
Filterausführungsmittel zur Ausfilterung von Teilen von Daten entsprechend den Filterfunktionen, die in der Filter­ listendatei aufgeführt sind; und
Filtermodifikationsmittel zum Modifizieren der Filter­ listendatei derart, daß Filterfunktionen hinzugefügt, ge­ löscht oder geändert werden können;
Datensicherungsmittel zur Sicherung von während des Tests des Anwendungsprogramms erzeugen Daten, wobei die Datensiche­ rungsmittel enthalten:
Datensicherungsfunktionen, welche bei Ausführung zuvor bestimmte Teile der Daten sichern und jeweils durch einen Namen identifiziert sind;
Datensicherungsausführungsmittel zur Sicherung zuvor bestimmter Teile der Daten entsprechend spezifizierten Da­ tensicherungsfunktionen, wobei die Filterausführungsmittel Filterfunktionen an den Daten ausführen, bevor die Datensi­ cherungsausführungsmittel die Daten sichern, und wobei die Datensicherungsausführungsmittel durch eine Vielzahl von in der Journal-Datei angeordneten Ereignissen freigegeben wer­ den, welche die Datensicherungsfunktion auswählende Benut­ zeraktionen darstellen; und
Datensicherungsmodifikationsmittel zur Modifikation der Datensicherungsfunktionen derart, daß Datensicherungsfunk­ tionen hinzugefügt, gelöscht oder geändert werden können;
Vergleichsmittel zum Vergleichen vorgegebener Teile der Ma­ ster-Daten zu korrespondierenden Teilen der aktuellen Daten, wobei die Vergleichsmittel enthalten:
Vergleichsfunktionen, die bei Ausführung vorgegebener Teile der Master-Daten mit korrespondierenden vorgegebenen Teilen der aktuellen Daten vergleichen, die Differenzen zwischen diesen vorgegebenen Teilen der Master-Daten und der aktuellen Daten bestimmen und die Erzeugung einer Feh­ ler-Datei bewirken, wobei die Fehler-Datei die gesicherten aktuellen Daten enthält, welche durch die Vergleichsfunk­ tion bestimmte Differenzen haben, wobei jede Vergleichs­ funktion durch einen Namen identifiziert ist;
Vergleichsausführungsmittel zum Vergleich vorgegebener Teile der Master-Daten und der aktuellen Daten entsprechend den Vergleichsfunktionen, wobei die Vergleichsausführungs­ mittel freigegeben werden, nachdem die Ausführung der Da­ tensicherung abgeschlossen ist;
Vergleichsmodifikationsmittel zur Modifikation der Ver­ gleichsfunktionen derart, daß Vergleichsfunktionen hinzuge­ fügt, gelöscht oder geändert werden können;
wobei das Testsystem erweiterbar ist durch Modifikation der Filterfunktionen, der Datensicherungsfunktionen und der Ver­ gleichsfunktionen.
2. Testsystem nach Anspruch 1, dadurch gekennzeichnet, daß die Filtermodifikationsmittel Mittel zum Erstellen, Löschen und Modifizieren von Filterfunktionen enthalten.
3. Testsystem nach Anspruch 1 oder 2, dadurch gekennzeich­ net, daß die Filterfunktionen, Datensicherungsfunktionen und Vergleichsfunktionen mittels der Maus (260) aus Menüs auswähl­ bar sind, die in Fenstern auf dem Display (240) angezeigt wer­ den.
4. Testsystem nach einem der Ansprüche 1 bis 3, dadurch ge­ kennzeichnet, daß die Journal-Mittel (270) eine Journal-Datei erzeugen durch Aufzeichnen der Benutzeraktionen darstellenden Ereignisse und Schreiben der Ereignisse in die Journal-Datei.
5. Testsystem nach Ansprüchen 3 und 4, dadurch gekennzeich­ net, daß die Journal-Datei die Maus-Ereignisse enthält, die Funktionen auswählende Benutzeraktionen darstellen, wobei wäh­ rend der Wiedergabe der Journal-Datei die Funktionen durch Wie­ dergabe der Ereignisse durch die Journal-Mittel auswählbar sind.
6. Testsystem nach einem der Ansprüche 1 bis 5, dadurch ge­ kennzeichnet, daß die Filtermittel eine Filterfunktion zum Eli­ minieren zuvor bestimmter Abschnitte der Daten enthalten.
7. Testsystem nach einem der Ansprüche 1 bis 6, dadurch ge­ kennzeichnet, daß die Filtermittel eine Filterfunktion zum Übersetzen vorgegebener Abschnitte der Daten von einem ersten Format in ein zweites Format enthalten.
8. Testsystem nach einem der Ansprüche 1 bis 7, dadurch ge­ kennzeichnet, daß die Filtermittel eine Vielzahl von Filter­ funktionen enthalten, welche zur Filterung der Daten hinterein­ ander geschachtelt sind.
9. Testsystem nach einem der Ansprüche 1 bis 8, dadurch ge­ kennzeichnet, daß die Filtermodifikationsmittel einen Textedi­ tor enthalten.
10. Testsystem nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß die Filterausführungsmittel bei Freigabe einer Datensicherungsfunktion aktivierbar sind.
11. Testsystem nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die Datensicherungsfunktionen zur Sicherung von Textdaten vorgesehen sind.
12. Testsytem nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die Datensicherungsfunktionen zur Sicherung von Bildpunktdaten vorgesehen sind.
13. Testsystem nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die Datensicherungsfunktionen zur Sicherung von benutzerdefinierten Daten in einem binären Datenformat vor­ gesehen sind.
14. Testsystem nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß die Datensicherungsmodifikationsmittel einen Texteditor enthalten.
15. Testsystem nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, daß die Vergleichsmittel zwei Textdateien ver­ gleichen.
16. Testsystem nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, daß die Vergleichsmittel zwei Bildpunktdateien vergleichen.
17. Testsystem nach einem der Ansprüche 1 bis 16, dadurch gekennzeichnet, daß die Filtermodifikationsmittel einen Texte­ ditor enthalten.
18. Testsystem nach einem der Ansprüche 1 bis 17, dadurch gekennzeichnet, daß bei Auftreten der Differenzen zwischen den Master-Daten und den aktuellen, zu sichernden Daten eine Feh­ lermeldung durch Speichern der zu sichernden Daten in der Feh­ ler-Datei erstellt wird, und daß die zu sichernden Daten von der Fehler-Datei entfernt werden, wenn keine Differenzen fest­ gestellt werden.
19. Testsystem nach einem der Ansprüche 1 bis 18, dadurch gekennzeichnet, daß die Filterausführungsmittel automatisch während der Ausführung einer Datensicherungsfunktion freigege­ ben werden.
20. Testsystem nach einem der Ansprüche 1 bis 19, dadurch gekennzeichnet, daß die Vergleichsmittel einen Texteditor ent­ halten.
21. Testsystem nach einem der Ansprüche 1 bis 20, dadurch gekennzeichnet, daß einen Durchsicht-Modul zum Durchsehen der Differenzen zwischen den Master-Daten und den gesicherten Daten vorgesehen ist und Mittel zur graphischen Anzeige der Differen­ zen zwischen den Master-Daten und den gesicherten Daten in ei­ nem Fester auf dem Display aufweist, wobei die Differenzen zwi­ schen den Master-Daten und den gesicherten Daten graphisch durchsehbar sind.
22. Testsystem nach Anspruch 21, dadurch gekennzeichnet, daß die Vergleichsmittel Bildpunktdateien vergleichen und daß der Durchsicht-Modul Mittel zur Anzeige der aktuellen Daten als digitalisiertes Bild und Mittel zur Anzeige der Differenzen zwischen den Master-Daten und den aktuellen Daten durch Hervor­ heben der Differenzen im digitalisierten Bild der aktuellen Da­ ten aufweist.
23. Testsystem nach Anspruch 22, dadurch gekennzeichnet, daß die Differenzen durch An- und Ausschalten der Pixel auf der Anzeige hervorgehoben werden, die Teil der Differenzen sind.
24. Testsystem nach Anspruch 21, dadurch gekennzeichnet, daß die Vergleichsmittel Bildpunktdateien vergleichen und daß der Durchsicht-Modul Mittel zur Anzeige der Differenzen zwi­ schen den Master-Daten und den aktuellen Daten durch Anzeigen nur der Differenzen aufweisenden Teile des Bildes enthält.
25. Testsystem nach Anspruch 21, dadurch gekennzeichnet, daß die Vergleichsmittel Textdaten vergleichen und daß der Durchsicht-Modul Mittel zur Anzeige der aktuellen Daten als Textzeilen auf einem ersten Teil des Bildschirms, Mittel zur Anzeige der Master-Daten als Textzeilen auf einem zweiten Teil des Bildschirms und Mittel zur Anzeige der Differenzen zwischen den Master-Daten und den aktuellen Daten aufweist, wobei die Differenz durch Anzeigen eines Kennzeichens (CHG) an jeder Dif­ ferenzen aufweisenden Zeile auf dem zweiten Teil des Displays sichtbar gemacht wird (Fig. 8b).
26. Testsystem nach Anspruch 21, dadurch gekennzeichnet, daß die Vergleichsmittel Textdaten vergleichen und daß der Durchsicht-Modul Mittel zur Anzeige der aktuellen Daten als Textzeilen und Mittel zur Anzeige der Differenzen zwischen den Master-Daten und den aktuellen Daten durch Hervorheben der Dif­ ferenzen in der Textanzeige der aktuellen Daten enthält.
27. Testsystem nach einem der Ansprüche 21 bis 26, dadurch gekennzeichnet, daß der Durchsicht-Modul Mittel zum Einstellen von Toleranzen für nachfolgende Vergleiche enthält, wobei der Vergleich eine geringe Differenz ergibt, wenn bei Wiederholung des Tests die Differenzen innerhalb der eingestellten Toleran­ zen liegen.
28. Testsystem nach Anspruch 27, dadurch gekennzeichnet, daß die Toleranzen Bildpunktverschiebungen um eine vorgegebene Anzahl von Pixeln enthalten, wobei eine Verschiebung der Pixel innerhalb der vorgegebenen Anzahl von Pixeln als eine geringe Differenz angesehen wird (Fig. 11b).
29. Testsystem nach Anspruch 27, dadurch gekennzeichnet, daß die Toleranzen Farbdifferenzen entsprechend einem vorgege­ benen numerischen Wert (Fig. 11f) enthalten, wobei eine Ver­ schiebung der Farben der Pixel innerhalb der vorgegebenen nume­ rischen Werte als geringe Differenz angesehen wird.
30. Testsystem nach einem der Ansprüche 21 bis 29, dadurch gekennzeichnet, daß der Durchsicht-Modul ferner Mittel zum Mas­ kieren spezifizierter Daten in der Master-Datei und in der ak­ tuellen Datei enthält, wobei die maskierten Daten in der aktu­ ellen Datei vom Vergleich mit den korrespondierenden Master-Da­ ten ausgeschlossen sind.
31. Testsystem nach Anspruch 30, dadurch gekennzeichnet, daß die Daten eine Bildpunktabbildung sind und daß die maskier­ ten Daten durch Kennzeichnung der Umrandungen von Bereichen (480) einer auf dem Display angezeigten Bildpunktabbildung identifiziert sind.
32. Testsystem nach Anspruch 30 oder 31, dadurch gekenn­ zeichnet, daß die die Masken identifizierenden Informationen mit den entsprechenden Master-Daten gespeichert sind.
33. Testsystem nach einem der Ansprüche 30 bis 32, dadurch gekennzeichnet, daß die Mittel zum Maskieren die angezeigten maskierten Daten hervorheben.
34. Testsystem nach einem der Ansprüche 21 bis 33, dadurch gekennzeichnet, daß der Durchsicht-Modul ferner Mittel zum Ak­ tualisieren der Master-Daten durch Ersetzen der Master-Daten durch die aktuellen Daten enthält.
35. Testsystem nach einem der Ansprüche 21 bis 34, dadurch gekennzeichnet, daß der Durchsicht-Modul ferner Mittel zur Er­ zeugung und zur Anzeige eines Protokolls jedes durchgeführten Vergleichs enthält, wobei das Protokoll anzeigt, ob der Ver­ gleich ohne ermittelte Differenzen durchlaufen wurde oder ob Differenzen festgestellt wurden.
36. Testsystem nach Anspruch 35, dadurch gekennzeichnet, daß der Durchsicht-Modul ferner Display-Auswahlmittel enthält, welche dem Benutzer einen Vergleich aus dem Protokoll auszuwäh­ len gestatten und welche die Mittel zur graphischen Anzeige in einem Fenster des Displays steuern, um die Differenzen zwischen den Master-Daten und den gesicherten Daten anzuzeigen, wobei die Differenzen zwischen den Master-Daten und den gesicherten Daten graphisch durchsehbar sind.
37. Testsystem nach einem der Ansprüche 21 bis 36, dadurch gekennzeichnet, daß der Durchsicht-Modul ferner Mittel zum Set­ zen von Unterbrechungspunkten in der Journal-Datei enthält, wo­ bei die Unterbrechungspunkte den Journal-Mechanismus veranlas­ sen, die Wiedergabe der in der Journaldatei aufgezeichneten Er­ eignisse auszusetzen.
38. Testsystem nach einem der Ansprüche 1 bis 37, gekenn­ zeichnet durch Mittel zum Verbinden einer vorgegebenen Datensi­ cherungsfunktion und einer Vergleichsfunktion, wobei eine Liste von jeweils durch einen Namen identifizierten Datensiche­ rungs/Vergleichs-Funktionspaaren erstellt wird und die Datensi­ cherungsfunktionen und die Vergleichsfunktionen durch Auswahl eines Datensicherungs/Vergleichs-Funktionspaars ausgewählt wer­ den.
39. Testsystem nach Anspruch 38, dadurch gekennzeichnet, daß die Datensicherungsfunktionen und die Vergleichsfunktionen selektierbar sind durch Auswahl eines Datensicherungs/Ver­ gleichs-Funktionspaars, das über ein innerhalb eines Fensters auf dem Display angezeigtes Menü auswählbar ist.
40. Testsystem nach einem der Ansprüche 21 bis 39, gekenn­ zeichnet durch Mittel zum Verbinden einer vorgegebenen Datensi­ cherungsfunktion, einer Vergleichsfunktion und einer Durch­ sichtfunktion durch Erstellen einer Liste von jeweils durch Na­ men identifizierten Datensicherungs/Vergleichs/Durchsicht-Funk­ tions-Triplen (Fig. 12), wobei die Datensicherungsfunktionen, Vergleichsfunktionen und Durchsichtfunktionen durch Auswahl des Namens eines Datensicherungs/Vergleichs/Durchsicht-Funktions- Triples ausgewählt werden.
41. Testsystem nach Anspruch 40, dadurch gekennzeichnet, daß die Datensicherungsfunktionen, die Vergleichsfunktionen und die Durchsichtfunktionen durch ein Datensicherungs/Vergleichs­ /Durchsicht-Funktions-Triple selektierbar sind, welches über ein in einem Fenster auf dem Display angezeigtes Menü auswähl­ bar ist.
42. Testsystem nach einem der Ansprüche 1 bis 41, gekenn­ zeichnet durch Mittel zum manuellen Editieren der Journal-Da­ tei, wobei diese Mittel aufweisen:
Mittel zum Übersetzen der in einem ersten Format in der Journal-Datei gespeicherten Ereignisse in ein für den Benutzer verständliches zweites Format;
Mittel zum Hinzufügen, Löschen oder Modifizieren von über­ setzten Ereignissen; und
Mittel zum Übersetzen der übersetzten Ereignisse vom zwei­ ten Format zurück in das erste Format, wobei die Benutzersit­ zung durch Hinzufügen, Löschen oder Ändern der während der Be­ nutzersitzung ausgeführten Benutzeraktionen modifizierbar ist.
43. Testsystem nach Anspruch 42, dadurch gekennzeichnet, daß zum manuellen Erstellen einer Journal-Datei Mittel vorgese­ hen sind, die aufweisen:
Mittel zum Erzeugen von Makroroutinen, welche die Parameter der Benutzerschnittstelle des Window-Systems definieren, in welchem das Testsystem arbeitet; und
Mittel zum Einsetzen ausgewählter Makroroutinen in die Journal-Datei, um für Benutzeraktionen repräsentative Ereig­ nisse in der Journal-Datei zu erzeugen.
44. Testsystem nach einem der Ansprüche 1 bis 43, dadurch gekennzeichnet, daß es ferner interaktive Editiermittel ent­ hält, welche aufweisen:
Mittel zum Steuern des Journal-Mechanismus′ (270) zur Wie­ dergabe der Journal-Datei;
Mittel zum Anhalten der Wiedergabe der Journal-Datei;
Mittel zum Löschen desjenigen Ereignisses in der Journal- Datei, an welchem die Wiedergabe angehalten wurde; und
Mittel zum Hinzufügen von Ereignissen in die Journal-Datei an der Stelle, an welcher die Wiedergabe angehalten wurde,
wobei eine Journal-Datei interaktiv während der Wiedergabe der Journal-Datei editiert wird.
45. Testsystem nach Anspruch 44, dadurch gekennzeichnet, daß die interaktiven Editiermittel ferner aufweisen:
Mittel zum Markieren von Stellen in der Journal-Datei; und
Mittel zum Steuern der Journal-Mittel, wobei die nachfol­ gende Wiedergabe der Journal-Datei die Journal-Mittel veran­ laßt, an den markierten Stellen die Wiedergabe auszusetzen, wo­ bei die Mittel zum Hinzufügen von Ereignissen und die Mittel zum Löschen von Ereignissen benutzt werden, um Ereignisse an den markierten Stellen hinzuzufügen bzw. zu löschen.
46. Testsystem nach Anspruch 44 oder 45, dadurch gekenn­ zeichnet, daß die interaktiven Editiermittel jedes wiedergege­ bene Ereignis lesen und das Ereignis in eine zweite Journal-Da­ tei schreiben, daß die Mittel zum Hinzufügen von Ereignissen die Ereignisse zur zweiten Journal-Datei hinzufügen, daß die Mittel zum Löschen von Ereignissen bewirken, daß die Ereignisse nicht in die zweite Journal-Datei geschrieben werden und daß die zweite Journal-Datei die existierende Journal-Datei bei Beendigung des interaktiven Editierens ersetzt.
47. Durch einen Benutzer erweiterbares, automatisiertes Verfahren zum Testen von Anwendungsprogrammen bei einen fen­ sterbasierten Computersystem mit einer zentralen Verarbeitungs­ einheit (CPU) (103), einem Speicher (104), Eingabe/Ausgabe-Ge­ räten, zu denen eine Tastatur (105), eine Maus (108) und ein Display (107) gehören, wobei die Eingabe und die Ausgabe der Informationen durch auf dem Display definierte Fenster ausge­ führt wird, dadurch gekennzeichnet,
daß Referenz- oder Master-Daten mit aktuellen, während des Tests des Anwendungsprogramms erzeugten Daten verglichen wer­ den, wobei die Testergebnisse die Differenzen zwischen den Ma­ ster-Daten und den aktuellen Daten enthalten,
daß während einer Benutzersitzung ausgeführte Benutzerak­ tionen darstellende Ereignisse erzeugt werden, die Ereignisse zum Ausführen des Anwendungsprogramms enthalten;
daß Ereignisse zur Ausführung des Vergleichs zwischen den Master-Daten und den aktuellen Daten durch die folgenden Schritte erzeugt werden:
Filtern von Teilen der Daten, die keinen Einfluß auf die Testergebnisse haben, durch Ausführen von Filterfunk­ tionen, die Teile der Daten ausfiltern, wobei jede Filter­ funktion durch einen Namen gekennzeichnet ist und in einer Filterlistendatei identifiziert wird, wobei die Filterli­ stendatei eine Liste von für das Ausfiltern von Teilen der Daten verfügbaren Filterfunktionen enthält und modifiziert wird, um Filterfunktionen hinzuzufügen, zu löschen oder zu ändern;
Sichern von während des Tests des Anwendungsprogramms erzeugten Daten entsprechend Datensicherungsfunktionen, welche vorgegebene Teile von Daten sichern, wobei jede Da­ tensicherungsfunktion durch einen Namen gekennzeichnet ist und durch eine Mehrzahl von in einer Journal-Datei angeord­ neten Ereignissen freigegeben wird, die solche Benutzerak­ tionen darstellen, welche die Datensicherungsfunktionen auswählen und, wobei die Datensicherungsfunktionen modifi­ ziert werden, um Datensicherungsfunktionen hinzuzufügen, zu löschen oder zu ändern;
Vergleichen von vorgegebenen Teilen der Master-Daten mit entsprechenden Teilen der aktuellen Daten gemäß Ver­ gleichsfunktionen, die jeweils durch einen Namen gekenn­ zeichnet sind, um die Differenzen zwischen den vorgegebenen Teilen der Master-Daten und der aktuellen Daten zu bestim­ men, wobei die Vergleichsfunktionen modifiziert werden, um Vergleichsfunktionen hinzuzufügen, zu löschen oder zu än­ dern; und
Erzeugen einer Fehler-Datei, die dann gesicherte aktu­ elle Daten enthält, wenn Differenzen bestimmt wurden;
daß die Journal-Datei durch Aufzeichnen von während einer Benutzersitzung ausgeführte Benutzeraktionen darstellenden Er­ eignissen erzeugt wird, wobei die Benutzeraktionen Aktionen zur Ausführung des Anwendungsprogramms und Aktionen zur Ausführung der Vergleiche zwischen den Master-Daten und den aktuellen Da­ ten enthalten; und
daß die Journal-Datei wiedergegeben wird, wodurch die auf­ gezeichneten Ereignisse ausgeführt werden, um das Anwendungs­ programm durch Ausführung des Anwendungsprogramms und Ausfüh­ rung von Vergleichen zwischen den Master-Daten und den aktuel­ len Daten zu testen.
48. Verfahren nach Anspruch 47, gekennzeichnet dadurch, daß die Schritte der Auswahl der Filterfunktionen, der Datensiche­ rungsfunktionen und der Vergleichsfunktionen durch Auswahl der entsprechenden Menüpositionen aus in Fenstern auf dem Display (107) angezeigten Menüs ausgeführt werden.
49. Verfahren nach Anspruch 47 oder 48, dadurch gekenn­ zeichnet, daß der Schritt des Filterns die Eliminierung vorge­ gebener Teile der Daten enthält.
50. Verfahren nach einem der Ansprüche 47 bis 49, dadurch gekennzeichnet, daß der Schritt des Filterns die Übersetzung vorgegebener Teile der Daten aus einem ersten Format in ein zweites Format enthält.
51. Verfahren nach einem der Ansprüche 47 bis 50, dadurch gekennzeichnet, daß als Daten Textdaten verwendet werden.
52. Verfahren nach einem der Ansprüche 47 bis 50, dadurch gekennzeichnet, daß als Daten Bildpunktdaten verwendet werden.
53. Verfahren nach einem der Ansprüche 47 bis 50, dadurch gekennzeichnet, daß die Daten nutzerdefinierte Daten in einem binären Datenformat sind.
54. Verfahren nach einem der Ansprüche 47 bis 53, dadurch gekennzeichnet, daß der Schritt des Erzeugens einer Fehler-Da­ tei die Schritte des Speicherns der zu sichernden Daten in der Fehler-Datei und, wenn keine Differenzen bestimmt werden, des Entfernens der zu sichernden Daten aus der Fehler-Datei ent­ hält.
55. Verfahren nach einem der Ansprüche 47 bis 54, dadurch gekennzeichnet, daß die Differenzen zwischen den Master-Daten und den gesicherten Daten durch graphische Anzeige der Diffe­ renzen in einem Fenster auf dem Display durchgesehen werden.
56. Verfahren nach Anspruch 55, dadurch gekennzeichnet, daß als Daten Bildpunktdaten verwendet und beim Durchsehen folgende Schritte ausgeführt werden:
Anzeigen der aktuellen Daten als Bildpunktdatei und
Anzeigen der Differenzen zwischen den Master-Daten und den aktuellen Daten durch Hervorhebung der Differenzen in der Bild­ punktdatenanzeige der aktuellen Daten.
57. Verfahren nach Anspruch 56, dadurch gekennzeichnet, daß die Differenzen durch An- und Ausschalten der Pixel auf der An­ zeige, die Teil der Differenzen sind, hervorgehoben werden.
58. Verfahren nach Anspruch 55, dadurch gekennzeichnet, daß die Daten Bildpunktdaten sind und beim Durchsehen die Differen­ zen zwischen den Master-Daten und den aktuellen Daten durch Be­ schränken der Anzeige auf Differenzen enthaltende Teile des Bildes dargestellt werden.
59. Verfahren nach Anspruch 55, dadurch gekennzeichnet, daß die Daten Textdaten sind und das Durchsehen mit folgenden Schritten erfolgt:
Anzeige der aktuellen Daten als Textzeilen auf einem ersten Teil des Bildschirms,
Anzeige der Master-Daten als Textzeilen auf einem zweiten Teil des Bildschirms und
Anzeige der Differenzen zwischen den Master-Daten und den aktuellen Daten durch Anzeige eines Kennzeichens an jeder Zeile, wo Differenzen bemerkt werden, auf dem zweiten Teil des Bildschirms.
60. Verfahren nach Anspruch 55, dadurch gekennzeichnet, daß die Daten Textdaten sind und das Durchsehen mit den folgenden Schritten durchgeführt wird:
Anzeigen der aktuellen Daten als Textzeilen und
Anzeigen der Differenzen zwischen den Master-Daten und den aktuellen Daten durch Hervorhebung der Differenzen in der Text­ anzeige der aktuellen Daten.
61. Verfahren nach einem der Ansprüche 55 bis 60, dadurch gekennzeichnet, daß beim Durchsehen ferner Toleranzen für nach­ folgende Vergleiche derart eingestellt werden, daß Differenzen innerhalb der eingestellten Toleranzen beim Vergleich als eine geringe Differenz angesehen werden.
62. Verfahren nach Anspruch 61, dadurch gekennzeichnet, daß die Toleranzen als Bildpunktverschiebungen um eine vorgegebene Anzahl von Pixeln eingestellt werden, wobei eine Verschiebung der Pixel innerhalb dieser Anzahl von Pixeln als eine geringe Differenz angesehen wird.
63. Verfahren nach Anspruch 61, dadurch gekennzeichnet, daß die Toleranzen Farbdifferenzen eines vorgegebenen numerischen Wertes enthalten, so daß eine Verschiebung der Farbe der Pixel innerhalb des vorgegebenen numerischen Wertes als eine geringe Differenz angesehen wird.
64. Verfahren nach einem der Ansprüche 55 bis 63, dadurch gekennzeichnet, daß beim Durchsehen spezifizierte Daten in den Master- und aktuellen Daten maskiert und die maskierten Daten der aktuellen Daten vom Vergleich mit den korrespondierenden Master-Daten ausgenommen werden.
65. Verfahren nach Anspruch 64, dadurch gekennzeichnet, daß die Daten Bildpunktdaten sind und daß die markierten Daten durch Kennzeichnung der Umrandungen der Bereiche der auf dem Display (107) angezeigten Bildpunktdatei gekennzeichnet werden.
66. Verfahren nach Anspruch 64 oder 65, dadurch gekenn­ zeichnet, daß die die Masken kennzeichnenden Informationen mit den entsprechenden Master-Daten gespeichert werden.
67. Verfahren nach einem der Ansprüche 55 bis 66, dadurch gekennzeichnet, daß der Schritt des Durchsehens ferner einen Schritt des Aktualisierens der Master-Daten durch Ersetzen der Master-Daten durch die aktuellen Daten enthält.
68. Verfahren nach einem der Ansprüche 55 bis 67, dadurch gekennzeichnet, daß ein Protokoll von jedem ausgeführten Ver­ gleich erzeugt und angezeigt wird, ob der Vergleich ohne Diffe­ renzen durchlaufen wurde oder infolge von ermittelten Differen­ zen gescheitert ist.
69. Verfahren nach Anspruch 68, dadurch gekennzeichnet, daß beim Durchsehen ferner ein Vergleich aus dem Protokoll der zum Erzeugen und Anzeigen der Differenzen zwischen den Master-Daten und den gesicherten Daten ausgeführten Vergleiche selektiert wird, wobei die Differenzen zwischen den Master-Daten und den gesicherten Daten graphisch durchgesehen werden können.
70. Verfahren nach einem der Ansprüche 55 bis 69, dadurch gekennzeichnet, daß der Schritt des Durchsehens ferner Setzen von Unterbrechungspunkten in der Journal-Datei enthält, wobei die Unterbrechungspunkte eine Unterbrechung des Wiedergebens der Journal-Datei bewirken.
71. Verfahren nach einem der Ansprüche 47 bis 70, dadurch gekennzeichnet, daß eine vorgegebene Datensicherungsfunktion Und eine Vergleichsfunktion verbunden werden durch Erstellen einer Liste von Datensicherungs/Vergleichs-Funktions-Paaren, die jeweils durch einen Namen identifiziert sind und durch Aus­ wahl eines identifizierten Datensicherungs/Vergleichs-Funkti­ ons-Paares ausgewählt werden.
72. Verfahren nach einem der Ansprüche 55 bis 71, dadurch gekennzeichnet, daß eine vorgegebene Datensicherungsfunktion, Vergleichsfunktion und Durchsichtfunktion verbunden werden durch Erstellen einer Liste von Datensicherungs/Vergleichs/- Durchsicht-Funktions-Triplen, die jeweils durch einen Namen gekennzeichnet werden, wobei die Datensicherungsfunktionen, Vergleichsfunktionen und Durchsichtfunktionen durch Auswahl eines identifizierten Datensicherungs/Vergleichs/Durchsicht- Funktions-Triples selektiert werden.
73. Verfahren nach einem der Ansprüche 47 bis 72, dadurch gekennzeichnet, daß die Journal-Datei manuell dadurch editiert wird,
daß die in einem ersten Format in der Journal-Datei gespei­ cherten Ereignisse in ein für den Benutzer verständliches zwei­ tes Format übersetzt werden,
daß übersetzte Ereignissen hinzugefügt, gelöscht oder modi­ fiziert werden und
daß die Ereignisse von dem zweiten Format zurück in das er­ ste Format übersetzt werden,
wobei die Benutzersitzung modifiziert werden kann, um wäh­ rend der Benutzersitzung ausgeführte Benutzeraktionen hinzuzu­ fügen, zu löschen oder zu ändern.
74. Verfahren nach einem der Ansprüche 47 bis 73, dadurch gekennzeichnet, daß die Journal-Datei manuell erstellt wird, wobei
Makroroutinen erzeugt werden, welche die Parameter der Be­ nutzerschnittstelle des Window-Systems, in welchem das Testsy­ stem arbeitet, definieren und
ausgewählte Makroroutinen in die Journal-Datei eingebunden werden, um Ereignisse in der Journal-Datei zu erzeugen, die für Benutzeraktionen darstellen.
75. Verfahren nach einem der Ansprüche 47 bis 74, dadurch gekennzeichnet, daß die Journal-Datei interaktiv editiert wird, wobei dieser Schritt enthält:
Wiedergeben der Journal-Datei,
Aussetzen der Wiedergabe der Journal-Datei,
Löschen des Ereignisses in der Journal-Datei, an welchem die Wiedergabe ausgesetzt wurde und
Hinzufügen von Ereignissen in die Journal-Datei an der Stelle, an welcher die Wiedergabe angehalten wurde,
wobei eine Journal-Datei interaktiv während der Wiedergabe der Journal-Datei editiert wird.
76. Verfahren nach Anspruch 75, dadurch gekennzeichnet, daß der Schritt des interaktiven Editierens der Journal-Datei das Markieren von Stellen in der Journal-Datei enthält, wobei die nachfolgende Wiedergabe der Journal-Datei ein Anhalten der Wie­ dergabe an der Stelle der Markierung bewirkt, und wobei an der Stelle der Marke Ereignisse hihzugefügt oder gelöscht werden können.
77. Verfahren nach Anspruch 76, dadurch gekennzeichnet, daß der Schritt des interaktiven Editierens ein Lesen jedes wieder­ gegebenen Ereignisses und ein Schreiben des Ereignisses in eine zweite Journal-Datei enthält, welche nachfolgend die erste Journal-Datei ersetzt, wobei ein Hinzufügen von Ereignissen zur Journal-Datei durch ein Hinzufügen von Ereignissen zur zweiten Journal-Datei erfolgt und wobei ein Entfernen von Ereignissen aus der Journal-Datei dadurch erfolgt, daß diese Ereignisse nicht in die zweite Journal-Datei geschrieben werden.
DE4118454A 1990-06-07 1991-06-05 System zum automatischen Testen von Anwendersoftware Expired - Fee Related DE4118454C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/534,431 US5157779A (en) 1990-06-07 1990-06-07 User extensible testing system

Publications (2)

Publication Number Publication Date
DE4118454A1 true DE4118454A1 (de) 1991-12-12
DE4118454C2 DE4118454C2 (de) 2001-03-01

Family

ID=24129999

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4118454A Expired - Fee Related DE4118454C2 (de) 1990-06-07 1991-06-05 System zum automatischen Testen von Anwendersoftware

Country Status (3)

Country Link
US (1) US5157779A (de)
JP (1) JP3407809B2 (de)
DE (1) DE4118454C2 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0632377A1 (de) * 1993-06-30 1995-01-04 Microsoft Corporation Verfahren zur Überprüfung eines nachrichtengesteuerten Betriebssystems
DE19940306A1 (de) * 1999-08-25 2001-03-08 Siemens Ag Verfahren zum Testen eines Programmsystems sowie zugehörige Datenverarbeitungsanlage und zugehöriges Programm
WO2010063543A1 (de) * 2008-12-02 2010-06-10 Siemens Aktiengesellschaft Einrichtung zum testen einer vorrichtung

Families Citing this family (143)

* 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
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
JPH0772870B2 (ja) * 1990-12-21 1995-08-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 構造検査パネルの生産自動化方法
US5333302A (en) * 1991-02-28 1994-07-26 Hensley Billy W Filtering event capture data for computer software evaluation
US5930505A (en) * 1991-12-17 1999-07-27 Hudson Soft Co. Ltd. Method for storing a program into an auxiliary memory
US5303166A (en) * 1992-04-14 1994-04-12 International Business Machines Corporation Method and system for automated network benchmark performance analysis
JPH06187275A (ja) * 1992-12-18 1994-07-08 Fujitsu Ltd サーバアプリケーションのテスト方法
US5513315A (en) * 1992-12-22 1996-04-30 Microsoft Corporation System and method for automatic testing of computer software
US5371889A (en) * 1993-04-22 1994-12-06 Digital Equipment Corporation Journalling optimization system and method for distributed computations
US5548718A (en) * 1994-01-07 1996-08-20 Microsoft Corporation Method and system for determining software reliability
US5408408A (en) * 1994-02-22 1995-04-18 Marsico, Jr.; Michael Apparatus and method for electronically tracking and duplicating user input to an interactive electronic device
US6226785B1 (en) * 1994-09-30 2001-05-01 Apple Computer, Inc. Method and apparatus for storing and replaying creation history of multimedia software or other software content
US5745767A (en) * 1995-03-28 1998-04-28 Microsoft Corporation Method and system for testing the interoperability of application programs
US6138252A (en) * 1996-07-01 2000-10-24 Sun Microsystems, Inc. Graphical test progress monitor
CA2190043C (en) * 1996-11-12 2001-10-16 Don E. Hameluck Buffered screen capturing software tool usability testing of computer applications
AU681841B3 (en) * 1996-11-21 1997-09-04 User Interface Metrics Pty Ltd Usability evaluation system
US6158019A (en) * 1996-12-15 2000-12-05 Delta-Tek Research, Inc. System and apparatus for merging a write event journal and an original storage to produce an updated storage using an event map
US5960196A (en) * 1996-12-18 1999-09-28 Alcatel Usa Sourcing, L.P. Software release metric reporting system and method
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US5890154A (en) * 1997-06-06 1999-03-30 International Business Machines Corp. Merging database log files through log transformations
US5940618A (en) * 1997-09-22 1999-08-17 International Business Machines Corporation Code instrumentation system with non intrusive means and cache memory optimization for dynamic monitoring of code segments
US6587969B1 (en) * 1998-06-22 2003-07-01 Mercury Interactive Corporation Software system and methods for testing the functionality of a transactional server
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
DE10029346A1 (de) * 2000-06-20 2002-03-28 Bosch Gmbh Robert Verfahren und Vorrichtung für die Optimierung eines Testprogramms
US7370315B1 (en) * 2000-11-21 2008-05-06 Microsoft Corporation Visual programming environment providing synchronization between source code and graphical component objects
US7284194B2 (en) * 2001-10-23 2007-10-16 Sun Microsystems, Inc. XML based report generator
US7870431B2 (en) * 2002-10-18 2011-01-11 Computer Associates Think, Inc. Transaction tracer
US7921333B2 (en) * 2003-03-19 2011-04-05 Jds Uniphase Corporation Method and systems for providing data replay, reprocess and retrigger functions in an analyzer
US7379600B2 (en) * 2004-01-28 2008-05-27 Microsoft Corporation Method and system for automatically determining differences in a user interface throughout a development cycle
US7296184B2 (en) * 2004-01-28 2007-11-13 Microsoft Corporation Method and system for masking dynamic regions in a user interface to enable testing of user interface consistency
DE102004028526A1 (de) * 2004-06-11 2006-01-12 T-Mobile Deutschland Gmbh Verfahren zur automatisierten Durchführung von Tests an Computerprogrammen
US7653721B1 (en) 2004-10-29 2010-01-26 Sun Microsystems, Inc. Mechanism for capturing high level events on user interface components
US7676508B2 (en) * 2004-11-10 2010-03-09 Microsoft Corporation Method and system for recording and replaying input-output requests issued by a user-mode program
US7702958B2 (en) * 2005-05-24 2010-04-20 Alcatel-Lucent Usa Inc. Auto-recording tool for developing test harness files
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
ES2388747T3 (es) * 2007-07-10 2012-10-18 Siemens Aktiengesellschaft Distribuidor giratorio para el control del caudal de vapor en una turbina de vapor
US8001468B2 (en) * 2007-09-19 2011-08-16 Sap Ag Method and system for accelerating test automation of software applications
JP2009134406A (ja) * 2007-11-29 2009-06-18 Nomura Research Institute Ltd コンピュータプログラムの実行結果を検証するためのテスト装置及び方法
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8463109B2 (en) * 2008-01-07 2013-06-11 Black Mariah, Inc. Editing digital film
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
JP5381179B2 (ja) * 2008-06-06 2014-01-08 株式会社リコー 画像処理装置
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
EP2246788A1 (de) * 2009-04-29 2010-11-03 Optofidelity OY Verfahren, System und ein Computerprogramm zum Testen einer Benutzeroberflächenfunktionalität
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8312322B2 (en) * 2009-11-12 2012-11-13 Siemens Medical Solutions Usa, Inc. System for automated generation of computer test procedures
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
CN102262582A (zh) * 2010-05-25 2011-11-30 芯讯通无线科技(上海)有限公司 移动终端及其内存泄露检测方法
US8855961B2 (en) 2010-06-01 2014-10-07 United States Of America As Represented By The Secretary Of The Navy Binary definition files
US8429459B2 (en) * 2010-07-28 2013-04-23 Sap Ag Use of attribute sets for test entity identification during software testing
US8578340B1 (en) 2010-09-24 2013-11-05 Ca, Inc. Recording and replaying computer program execution with recorded execution event breakpoints
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US8689214B2 (en) * 2011-03-24 2014-04-01 Amazon Technologies, Inc. Replication of machine instances in a computing environment
US8577842B1 (en) 2011-09-19 2013-11-05 Amazon Technologies, Inc. Distributed computer system snapshots and instantiation thereof
US20120303570A1 (en) * 2011-05-27 2012-11-29 Verizon Patent And Licensing, Inc. System for and method of parsing an electronic mail
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
JP5648186B2 (ja) * 2011-08-22 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation トランザクションを再生するためのデータを生成する装置及び方法
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US9122798B2 (en) * 2013-03-07 2015-09-01 Oracle International Corporation Debugger with method restart capability
US9703679B2 (en) * 2013-03-14 2017-07-11 International Business Machines Corporation Probationary software tests
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
CN110442699A (zh) 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9268670B1 (en) * 2013-08-08 2016-02-23 Google Inc. System for module selection in software application testing including generating a test executable based on an availability of root access
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
CN106484605A (zh) * 2015-08-28 2017-03-08 中兴通讯股份有限公司 一种实现软件自动化测试的方法和系统
US9959197B2 (en) * 2015-08-31 2018-05-01 Vmware, Inc. Automated bug detection with virtual machine forking
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
CN110858174A (zh) * 2018-08-24 2020-03-03 山东华软金盾软件股份有限公司 一种移动设备聊天软件的图片审计方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1268557A (en) * 1986-04-01 1990-05-01 Mikio Tomioka Method for displaying program executing circumstances and an apparatus using the same
US4819233A (en) * 1987-04-08 1989-04-04 Westinghouse Electric Corp. Verification of computer software
IE60444B1 (en) * 1988-03-30 1994-07-13 Elverex Ltd A software verification apparatus
US5063535A (en) * 1988-11-16 1991-11-05 Xerox Corporation Programming conflict identification system for reproduction machines

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0632377A1 (de) * 1993-06-30 1995-01-04 Microsoft Corporation Verfahren zur Überprüfung eines nachrichtengesteuerten Betriebssystems
US5574854A (en) * 1993-06-30 1996-11-12 Microsoft Corporation Method and system for simulating the execution of a computer program
DE19940306A1 (de) * 1999-08-25 2001-03-08 Siemens Ag Verfahren zum Testen eines Programmsystems sowie zugehörige Datenverarbeitungsanlage und zugehöriges Programm
DE19940306B4 (de) * 1999-08-25 2008-06-05 Fujitsu Siemens Computers Gmbh Verfahren und Datenverarbeitungsanlage zum Testen eines Programmsystems
WO2010063543A1 (de) * 2008-12-02 2010-06-10 Siemens Aktiengesellschaft Einrichtung zum testen einer vorrichtung

Also Published As

Publication number Publication date
US5157779A (en) 1992-10-20
JPH05346875A (ja) 1993-12-27
JP3407809B2 (ja) 2003-05-19
DE4118454C2 (de) 2001-03-01

Similar Documents

Publication Publication Date Title
DE4118454C2 (de) System zum automatischen Testen von Anwendersoftware
DE4108590C2 (de) Verfahren zum Benchmark-Testen der Arbeitsgeschwindigkeit eines Computersystem
DE69720821T2 (de) Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle
DE10051645B4 (de) Prozesssteuersystem und Verfahren zum Kontrollieren eines Prozesses
DE69823682T2 (de) Verfahren und gerät zur analyse von daten
DE69629120T2 (de) Lesehilfe
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
EP0904548B1 (de) Testsystem und testverfahren
DE10241400B4 (de) Verfahren zum Verwalten eines sequentiellen Prozesses unter Verwendung einer graphischen Benutzerschnittstelle
DE69723489T2 (de) Verfahren und System zur Verwaltung von Bau- und Produktionsinformation
DE69828800T2 (de) Herstellungschnittstelle für ein integriertes schaltungsprüfsystem
US7523391B1 (en) Indicating change to data form
DE102005016561B4 (de) Verfahren und Vorrichtung zur strukturierten Erfassung und Bearbeitung von in einem System auftretenden Problemen
DE19706512A1 (de) Echtzeit-Ereignisanordnung in einem elektronischen Ablaufdiagramm
DE19957780A1 (de) Quellcode-Editierung in einer grafischen hierarchischen Umgebung
DE19844013A1 (de) Strukturierter Arbeitsordner
DE19959765B4 (de) Datei-Editor für mehrere Datenuntermengen
DE10135445A1 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE10240883A1 (de) Verfahren zum Erfassen eines unbegrenzten Wachstums verketteter Listen in einer laufenden Anwendung
DE19741358A1 (de) Verallgemeinertes Verfahren zum Trennen von charakteristischen Multimediamerkmalen von einem Multimediatitel unter Verwendung einer Multimedia-Softwaremaschine
DE10144390A1 (de) Visualisierung eines Vergleichsergebnisses mindestens zweier in Verzeichnisbäumen organisierter Datenstrukturen
DE10151648B4 (de) Verfahren und Vorrichtung zum Erfassen und Speichern von während einer computerbasierten Sitzung gemachten Notizen
EP3364257B1 (de) Verfahren zum betrieb eines engineering-systems für ein industrielles prozessautomatisierungssystem und steuerungsprogramm
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
WO2005078564A1 (de) Visualisierung von strukturierten daten

Legal Events

Date Code Title Description
8141 Disposal/no request for examination
8110 Request for examination paragraph 44
8170 Reinstatement of the former position
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee