Tutorial. Bibliothek AutoGUITest V1.0. Windows-Benutzeroberflächen automatisiert testen. Ausgabe: 6.6.02. 06.06.02 / 13:51 Seite 1



Ähnliche Dokumente
Einführung zum Arbeiten mit Microsoft Visual C Express Edition

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Durchführung der Datenübernahme nach Reisekosten 2011

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Tritt beim Aufruf ein Fehler aus, so wird eine MessageBox mit dem Fehlercode und der Kommandozeile angezeigt.

104 WebUntis -Dokumentation

Datenexport aus JS - Software

Stammdatenanlage über den Einrichtungsassistenten

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Beitragseinzüge mit SPG-Verein - Anleitung -

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

StudyDeal Accounts auf

Erstellen von x-y-diagrammen in OpenOffice.calc

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Einführung in TexMaker

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Dokumentation IBIS Monitor

Um das Versenden von Anhängen an s zu ermöglichen, wurde der Assistent für die Kommunikation leicht überarbeitet und wo nötig verbessert.

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Desktop.ini Maker Benutzerhandbuch

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Benachrichtigungen verwalten. Mike McBride Deutsche Übersetzung: Frank Schütte

Wie kann ich meine Daten importieren? Wie kann ich meine Profile verwalten?

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Import und Export von Übergängern

Sage50. Rechnungswesen. Geschäftsjahreswechsel. e Schweiz AG

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Verarbeitung von SEPA-XML-Dateien aus PC-VAB in ebanking business

Schulberichtssystem. Inhaltsverzeichnis

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

32.4 Anpassen von Menüs und Symbolleisten 795i

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

NEUES BEI BUSINESSLINE WINDOWS

Erweiterungen Webportal

Serienbrief mit Word erstellen

Um eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:

Word 2010 Schnellbausteine

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Informationen zur Verwendung von Visual Studio und cmake

Qt-Projekte mit Visual Studio 2005

Installation OMNIKEY 3121 USB

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Update VR-NetWorld-Software 3.34 PROFILWECHSEL SICHERHEITSDATEI (ALT) NACH SICHERHEITSDATEI (NEU) Anleitung nur für Versionen ab 3.34.

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Import, Export und Löschung von Zertifikaten mit dem Microsoft Internet Explorer

UpToNet Installationsanleitung Einzelplatz und Netzwerk

Das Modul ARTIKEL-BARCODE ermöglicht den Druck von Barcode-Etiketten der EAN-Codes 8 und 13.

Anleitung Einrichtung Datenschnittstelle VereinsWK <-> SiusData

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Arbeitsabläufe FinanzProfiT Version 4.25

ecaros2 - Accountmanager

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Servername: Servername für FTP ftp.ihre-domain.de Benutzername: Username für FTP Mustername Passwort: Passwort mus44ter

Hilfe zur Urlaubsplanung und Zeiterfassung

Inventarverwaltung mit Access 2007/10

Im vorliegenden Tutorial erfahren Sie, wie Sie in myfactory Postfächer für den Posteingang und den Postausgang anlegen.

Eltako-FVS. Lizenzaktivierung ohne Internetverbindung

mybev Shop des e-geodata Austria Portal

Attribut-Zertifikat importieren zur Nutzung in Sign Live! CC

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

Ein + vor dem Ordnernamen zeigt an, dass der Ordner weitere Unterordner enthält. Diese lassen sich mit einem Klick (linke Maustaste) anzeigen.

Gebrüder Weiss Internet Auftrag Portal

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Schritt für Schritt Anleitung zur Installation des Programmpaketes HBS + EASYHBS + KSL

Kurzanleitung MAN E-Learning (WBT)

Arbeiten mit UMLed und Delphi

Seriendruck mit der Codex-Software

Anforderungsanalyse: Tutor

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Outlook Erstellen einer aus einer HTML - Vorlage INHALT

GPS Garmin MapSource - Track erstellen und nutzen

BELIEBIG GROßE TAPETEN

ARAkoll 2013 Dokumentation. Datum:

Treppensoftware Programme. Hilfe - 3D Plus Online. konstruieren/präsentieren

BILDARCH LAN. 1 Einleitung. 2 Installation Übersicht. Server

Anleitung OpenCms 8 Webformular Auswertung

Download, Installation und Autorisierung der Lasergene Software. Bitte unbedingt beachten!

TimeControl. Echtzeiterfassung von Aufgaben mit Outlook Installationsanweisung und Bedienung

KeePass Anleitung. 1.0Allgemeine Informationen zu Keepass. KeePass unter Windows7

Bedienungsanleitung Albumdesigner. Neues Projekt: Bestehendes Projekt öffnen:

Produktschulung WinDachJournal

Dokumentenverwaltung

TR75E002-A FA / Bedienungsanleitung Industrie-Handsender-Verwaltung IHV DEUTSCH

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Dokument Lob erstellen

Customer and Project Services. Teilnehmerunterlagen Aktivitäten

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

GSD-Radionik iradionics Android-App

Umleiten von Eigenen Dateien per GPO

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Schadendaten via GDV an die Nürnberger übertragen

Stand: Adressnummern ändern Modulbeschreibung

Bedienung des Web-Portales der Sportbergbetriebe

Erste Schritte mit Sfirm32 und itan

Anwahlprogramm. zur. Modem-Schnittstelle TH004

Veränderung in der VR-NetWorld Software Was ist neu?

Mediator 9 - Lernprogramm

Transkript:

Bibliothek AutoGUITest V1.0 Windows-Benutzeroberflächen automatisiert testen Tutorial Ausgabe: 6.6.02 06.06.02 / 13:51 Seite 1

Inhalt 1 Übersicht...3 2 Funktionsweise...3 3 Funktionsumfang...3 4 Einsatz von AutoGUITest...4 4.1 Übersicht... 4 4.2 TestApp: Die Software, die getestet werden soll... 4 4.2.1 Aufbau... 4 4.2.2 Was soll getestet werden?... 4 4.3 Erstellen der AutoGUITest-Applikation... 5 4.3.1 Schritt 1: Erstellen des MFC-Projekts... 5 4.3.2 Schritt 2: Schalter für Start des Tests platzieren... 6 4.3.3 Schritt 3: Methode für den Start der AutoGUITest-Funktion erzeugen... 7 4.3.4 Schritt 4: Einbinden von.h und.lib-dateien... 8 4.4 Erstellen des AutoGUITests... 10 4.4.1 Allgemeines... 10 4.4.2 Initialisierung von AutoGUITest... 10 4.4.3 Pointer auf Applikation bestimmen... 10 4.4.4 Resultat des Tests auswerten... 11 4.4.5 Dialog oder Fenster über Menupunkt öffnen... 12 4.4.6 Wert in Eingabefeld eines Dialogs schreiben... 13 4.4.7 Schalter betätigen... 14 4.4.8 Meldungsfenster prüfen... 15 4.5 Durchführen des AutoGUITests... 16 06.06.02 / 13:51 Seite 2

1 Übersicht Mit der Bibliothek AutoGUITest können unter Visual C++ einfach automatisierte Tests für Benutzeroberflächen von Windows-Applikationen implementiert werden. Besonders ideal dürfte die Bibliothek für Entwickler sein, welche Visual C++ bereits für die Implementation von Windows-Applikationen einsetzen. Sie können die automatisierten Tests in derselben Umgebung (Visual Studio) entwickeln, mit der sie täglich arbeiten. AutoGUITest ist als herkömmliche DLL realisiert und verfügt deshalb nach aussen über normale Funktionsaufrufe. 2 Funktionsweise Die Funktionen der Bibliothek AutoGUITest erlauben den Zugriff auf die Fenster, Dialoge, Eingabefelder, Schalter, Menus und Meldungstexte einer beliebigen Windows-Applikation. Für den automatisierten Test wird mit Visual C++ eine Applikation entwickelt, welche über die Funktionen von AutoGUITest die zu testende Applikation fernsteuert. Der automatische Test wird Schritt für Schritt durchgeführt, bis das Ende des Tests erreicht ist oder bis ein Fehler auftritt. Fehler bedeutet in diesem Fall, dass sich die zu testende Software nicht so verhalten hat, wie das im Test erwartet wurde. Wenn ein Fehler auftritt, werden die Nummer des Testschritts und der Fehlercode gespeichert. 3 Funktionsumfang Die Version 1.0 von AutoGUITest unterstützt Funktion für den Test von Benutzeroberflächen mit folgenden Eingabefelder, Schalter und Menus: Statisches Textfeld (CStatic). Textfeld (CEdit) Menu (CMenu) Schalter (CButton) Kontrollkästchen (CheckBox, CButton) Auswahlfeld (CComboBox) Auswahlliste (CListBox) Die verfügbaren Funktionen sind in der Online-Referenz ausführlich beschrieben. Die Bibliothek wird laufend erweitert. 06.06.02 / 13:51 Seite 3

4 Einsatz von AutoGUITest 4.1 Übersicht Im folgenden Beispiel werden einige Funktionen von AutoGUITest in einer MFC-Applikation (Dialogfeldbasierend) eingebunden. Getestet werden soll ein einfacher Dialog einer SDI- Applikation. Das Beispiel wird in Visual C++ 6.0 realisiert. 4.2 TestApp: Die Software, die getestet werden soll 4.2.1 Aufbau Die Software TestApp ist eine SDI-Applikation, welche über den Dialog Testdialog verfügt. Der Dialog Testdialog wird über den Menupunkt Test / Dialog (ID = 32771) geöffnet. Der Dialog enthält ein einziges Eingabefeld (CEdit, ID = 1000), in welches eine Zeichenkette erfasst werden muss, bevor der Dialog über den Schalter OK geschlossen werden kann. Wenn kein Wert im Eingabefeld erfasst und der Schalter OK betätigt wird, so wird eine Fehlermeldung (Titel: Information; Meldungstexte: Eine Eingabe ist erforderlich!) angezeigt. 4.2.2 Was soll getestet werden? Der AutoGUITest soll in den folgenden Schritten ablaufen: 1. Testen, ob TestApp gestartet wurde. 2. Über den Menupunkt Test / Dialog den Dialog Testdialog öffnen. 3. Text in Eingabefeld eingeben. Prüfen ob der Text in das Eingabefeld geschrieben wurde. 4. Schalter OK betätigen. 5. Dialog Testdialog nochmals über das Menu öffnen. 6. Kein Text in Eingabefeld schreiben und Schalter OK betätigen. 7. Fehlermeldung prüfen, anschliessend Meldungsfenster über Schalter schliessen. 8. Resultat des AutoGUITests ausgeben. 06.06.02 / 13:51 Seite 4

4.3 Erstellen der AutoGUITest-Applikation 4.3.1 Schritt 1: Erstellen des MFC-Projekts Das MFC-Projekt wird mit dem MFC-Anwendungs-Assistenten (.exe) erstellt. Nach der Wahl des Menupunkts Datei / Neu wird der Dialog Neu angezeigt. Nach der Definition des Projektnamens und der Wahl eines Pfades kann der Schalter OK betätig werden. Der Dialog MFC-Anwendungs-Assistent - Schritt 1 wird angezeigt. Nach der Wahl des Punktes Dialogfeldbasierend kann der Schalter Fertigstellen betätigt werden. 06.06.02 / 13:51 Seite 5

Der Dialog Informationen zum neuen Projekt wird angezeigt. Nach der Betätigung des Schalters OK wird das Projekt erzeugt. 4.3.2 Schritt 2: Schalter für Start des Tests platzieren Der AutoGUITest soll über den Schalter Start gestartet werden. Der Schalter wird mit dem Ressourceneditor auf dem Dialog CAutoGUITestPrgDlg platziert. 06.06.02 / 13:51 Seite 6

Im Dialog Schaltfläche Eigenschaften wird die ID des Schalters auf IDC_START gesetzt. 4.3.3 Schritt 3: Methode für den Start der AutoGUITest-Funktion erzeugen Mit dem Klassen-Assistent wird die Member-Funktion OnStart (Message BN_CLICKED) erzeugt. Erzeugt wird der untenstehende Quellcode. 06.06.02 / 13:51 Seite 7

4.3.4 Schritt 4: Einbinden von.h und.lib-dateien Die Datei AutoGUITest.h muss zum Projekt hinzugefügt werden. Im Fenster Arbeitsbereich wird zu diesem Zweck der Eintrag AutoGUITestPrg Dateien markiert und anschliessend die rechte Maustaste betätigt. Nach der Wahl des Menupunktes Dateien zu Projekt hinzufügen wird der Dialog Dateien in Projekt einfügen geöffnet. In diesem Dialog kann die Datei AutoGUITest.h ausgewählt werden. Nach der Betätigung des Schalters OK wird die Datei AutoGUITest.h in das Projekt eingefügt. Die Datei AutoTestGUI.h wird mit einem #include in die Datei AutoGUITestPrgDlg.cpp eingebunden. 06.06.02 / 13:51 Seite 8

Damit der Compiler die Datei AutoGUITest.h finden kann, muss in den Projekteinstellungen im Tab C/C++ in der Kategorie Präprozessor im Eingabefeld Zusätzliche Include- Verzeichnisse der Pfad auf das Verzeichnis erfasst werden, in welchem sich die Datei AutoGUITest.h befindet. Bevor der eigentliche AutoGUITest implementiert werden kann, muss nun nur noch die.lib-datei eingebunden werden. In den Projekteinstellungen muss im Tab Linker in der Kategorie Allgemein im Eingabefeld Objekt-/Bibliothek-Module der vollständige Name (inkl. Laufwerk und Pfad) der Datei AutoGUITest.lib erfasst werden. 06.06.02 / 13:51 Seite 9

4.4 Erstellen des AutoGUITests 4.4.1 Allgemeines Bei der Erstellung eines AutoGUITests müssen folgende Punkte beachtet werden: AutoGUITest speichert den Status des Tests in einer eigenen Statusvariable. Wenn ein Fehler auftritt, werden alle nachfolgenden Testschritte nicht ausgeführt. Somit genügt es im Prinzip, wenn der Status am Ende des AutoGUITests abgefragt wird. Jedem Testschritt wird eine eindeutige Nummer zugewiesen. Mit Hilfe dieser Nummer kann der Testschritt bestimmt werden, beim dem sich die zu testende Applikation nicht wie erwartet verhalten hat. 4.4.2 Initialisierung von AutoGUITest Die Initialisierung eines AutoGUITests erfolgt durch den Aufruf der Funktion AgtInit(). Im Quellcode: // Test starten void CAutoGUITestPrgDlg::OnStart() // AutoGUITest initialisieren AgtInit(this); 4.4.3 Pointer auf Applikation bestimmen Als erster Schritt eines AutoGUITest muss immer der Pointer auf die zu testende Applikation bestimmte werden. Die Funktion AgtGetWndApp(...) liefert den Pointer auf die Applikation. Im Quellcode: // Test starten void CAutoGUITestPrgDlg::OnStart() // Deklarationen CWnd* powndapp = NULL; // AutoGUITest initialisieren AgtInit(this); // Pointer auf Applikation powndapp = AgtGetWndApp(1, "TestApp"); if (powndapp!= NULL) // Hier beginnt der eigentliche Test // Zu testende Applikation muss gestartet werden this->messagebox("starten Sie bitte TestApp!"); Bemerkungen: Der Pointer auf eine Applikation wird über den in der Titelzeile der Applikation angezeigten Namen ermittelt ( TestApp im Quellcode). 06.06.02 / 13:51 Seite 10

4.4.4 Resultat des Tests auswerten Das Resultat eines AutoGUITests wird als letzte Aktion eines Tests durchgeführt. Wenn alle Testschritte fehlerfrei abgearbeitet wurden, wird die Anzahl der erfolgreich durchgeführten Testschritte am Bildschirm ausgegeben. Im Fehlerfall wird die Nummer des Testschritts ausgegeben, in dem der Fehler aufgetreten ist. Zusätzlich wird der Code des Fehlers angezeigt. Im Quellcode: // Test starten void CAutoGUITestPrgDlg::OnStart() // Deklarationen CWnd* powndapp = NULL; CWnd* podlg = NULL; CString omsg; // AutoGUITest initialisieren AgtInit(this); // Pointer auf Applikation powndapp = AgtGetWndApp(1, "TestApp"); if (powndapp!= NULL) // Ergebnis des AutoGUITests auswerten if (AgtGetState()!= AGT_STATE_OK) omsg.format("fehler %d in Testschritt %d!", AgtGetState(), AgtGetTestNr()); omsg.format("erfolgreich ausgeführte Testschritte: %d", AgtGetTestStepCnt()); // Zu testende Applikation muss gestartet werden this->messagebox("starten Sie bitte die Applikation TestApp!"); 06.06.02 / 13:51 Seite 11

4.4.5 Dialog oder Fenster über Menupunkt öffnen Für die Betätigung von Menupunkten stehen folgende Funktionen zur Verfügung: AgtMenuSelectAppSend() AgtMenuSelectAppPost() AgtMenuSelectWndSend() AgtMenuSelectWndPost() Die Funktionen AgtMenuSelectApp... werden für die Betätigung eines Menupunktes auf Applikationsebene verwendet, während die Funktionen AgtMenuSelectWnd... für die Betätigung eines Menupunktes aus einem Fenster (MDI oder SDI) oder einem Dialog verwendet werden. Die Funktionen AgtMenuSelect...Send wird verwendet, wenn mit der Ausführung des nächsten AutoGUITests gewartet werden kann, bis die Operation vollständig ausgeführt ist. Anwendung, z.b. öffnen eines Fensters. Die Funktionen AgtMenuSelect...Post wird verwendet, wenn mit der Ausführung des nächsten AutoGUITests nicht gewartet werden kann, bis die Operation vollständig ausgeführt ist. Anwendung, z.b. öffnen eines Dialogs. Im Quellcode: // Test starten void CAutoGUITestPrgDlg::OnStart() // Deklarationen CWnd* powndapp = NULL; CWnd* podlg = NULL; CString omsg; // AutoGUITest initialisieren AgtInit(this); // Pointer auf Applikation powndapp = AgtGetWndApp(1, "TestApp"); if (powndapp!= NULL) // Dialog über Menu öffnen AgtMenuSelectWndPost(2, powndapp, ID_MENU_TEST_DIALOG); podlg = AgtGetDlg(3, "Testdialog"); // Ergebnis des AutoGUITests auswerten if (AgtGetState()!= AGT_STATE_OK) omsg.format("fehler %d in Testschritt %d!", AgtGetState(), AgtGetTestNr()); omsg.format("erfolgreich ausgeführte Testschritte: %d", AgtGetTestStepCnt()); // Zu testende Applikation muss gestartet werden this->messagebox("starten Sie bitte die Applikation TestApp!"); ID_MENU_TEST_DIALOG enthält die ID des Menupunktes Test / Dialog des zu testenden Programms TestApp. 06.06.02 / 13:51 Seite 12

4.4.6 Wert in Eingabefeld eines Dialogs schreiben Mit der Funktion AgtTextSet kann eine Zeichenkette in ein Eingabefeld (CEdit), in eine Textfeld (CStatic) geschrieben oder der Titel eines Fensters/Dialogs gesetzt werden. Mit der Funktion AgtTextGet kann eine Zeichenkette aus einem Eingabefeld (CEdit), aus einem Textfeld (CStatic) ausgelesen oder der Titel eines Fensters/Dialogs bestimmt werden. Mit den Funktionen AgtTextCheck, AgtTextCheckBool und AgtTextEmpty kann geprüft werden, ob ein Eingabefelde (CEdit) oder eine Textfeld (CStatic) die erwartete Zeichenkette enthält oder leer ist. Im Quellcode: // Test starten void CAutoGUITestPrgDlg::OnStart() // Deklarationen CWnd* powndapp = NULL; CWnd* podlg = NULL; CString omsg; CString otmp; // AutoGUITest initialisieren AgtInit(this); // Pointer auf Applikation powndapp = AgtGetWndApp(1, "TestApp"); if (powndapp!= NULL) // Dialog über Menu öffnen AgtMenuSelectWndPost(2, powndapp, ID_MENU_TEST_DIALOG); podlg = AgtGetDlg(3, "Testdialog"); // Text "Das ist ein Test" in Textfeld schreiben und // testen, ob das Feld den Wert wirklich enthält. otmp = "Das ist ein Test"; AgtTextSet(4, podlg, IDC_TD_EDIT, otmp); AgtTextCheck(5, podlg, IDC_TD_EDIT, otmp); // Ergebnis des AutoGUITests auswerten if (AgtGetState()!= AGT_STATE_OK) omsg.format("fehler %d in Testschritt %d!", AgtGetState(), AgtGetTestNr()); omsg.format("erfolgreich ausgeführte Testschritte: %d", AgtGetTestStepCnt()); // Zu testende Applikation muss gestartet werden this->messagebox("starten Sie bitte die Applikation TestApp!"); ID_TD_EDIT enthält die ID des Eingabefeldes, in das der Wert geschrieben werden soll. Das Eingabefeld befindet sich im Dialog Testdialog der zu testenden Software TestApp. 06.06.02 / 13:51 Seite 13

4.4.7 Schalter betätigen Für die Betätigung eines Schalters in einem Fenster oder einem Dialog stehen die Funktionen AgtButtonSelectPost und AgtButtonSelectSend zur Verfügung. AgtButtonSelectPost wird verwendet, wenn im Testprogramm die Ausführung nach der Betätigung des Schalters sofort fortgesetzt werden soll. Diese Funktion muss verwendete werden, wenn z.b. über einen Schalter ein Dialog geöffnet wird oder wenn über einen Schalter eine Plausibilitätsprüfung gestartet wird, welche Fehlermeldungen generieren kann. AgtButtonSelectSend wird verwendet, wenn im Testprogramm die Ausführung nach der Betätigung des Schalters erst fortgesetzt werden soll, wenn die Funktion im zu testenden Programm abgeschlossen ist. Im Quellcode: // Test starten void CAutoGUITestPrgDlg::OnStart() // Deklarationen CWnd* powndapp = NULL; CWnd* podlg = NULL; CString omsg; CString otmp; // AutoGUITest initialisieren AgtInit(this); // Pointer auf Applikation powndapp = AgtGetWndApp(1, "TestApp"); if (powndapp!= NULL) // Dialog über Menu öffnen AgtMenuSelectWndPost(2, powndapp, ID_MENU_TEST_DIALOG); podlg = AgtGetDlg(3, "Testdialog"); // Text "Das ist ein Test" in Textfeld schreiben und // testen, ob das Feld den Wert wirklich enthält. otmp = "Das ist ein Test"; AgtTextSet(4, podlg, IDC_TD_EDIT, otmp); AgtTextCheck(5, podlg, IDC_TD_EDIT, otmp); // Schalter OK betätigen; Dialog wird geschlossen AgtButtonSelectPost(6, podlg, IDOK); // Ergebnis des AutoGUITests auswerten if (AgtGetState()!= AGT_STATE_OK) omsg.format("fehler %d in Testschritt %d!", AgtGetState(), AgtGetTestNr()); omsg.format("erfolgreich ausgeführte Testschritte: %d", AgtGetTestStepCnt()); // Zu testende Applikation muss gestartet werden this->messagebox("starten Sie bitte die Applikation TestApp!"); 06.06.02 / 13:51 Seite 14

4.4.8 Meldungsfenster prüfen Wenn in der Software TestApp im Dialog Testdialog keine Eingabe in das Feld Eingabefeld vorgenommen wurde und der Schalter OK betätigt wird, wird die Fehlermeldung Eine Eingabe ist erforderlich! angezeigt. Mit der Funktion AgtMsgCheck (oder AgtMsgCheckBool) wird geprüft, ob eine Meldung mit dem richtigen Meldungstext angezeigt wird. Weiter wird mit dieser Funktion festgelegt, über welchen Schalter das Meldungsfenster geschlossen werden soll. Im Quellcode: // Test starten void CAutoGUITestPrgDlg::OnStart() // Deklarationen CWnd* powndapp = NULL; CWnd* podlg = NULL; CString omsg; CString otmp; // AutoGUITest initialisieren AgtInit(this); // Pointer auf Applikation powndapp = AgtGetWndApp(1, "TestApp"); if (powndapp!= NULL) // Dialog über Menu öffnen AgtMenuSelectWndPost(2, powndapp, ID_MENU_TEST_DIALOG); podlg = AgtGetDlg(3, "Testdialog"); // Text "Das ist ein Test" in Textfeld schreiben und // testen, ob das Feld den Wert wirklich enthält. otmp = "Das ist ein Test"; AgtTextSet(4, podlg, IDC_TD_EDIT, otmp); AgtTextCheck(5, podlg, IDC_TD_EDIT, otmp); // Schalter OK betätigen; Dialog wird geschlossen AgtButtonSelectPost(6, podlg, IDOK); // Dialog nochmals über Menu öffnen AgtMenuSelectWndPost(7, powndapp, ID_MENU_TEST_DIALOG); podlg = AgtGetDlg(8, "Testdialog"); // Schalter OK betätigen // - Fehlermeldung muss angezeigt werden, // - Dialog bleibt offen AgtButtonSelectPost(9, podlg, IDOK); // Testen, ob Meldung ausgebenen wird AgtMsgCheck(10, "Information", "Eine Eingabe ist erforderlich!", IDCANCEL); // Text in Eingabefeld schreiben otmp = "Noch ein Test"; AgtTextSet(11, podlg, IDC_TD_EDIT, otmp); // Schalter OK betätigen // - Dialog wird geschlossen AgtButtonSelectPost(9, podlg, IDOK); // Ergebnis des AutoGUITests auswerten if (AgtGetState()!= AGT_STATE_OK) omsg.format("fehler %d in Testschritt %d!", AgtGetState(), AgtGetTestNr()); omsg.format("erfolgreiche Testschritte: %d", AgtGetTestStepCnt()); 06.06.02 / 13:51 Seite 15

// Zu testende Applikation muss gestartet werden this->messagebox("starten Sie bitte die Applikation TestApp!"); 4.5 Durchführen des AutoGUITests Nach dem fehlerfreien Komplieren/Linken der AutoGUITest-Applikation erfolgt der Test in den folgenden Schritten: 1. Programm TestApp starten 2. Programm AutoGUITestPrg starten 3. Im Programm AutoGUITestPrg den Schalter Start betätigen Der Test wird gestartet und durchgeführt. 4. Nach dem erfolgreichen Abschluss des Test wird die folgende Meldung angezeigt: Im Fehlerfall wird folgende Meldung angezeigt: In diesem Beispiel enthielt in Testschritt 5 das Eingabefeld nicht den erwarteten Text. 06.06.02 / 13:51 Seite 16