DE10255125A1 - Dezentralisierte Automatische Testung von Grafischen Benutzerschnittstellen(GUI) von Software - Google Patents

Dezentralisierte Automatische Testung von Grafischen Benutzerschnittstellen(GUI) von Software

Info

Publication number
DE10255125A1
DE10255125A1 DE10255125A DE10255125A DE10255125A1 DE 10255125 A1 DE10255125 A1 DE 10255125A1 DE 10255125 A DE10255125 A DE 10255125A DE 10255125 A DE10255125 A DE 10255125A DE 10255125 A1 DE10255125 A1 DE 10255125A1
Authority
DE
Germany
Prior art keywords
test
software
decentralized
gui
software gui
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.)
Withdrawn
Application number
DE10255125A
Other languages
English (en)
Inventor
John Mathews
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.)
I2 Technologies Inc
Original Assignee
I2 Technologies 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 I2 Technologies Inc filed Critical I2 Technologies Inc
Publication of DE10255125A1 publication Critical patent/DE10255125A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

Ein Verfahren für die dezentralisierte automatische Testung von grafischen Benutzerschnittstellen (GUI) von Software beinhaltet die Pflege einer dezentralisierten Test-Warteschlange, in der multiple Software-GIU-Testinstanzen gespeichert sind, die von multiplen dezentralisierten Testdurchführung-Computern durchzuführen sind. Jeder dezentralisierte Testdurchführung-Computer beinhaltet eine Client-Plattform und ist jeweils mit einer oder mehreren Server-Plattformen verbunden. Gemeinsam bieten die Client-Plattformen und die Server-Plattformen multiple Client-Server-Kombinationen, für die Software-GUI-Testinstanzen durchgeführt werden könnten. Für jeden dezentralisierten Testdurchführung-Computer wird eine Anfrage für eine weitere Software-GUI-Testinstanz von einem bestimmten dezentralisierten Testdurchführung-Computer empfangen als Antwort auf den Abschluss einer vorhergehenden Software-GIU-Testinstanz durch den bestimmten dezentralisierten Testdurchführung-Computer und als Antwort wird die Software-GUI-Testinstanz aus der Testwarteschleife abgefragt. Die abgefragte Testinstanz wird an den bestimmten Testdurchführung-Computer übermittelt zur Testdurchführung für eine bestimmte Client-Server-Kombination unter Verwendung einer Testkomponente, die der bestimmte Testdurchführung-Computer unterstützt. Die Testkomponente führt eine automatische Software-GUI-Testung durch und erzeugt Testergebnisse für den betreffenden Test. Nach der Durchführung der Testinstanz wird ein ...

Description

  • Diese Erfindung beruft sich auf die Testung von grafische Benutzerschnittstellen (GUI) von Software im allgemeinen und auf die dezentralisierte automatische Software-GUI- Testung im besonderen.
  • Eine GUI ist ein wichtiger Bestandteil der meisten Softwareanwendungen. Die GUI stellt häufig den hauptsächlichen oder einzigen vorhandenen Mechanismus dar, mit dem ein Benutzer Eingaben vornehmen oder Ausgaben von der mit der GUI verbundenen Softwareanwendung erhalten kann. Für den erfolgreichen Betrieb der mit einer GUI verbundenen Softwareanwendung ist es daher wesentlich, dass die GUI korrekt und effizient funktioniert, so dass eine gründliche Testung der GUI in den meisten Instanzen unbedingt erforderlich ist. Zwar kann das Testen einer Software immer einen zeitaufwändigen Prozess darstellen, doch gilt dies in besonderem Maße für die GUI- Testung. Die GUI muss auf allen potenziellen Plattformen getestet werden, die häufig eine Vielzahl von Client-Server-Kombinationen umfassen. Außerdem muss bei der GUI- Testung häufig ein menschlicher Prüfer eine Vielzahl von Befehlen eingeben, mit denen Mausklicks, Tastatureingaben oder andere Operationen eines wirklichen Benutzer simuliert werden, um anschließend bestätigen zu können, dass die GUI das erwartete Ergebnis liefert. Dieser Prozess ist nicht nur zeitaufwändig und arbeitsintensiv, sondern unterliegt auch menschlichen Fehlern. Die Schwierigkeiten bei der Durchführung von GUI-Tests können zu einer Gefährdung der Qualität führen, da die zugehörigen Softwareanwendungen häufig sehr aggressiven Freigabe-Terminplänen unterliegen. Auf Grund der genannten oder weiterer Nachteile können frühere Software-GUI-Testtechniken für viele Zwecke ungeeignet sein.
  • Mit der vorliegenden Erfindung lassen sich die Nachteile und Probleme früherer Software- GUI-Testtechniken deutlich verringern oder gänzlich beseitigen.
  • In einer erfindungsgemäßen Ausführungsform besteht ein Verfahren für die dezentralisierte automatische Testung von grafische Benutzerschnittstellen (GUI) von Software aus der Pflege einer zentralisierten Test-Warteschlange, in der multiple Software-GUI- Testinstanzen gespeichert sind, die von multiplen dezentralisierten Testdurchführung- Computern durchzuführen sind. Jeder dezentralisierte Testdurchführung-Computer beinhaltet eine Client-Plattform und ist jeweils mit einer oder mehreren Server-Plattformen verbunden. Gemeinsam bieten die Client-Plattformen und die Server-Plattformen multiple Client-Server-Kombinationen, für die Software-GUI-Testinstanzen durchgeführt werden können. Für jeden dezentralisierten Testdurchführung-Computer wird eine Anfrage für eine weitere Software-GUI-Testinstanz von einem bestimmten dezentralisierten Testdurchführung-Computer empfangen als Antwort auf den Abschluss einer vorhergehenden Software-GUI-Testinstanz durch den bestimmten dezentralisierten Testdurchführung-Computer und als Antwort wird eine Software-GUI-Testinstanz aus der Testwarteschleife abgefragt. Die abgefragte Testinstanz wird für alle Testdurchführung Computer übermittelt, zum bestimmten dezentralisierten Testdurchführung-Computer- zur Durchführung für eine bestimmte Client-Server-Kombination unter Verwendung einer Testkomponente, die der bestimmten dezentralisierten Testdurchführung-Computer unterstützt. Die Testkomponente führt eine automatische Software-GUI-Testung durch und erzeugt Testergebnisse für den betreffenden Test. Als Antwort auf die Durchführung der Testinstanz wird ein Testergebnis des betreffenden dezentralisierten Testdurchführung- Computers für die Software-GUI-Testinstanz empfangen und für die Berichterstattung an ein oder mehrere Benutzer gespeichert.
  • Besondere Ausführungsformen der vorliegenden Erfindung können einen oder mehrere technische Vorteile bieten. Beispielsweise übernimmt bei gewissen Ausführungsformen der vorliegenden Erfindung eine zentralisierte Test-Server-Engine die effiziente Einsatzplanung, dezentralisierte Durchführung und Meldung der Ergebnisse der automatischen Software-GUI-Testung. Die Test-Server-Engine kann Prüfer in die Lage versetzen, die Testdurchführung zeitlich effizient zu planen, die Testdurchführung von fernbedienten oder anderen dezentralisierten Testdurchführung-Computern aus zu steuern, die Testergebnisse der Testdurchführung-Computer zu sammeln und die Testergebnisse im wesentlichen in Echtzeit automatisch zu berichten. Die Test-Server- Engine kann Skalierung für eine große Anzahl von dezentralisierten Testdurchführung- Computern ermöglichen und kann außerdem eine hohe Nutzungsrate für die einzelnen Testdurchführung-Computer innerhalb des Testnetzwerks gewährleisten. Durch Verteilung der Testdurchführung auf parallel laufende, dezentralisierte Testdurchführung- Computer kann eine deutliche Verringerung der Zyklusdauern bei der GUI-Testung herbeigeführt werden. Bei einem Beispiel ohne einschränkendende Wirkung wurde im Rahmen eines Projektes eine Test-Server-Engine, bei der Teile der vorliegenden Erfindung umgesetzt waren, mit 15 dezentralisierten Testdurchführung-Computern benutzt, um zwischen ungefähr fünfhundert und eintausend Tests pro Tag durchzuführen, wobei für jeden Testdurchführung-Computer eine Nutzungsrate von ungefähr 90 Prozent erreicht wurde und die Zyklusdauern bei der GUI-Testung von ungefähr einhundert Tagen auf ungefähr sechs Tage vernngert wurden. Außerdem können gewisse Ausführungsformen eine automatische Regressionstestung erleichtern und die GUI-Testung in verkürzten Software-Freigabezyklen besser unterstützen. Auf diese Weise könnten gewisse Ausführungsformen die Grundlage für eine gründlichere Testung und somit eine bessere Qualitätssicherung bieten, ohne die aggressive Verfolgung von Time-to-Market- Zielvorgaben einzuschränken. Gewisse Ausführungsformen könnten es ermöglichen, Softwareprodukte auf neuen Plattformen schneller zu zertifizieren.
  • Bei standardmäßigen dezentralisierten Testdurchführung-Verfahren wird eine statische Testeinsatzplanung verwendet. Bei der statischen Testeinsatzplanung werden sämtliche durchzuführenden Tests am Beginn des Testzyklus unter den verfügbaren Ressourcen aufgeteilt woraufhin die jeweiligen Computer die ihnen zugewiesenen Tests durchführen. Die statische Testeinsatzplanung gestaltet sich häufig ineffizient, da Schwankungen bei der Testdurchführungszeit, die auf die Eigenschaften der Tests und auf Schwankungen bei den Verarbeitungsleistungen der Computer beruhen, und dazu führen können, dass ein Computer die ihm zugewiesenen Tests zu einem weit früheren Zeitpunkt als andere Computer beendet, so dass der erste Computer sich im Wartezustand befindet, während andere Computer überlastet sind. Im Gegensatz dazu bieten gewisse erfindungsgemäße Ausführungsformen eine dynamische Einsatzplanung, bei der dezentralisierte Testdurchführung-Computer mit unterschiedlichen Kapazitäten und Geschwindigkeiten bei der Software-GUI-Testung besser genutzt werden können, da jeder Testdurchführung- Computer sich im wesentlichen sofort für einen weiteren Test aus einer zentralisierten Test-Warteschlange zur Verfügung stellt, sobald er den vorherigen Test abgeschlossen hat. Auf diese Weise können sowohl der Arbeits- als auch der Zeitaufwand für die komplette Durchführung des GUI-Testzyklus deutlich verringert werden, so dass die zugehörigen Softwareprodukte schneller freigegeben werden können und möglicherweise der Umsatz gesteigert wird.
  • Gewisse erfindungsgemäße Ausführungsformen können eine im wesentlichen Echtzeit- Berichterstattung der Ergebnisse bieten. Bei gewissen Ausführungsformen werden die Ergebnisse von Software-GUI-Testinstanzen nach vollständiger Durchführung dieser Testinstanzen auf dezentralisierten Testdurchführung-Computern automatisch und im wesentlichen sofort an eine zentralisierte Testergebnis-Datenbank gemeldet. Sobald ein neuer Testergebnisbericht vorliegt kann die Test-Server-Engine automatisch für die Erstellung einer neuen Testergebnis-Webseite sorgen, auf der die neuen Testergebnisse enthalten sind und die interessierten Benutzern mit Hilfe eines Web-Servers zur Verfügung stehen könnte. Ausführungsformen, bei denen diese Eigenschaft umgesetzt ist, können daher den Status der angesammelten Testergebnisse im wesentlichen in Echtzeit anbieten. Bei gewissen Ausführungsformen kann es den Benutzern auch ermöglicht werden, Tests für eine anschließende Durchführung vorzusehen, in dem ein oder mehrere Tests ausgewählt werden, deren Testergebnisse auf einer Testergebnis-Webseite wiedergegeben werden.
  • Bei gewissen erfindungsgemäßen Ausführungsformen kann ein mit der Test-Server- Engine zusammenarbeitender Client-Controller, der die einzelnen dezentralisierten Testdurchführung-Computern steuert, zu einem oder mehreren angemessenen Zeitpunkten auf dem jeweiligen dezentralisierten Testdurchführung-Computer automatisch eine aktuelle Softwareversion installieren, um dafür zu sorgen, dass dieser Testdurchführung- Computer die aktuellste verfügbare Softwareversion testet. Bei gewissen Ausführungsformen können die Client-Controller jeweils den betreffenden Testdurchführung-Computer zu einem oder mehreren angemessenen Zeitpunkten neu hochfahren (z. B. zweimal täglich), um auf diese Weise ein "Hängenbleiben " des Testdurchführung-Computers bei einer Instabilität des Betriebssystems weniger wahrscheinlich zu machen. Dies kann dabei helfen zu verhindern, dass das Testsystem als Ganzes hängen bleibt. Beim Auftreten von Problemen auf einem bestimmten dezentralisierten Testdurchführung-Computer können sich die Auswirkungen auf diese Weise auf einen einzelnen Test beschränken. Bei gewissen Ausführungsformen ist der Client-Controller der einzelnen Testdurchführung-Computer so eingerichtet, dass er automatisch einen Softwarekode startet, der eine Kommunikation mit der Test-Server- Engine aufbaut, sobald der zugehörige Testdurchführung-Computer hochfährt. Durch eine oder mehrere dieser Eigenschaften kann jeder einzelne Testdurchführung-Computer im Prinzip zu einem Testdurchführungsroboter werden, der für längere Zeitspannen automatisch und ohne menschlichen Eingriff läuft, was die Kosten der Software-GUI- Testung weiter verringert.
  • Systeme und Verfahren; bei denen ein oder mehrere dieser oder anderer technische Vorteile umgesetzt sind, könnten für moderne Software-GUI-Testungsumgebungen gut geeignet sein. Bei gewissen erfindungsgemäßen Ausführungsformen können einige, alle oder keine der oben genannten Vorteile umgesetzt sein. Ein oder mehrere weitere fachliche Vorzüge können für den Fachmann anhand der folgenden Figuren, der Beschreibung und der Ansprüche leicht ersichtlich sein.
  • Zur besseren Erläuterung der vorliegenden Erfindung und ihrer Merkmale und Vorteile wird auf die folgende Beschreibung in Verbindung mit den Begleitzeichnungen Bezug genommen, wobei die:
  • Fig. 1 ein Beispielsystem für die dezentralisierte automatische Software-GUI- Testung erläutert,
  • Fig. 2 eine beispielhafte Testergebnis-Webseite erläutert, und
  • Fig. 3 eine Beispielverfahren 3 für die dezentralisierte automatische Software- GUI-Testung erläutert.
  • Fig. 1 erläutert ein Beispielsystem 20 für die dezentralisierte automatische Software- GUI-Testung. System 20 weist ein Server-System 22 auf, das seinerseits eine Test-Server- Engine 24, einen Webserver 26, eine Warteschlange 28 und eine Testergebnis-Datenbank 30 aufweist. Die Test-Server-Engine 24 bietet gewisse zentralisierte Eigenschaften für die dezentralisierte automatische Software-GUI-Testung und bietet bei gewissen Ausführungsformen eine effiziente Einsatzplanung, dezentralisierte Testdurchführung und im wesentlichen in Echtzeit erfolgende Meldung der Ergebnisse der automatischen Software-GUI-Testung. Im allgemeinen erhält die Test-Server-Engine 24 von multiplen Testdurchführung-Computern Testinstanz-Anforderungen, ruft die angeforderten Testinstanzen aus der Test-Warteschlange 28 ab, reicht die abgefragten Testinstanzen für die parallele Durchführung auf multiplen dezentralisierten Testdurchführung-Computer weiter, empfängt von den multiplen dezentralisierten Testdurchführung-Computer die Testergebnisse für die durchgeführten Testinstanzen und speichert die erhaltenen Testergebnisse in der Testergebnis-Datenbank 30 für die Berichterstattung an einen oder mehrerer Benutzer.
  • Bei einer Ausführungsform ist das Server-System 22 an multiple dezentralisierte Client- Systeme 32 gekoppelt, die wiederum jeweils an ein oder mehrere Server-Plattformen 34 gekoppelt sind. Die Client-Systeme 32 können räumlich dezentralisiert an verschiedenen Standorten angeordnet sein, die geographisch voneinander und von Server-System 22 getrennt sind, oder logisch dezentralisiert angeordnet sein, wobei sie sich ungefähr am selben Standort wie andere Client-Systeme 32 und das Server-System 22 befinden. Jedes Client-System 32 kann mit Hilfe von eines oder mehrerer Computerbusse, Local Area Networks (LANs), Metropolitan Area Networks (MANs), Wide Area Networks (WANs), eines globalen Computernetzwerks, wie dem Internet, oder jeder beliebigen anderen drahtgebundenen, optischen, drahtlosen oder sonstigen Verbindungen an das Server-System 22 gekoppelt sein. Auf ähnliche Weise kann jedes Server-System 34 über ein oder mehrere Computerbusse, LANs, MANs, WANs, ein globales Computernetzwerk, wie das Internet, oder jede beliebige andere drahtgebundene, optische, drahtlose oder sonstige Verbindungen an ein oder mehrere Client-Systeme 32 gekoppelt sein.
  • Die Client-Systeme 32 arbeiten als Testdurchführung-Computer zur Durchführung von Software-GUI-Testinstanzen, die von der Test-Server-Engine 24 erhalten werden, und zur Meldung der Testergebnisse an die Test-Server-Engine 24 gemäß dem Betrieb des Systems 20. Bei einer Ausführungsform bietet ein die einzelnen Client-System 32 steuernder Client-Controller 36 eine Steuerschicht, die die von der Test-Server-Engine 24 erhaltenen automatischen Software-GUI-Testinstanzen empfängt, durchfuhrt und überwacht und Testergebnisse zurückgibt. Jeder einzelne Client-Controller 36 kann außerdem in regelmäßigen Abständen aktuelle Softwareversionen auf seinem Client- System 32 installieren, sein Client-System 32 in regelmäßigen Abständen neu hochfahren und beim Hochfahren seines Client-Systems 32 eine Kommunikation mit der Test-Server- Engine 24 auf die weiter unten beschriebene Weise aufbauen.
  • Jedes einzelne Client-System 32 kann mit einer anderen Client-Plattform laufen oder zwei oder mehr Client-Systeme 32 können mit identischen Client-Plattformen laufen. Bei geeigneten Client-Plattformen für die Software-GUI-Testung kann es sich beispielsweise und ohne Einschränkung um WINDOWS NT, WINDOWS 2000, WINDOWS 98, WINDOWS ME, WINDOWS XP, UNIX und DOS handeln. Auf ähnliche Weise können die Server-Systeme 34 jeweils eine andere Server-Plattform unterstützen oder zwei oder mehr Server-Systeme 34 können die selbe Server-Plattform unterstützen. Für eine gründliche Software-GUI-Testung können die Client-Systeme 32 und die mit ihnen verbundenen Server-Systeme 34 vorzugsweise so ausgewählt werden, dass ein vollständiges Spektrum von Testszenarien für alle angemessenen Client-Server- Kombinationen abgedeckt ist. Beispielsweise könnten verschiedene GUI-Operationen auf verschiedenen Client-Server-Kombinationen eine unterschiedlich gute Performance zeigen. Es kann von Nutzen sein zu wissen, welche bestimmten GUI-Operationen bei welchen bestimmten Client-Server-Umgebungen Probleme bereiten, um diesen Probleme eine spezielle Aufmerksamkeit widmen zu können.
  • Bei gewissen Ausführungsformen können die einzelnen Client-Systeme 32 jeweils eine spezialisierte Testsoftware zur automatischen Durchführung der von der Test-Server- Engine 24 erhaltenen GUI-Testinstanzen verwenden und für die durchgeführten Testinstanzen unter der Kontrolle des verbundenen Client-Controller 36 Testergebnisse produzieren. Beispielsweise, und ohne einschränkende Wirkung, könnte es sich bei einer solchen Testsoftware um die von der Firma MERCURY INTERACTIVE CORPORATION entwickelte Software WINRUNNER handeln. Auch wenn an dieser Stelle WINRUNNER primär beschrieben wird, kann jede beliebige Software, die eine angemessene Umgebung für die automatische Software-GUI-Testung zu bieten vermag, verwendet werden. Der WINRUNNER-Kode ermöglicht die Automatisierung der Software-GUI-Testung durch die Erstellung von maßgeschneiderten Programmen zur Kontrolle des Informationsflusses von und zu der zu testenden GUI-Software; in anderen Worten, zur Simulierung der Wechselwirkungen mit Software-GUI-Benutzern. Beispielsweise können bei Software- GUI-Tests Tastatureingaben, Mausklicks oder andere Verfahren zur Eingabe an die GUI simuliert werden, assoziierte Daten von der GUI ausgelesen werden und die Verarbeitungsergebnisse der betreffenden Daten an die GUI zurück gespielt werden. Bei einer Ausführungsform ist der Software-GUI-Testkode in einer Test Script Language geschrieben, die von WINRUNNER oder einer anderen eingesetzten Software unterstützt wird. Der Client-Controller 36 liest die für eine durchgeführte Testinstanz von der Testsoftware erstellten Testergebnisse, formatiert die Testergebnisse auf eine geeignete Weise und meldet anschließend die Testergebnisse an die Test-Server-Engine 24.
  • Bei standardmäßigen dezentralisierten Testdurchführung-Verfahren wird eine statische Testeinsatzplanung verwendet. Bei der statischen Testeinsatzplanung werden sämtliche durchzuführenden Tests am Beginn des Testzyklus unter den verfügbaren Ressourcen aufgeteilt woraufhin die jeweiligen Computer die ihnen zugewiesenen Tests durchführen. Die statische Testeinsatzplanung gestaltet sich häufig ineffizient, da Schwankungen bei der Testdurchführungszeit, die auf den Eigenschaften der Tests und auf Schwankungen bei den Verarbeitungsleistungen der Computer beruhen, dazu führen können, dass ein Computer die ihm zugewiesenen Tests zu einem weit früheren Zeitpunkt als andere Computer beendet, so dass der erste Computer sich im Wartezustand befindet, während andere Computer überlastet sind.
  • Im Gegensatz dazu bieten gewisse erfindungsgemäße Ausführungsformen eine dynamische Einsatzplanung, bei der jedes Client-System 32 in der Lage ist, bei jeder Untätigkeit des Client-Systems 32 eine Testinstanz anzufordern, und dies vorzugsweise direkt nach Abschluss der vorhergehenden Testinstanz zu tun. Beispielsweise kann bei einer bevorzugten Ausführungsform der Client-Controller 36 des Client-Systems 32 von der Test- Server-Engine 24 sofort einen neuen Testinstanz anfordern, sobald ein Client-System 32 einen Testinstanz abgeschlossen hat und der damit verbundene Client-Controller 36 die Testergebnisse für den Testinstanz weiter gemeldet hat. Als Antwort auf die Anforderung des Client-System 32 vergibt die Test-Server-Engine 24 die nächste Testinstanz aus der Warteschlange 28 an das Client-System 32, dass die Anforderung gestellt hat. Diese Vorgehensweise ermöglicht einen im wesentlichen konstanten Fluss von Testinstanzen von der Test-Server-Engine 24 zu den Client-Systemen 32 und eine im wesentlichen konstante Nutzung der Client-Systeme 32 während des Testzyklus, und zwar auch wenn die Art der Tests und die Fähigkeiten der einzelnen Client-Systeme 32 variieren. Die Test- Server-Engine 24 kann die Skalierung bis zu einer beliebigen geeigneten Anzahl von Client-Systemen 32 unterstützen. Durch die Aufteilung der Testdurchführung auf parallele dezentralisierte Testdurchführung-Computer können die Testzyklusdauern in deutlich gesenkt werden. Beispielsweise und ohne eine einschränkende Wirkung wurde im Rahmen eines Projektes eine Test-Server-Engine, bei der Teile der vorliegenden Erfindung umgesetzt waren, mit fünfzehn dezentralisierten Testdurchführung-Computern benutzt, um zwischen ungefähr fünfhundert und ungefähr eintausend Software-GUI- Testinstanzen pro Tag durchzuführen, wobei eine Auslastung von ungefähr 90 Prozent für die einzelnen Testdurchführung-Computer und eine Verringerung der Testzyklusdauer von ungefähr einhundert Tagen auf ungefähr sechs Tage erreicht wurde. Durch die Verkürzung der Gesamttestdauer können mehr Testinstanzen in einer kürzeren Zeitspanne durchgeführt werden, wodurch möglicherweise die Genauigkeit und die Gründlichkeit der Tests steigern kann, ohne die aggressivere Verfolgungen von Time-to-Market- Zielvorgaben einzuschränken. Außerdem können die Kosten der GUI-Tests bei erfindungsgemäßen Ausführungsformen durch eine Verringerung des Arbeits- und Zeitaufwands wesentlich geringer sein.
  • Bei gewissen Ausführungsformen kann jeder Client-Controller 36 automatisch aktuelle Softwareversionen auf seinem Client-System 32 installieren, um dafür zu sorgen, dass sein Client-System 32 die aktuellste verfügbare Softwareversion testet. Dies kann regelmäßig oder auf andere geeignete Weise geschehen. Der Client-Controller 36 kann sein Client- System 32 regelmäßig oder auf andere geeignete Weise neu hochfahren. Das automatische Neuhochfahren hilft dabei dafür zu sorgen, die Wahrscheinlichkeit eines "Hängenbleibens" des Client-Systems 32, z. B. auf Grund einer Instabilität des Betriebssystems, zu vernngern. Bei einer Ausführungsform kann der Client-Controller 36 außerdem automatisch eine Kommunikation mit der Test-Server-Engine 24 aufbauen, sobald das Client-System 32 hochfährt. Dies kann helfen dafür zu sorgen, dass ein Client-System 32, bei dem ein Fehler auftritt, automatisch und ohne Bedarf für einen menschlichen Eingriff wieder hochfährt und die Testdurchführung umgehend wieder aufnimmt. Bei einer Ausfiibrungsform können die Client-Systeme 32 on- und offline gehen, ohne die Tests der anderen Client-Systeme 32 zu stören. Diese Eigenschaften, jede für sich oder in Kombination, können die Betriebsausfallzeiten des Systems senken, den Bedarf für menschliche Eingriffe senken und die Erhöhung der Anzahl der Client-Systeme 32 ermöglichen, um die Testzykluszeiten weiter zu verkürzen. Somit arbeitet jedes Client-System 32 zumindest teilweise auf Grundlage einer oder mehrerer der genannten Eigenschaften als ein Testdurchführungsroboter, der automatisch und ohne menschlichen Eingriff für ausgedehnte Zeitspannen läuft, was die Kosten der Software-GUI-Testung weiter verringert.
  • Ein oder mehrere Client-Computer 38 können mit dem Server-System 22 nach Vorgabe geeigneter Eingaben durch eine beliebige Anzahl von verbundenen Benutzern in Wechselwirkung treten. Ein oder mehrere Benutzer können unter Verwendung einer oder mehrerer Webseiten, auf die mit den verbundenen Client-Computern 38 und dem Web- Server 26 Zugriff genommen wird, Software-GUI-Testinstanzen zur Durchführung einreichen. Beispielsweise könnte eine Liste von verfügbaren Tests auf einer Webseite angezeigt werden, wie nachfolgend unter Bezugnahme auf Fig. 2 beschrieben wird, und der Benutzer könnte einen oder mehrere dieser Tests auswählen. Der Web-Server 26 kommuniziert die eingereichten Testinstanzen an die Test-Server-Engine 24, die die zugehörigen Testinstanzen in die Warteschlange 28 einfügt. Bei einer Ausführungsform könnte die Test-Server-Engine 24 Perl Common Gateway Interface (CGI) Skripte zur Unterstützung der Einreichung von Testinstanzen durch die Benutzer verwenden.
  • Die Test-Server-Engine 24 kann die Testinstanzen auf der Grundlage bestimmter Prioritäten, nach einer First-In/First-Out-Regel (FIFO) oder auf eine sonstige geeignete Weise, in die Warteschlange 28 einfügen. Zur Verwaltung der Test-Warteschlange 28 kann die Test-Server-Engine 24 geeignete Skripts verwenden und beim Einfugen der Testinstanzen in die Test-Warteschlange 28 kann die Test-Server-Engine 24 geeignete Regeln anwenden. Falls beispielsweise ein bestimmter Test mehrmals erfolgreich durchgeführt wird und dann einen Fehler ergibt, kann es wünschenswert sei, den spezifischen Grund für den Fehler zu ermitteln. Bei Auftreten eines Testfehlers könnte der Test, bei dem der Fehler aufgetreten ist, für alle Client-Server-Kombinationen durchgeführt werden, um das Ausmaß des Problems zu ermitteln und die Ursache zu isolieren und zu beseitigen. Als weiteres Beispiel könnte eine Untermenge von Tests in der Test-Warteschlange für eine häufigere Testdurchführung gekennzeichnet werden. Dabei könnten Tests, die als Test mit einer höheren Priorität gekennzeichnet sind, in einer bestimmten Zeitspanne durchgeführt werden und Tests, die als Test mit einer niedrigeren Priorität gekennzeichnet sind, in anderen Zeitspannen durchgeführt werden. In diesem Instanz könnte die Test-Warteschlange 28 entsprechende Test-Warteschlangen mit höherer Priorität bzw. niedriger Priorität umfassen. Die Test-Server-Engine 24 kann bei Erhalt einer Testanforderung von den Client-Systemen 32 lediglich Tests aus der Warteschlange mit der höheren Priorität abfragen und erst wenn die Warteschlange mit der höheren Priorität leer ist zu der Warteschlange mit den niedrigeren Priorität wechseln. Die Test-Warteschlange 28 kann jedes geeignete, aus einer oder mehreren Warteschlangen bestehende System darstellen, das bestimmten Bedürfnissen genügt. Die Test-Server- Engine 24 kann so konfiguriert werden, dass sie erkennen kann, wenn die Test- Warteschlange 28 oder eine der Warteschlangen, die einen Bestandteil der Test- Warteschlange 28 darstellen, einen bestimmten Schwellenwert unterschreitet und die Test- Warteschlange 28 oder die Warteschlange, die einen Bestandteil der Test-Warteschlange 28 darstellt, wieder mit Tests auffüllt, bis der selbe oder ein vorgegebener anderer Schwellenwert überschritten wird. Auf diese Weise könnte das System 20 im wesentlichen kontinuierlich laufen.
  • Die Test-Server-Engine 24 erhält von den Client-Controllern 36 der Client-Systeme 32 Testergebnisse für die durchgeführten Testinstanzen und speichert die Testergebnisse in der Testergebnis-Datenbank 30. Bei einer Ausführungsform löst der Kode der Test-Server- Engine 24 bei Erhalt eines Testergebnisses ein Perl- oder sonstiges Script aus, das das Testergebnis in der Testergebnis-Datenbank 30 speichert und löst ein Perl- oder anderes Skript zur Erstellung einer Testergebnis-Webseite aus (möglicherweise als Aktualisierung einer bestehenden Testergebnis-Webseite), um die neu erhaltenen Testergebnisse zusammen mit den früheren Testergebnissen anzuzeigen. Auf diese Weise können gewisse Ausführungsformen eine im wesentlichen Echtzeit-Berichterstattung der Testergebnisse der Software-GUI-Tests bieten. Die Testergebnis-Webseite kann in regelmäßigen Abständen an einen oder mehrere, mit einem oder mehreren Benutzern verbundene Client- Computer 38 "gepuscht" werden, oder von den Benutzern auf einer bei Bedarf "pull" Grundlage zugänglich gemacht werden oder den Benutzern auf eine beliebige sonstige geeignete Weise dargeboten werden.
  • Die Testergebnis-Webseite kann mit Hilfe einer Client-Plattform, einer Server-Plattform oder auf andere Weise konsolidierte Testergebnisse bieten. Bei der Berichterstattung der Testergebnisse von einzelnen Testinstanzen können auf der Testergebnis-Webseite zusammen mit dem Testergebnis das Testdatum und die Testzeit angegeben werden. Bei einer Ausführungsform kann auf der Testergebnis-Webseite das Testergebnis, das Alter des Testergebnisses sowie andere Informationen über einen Test mit Hilfe einer Farb-, Schattierung-, Text- oder sonstigen geeigneten Indexierung angezeigt werden. Die Testergebnis-Webseite kann einem Benutzer die Einsichtnahme in den derzeitigen Inhalt der Test-Warteschlange 28 ermöglichen. Auf diese Weise könnte ein Benutzer in die Lage versetzt werden feststellen zu können, wie voll die Test-Warteschlange 28 ist, ob Instanzen eines bestimmten Tests für die Durchführung vorgesehen sind oder erneut vorgesehen werden müssen, wann Instanzen eines bestimmten Tests durchgeführt werden könnten, welche Priorität einem bestimmten Test zugeordnet oder neu zugeordnet werden muss sowie sonstige geeignete Informationen. Bei einer Ausführungsform des Systems 20, die einen Web-Server 26 aufweist, kann das System 20 auch in der Lage sein, Web- Benutzerschnittstellen zu testen. In diesem Rahmen kann ein auf einem Client-System 32 laufender Client-Browser hinsichtlich seiner Wechselwirkung mit dem Web-Server 26 getestet werden. Im folgenden wird eine beispielhafte Testergebnis-Webseite unter Bezugnahme auf Fig. 2 in größeren Einzelheiten beschrieben.
  • Das Server-System 22 kann einen oder mehrere, an einem oder mehreren Standorten aufgestellte Computer umfassen, die voneinander unabhängig sind oder Datenspeicherungs- Kommunikations- oder andere Ressourcen je nach Einzelfall gemeinsam nutzen. Jeder dieser Computer kann ein oder mehrere geeignete Eingabegeräte, Ausgabegeräte, Massenspeichermedien, Prozessoren, Speicher, Kommunikationsschnittstellen oder sonstige Komponente für den Erhalt, die Verarbeitung, die Speicherung und die Mitteilung von Informationen gemäß dem Betrieb des Systems 20 enthalten. Außerdem kann die in Verbindung mit der Test-Server-Engine 24, dem Web-Server 26, der Test- Warteschlange 28 und der Testergebnis-Datenbank 30 beschriebene Funktionalität durch beliebige Softwarekomponenten in Verbindung mit geeigneter Hardware geboten werden. Die Test-Warteschlange 28 und die Testergebnis-Datenbank 30 können am selben Standort wie die Test-Server-Engine 24 oder auf einem oder mehreren Computersystemen an anderen Standorten als die der Test-Server-Engine 24 unterstützende Computersystem laufen. Auch wenn die Test-Warteschlange 28 als Warteschlange beschrieben wird, kann die Test-Warteschlange 28 jede beliebige geeignete Datenspeicherungsanordnung umfassen und mit der Bezugnahme auf eine Warteschlange soll die Bezugnahme auf sämtliche solche Anordnungen gemeint sei. Auch wenn die Testergebnis-Datenbank 30 als Datenbank beschrieben wird, kann die Testergebnis-Datenbank 30 jede beliebige geeignete Datenspeicherungsanordnung umfassen und mit der Bezugnahme auf eine Datenbank soll die Bezugnahme auf sämtliche solche Anordnungen gemeint sein.
  • Beim Betrieb einer beispielhaften Ausführungsform des Systems 20 können ein oder mehrere Benutzer Software-GUI-Testinstanzen mit Hilfe einer oder mehrerer Web- Seiten, auf die mit Hilfe der verbundenen Client-Computern 38 und des Web-Servers 26 Zugriff genommen wird, einreichen. Der Web-Server 26 meldet der Test-Server-Engine 24 die eingereichten Testinstanzen und die Test-Server-Engine 24 fügt die Testinstanzen in die Test-Warteschlange 28 ein. Der Client-Controller 36 eines verfügbaren Client- Systems 32 kann als Antwort auf den Abschluss eines vorhergehenden Testinstanz von der Test-Server-Engine 24 einen Software-GUI-Testinstanz anfordern. Als Antwort auf die Anforderung des Client-Systems 32 kann die Test-Server-Engine 24 ermitteln, ob die Test-Warteschlange 28 einen oder mehrere Testinstanzen enthält. Falls die Test- Warteschlange 28 leer ist, kann die Test-Server-Engine 24 dem Client-Controller 36 melden, dass keine Testinstanzen für die Testdurchführung verfügbar sind. Falls in der Test - Warteschlange 28 einen Testinstanz verfügbar ist, ruft die Test-Server-Engine 24 den nächsten Testinstanz aus der Test-Warteschlange 28 ab und übermittelt den abgerufenen Testinstanz zur Durchführung eines Tests an das Client-System 32, das die Anforderung gestellt hatte. Die Test-Server-Engine 24 kann die Testergebnis-Webseite aktualisieren, so dass diese den Status des Testinstanz anzeigt (im Ablauf).
  • Zur Durchführung des Testinstanz kann das Client-System 32 die Software WINRUNNER verwenden, aber es kann auch wie oben beschrieben jede beliebige andere Software für automatische Tests verwendet werden. Nachdem das Client-System 32 die Durchführung eines Testinstanz abgeschlossen hat, meldet bei einer Ausführungsform der Client- Controller 36 des Client-Systems 32 die Testergebnisse des Testinstanz an die Test-Server- Engine 24 und fordert, im wesentlichen simultan oder im wesentlichen unverzüglich danach, von der Test-Server-Engine 24 einen weiteren Testinstanz an. Die Test-Server- Engine 24 speichert das erhaltene Testergebnis in der Testergebnis-Datenbank 30 und löst ein Script zur Erstellung einer mit den neuen Testergebnissen aktualisierten Testergebnis- Webseite aus, auf die ein oder mehrere Benutzer auf jede beliebige geeignete Weise Zugriff nehmen können. Im Verlauf des Testzyklus laufen diese Schritte vorzugsweise parallel und im wesentlichen kontinuierlich auf allen Client-Systemen 32 ab, um einen oder mehrere der oben beschriebenen technischen Vorteile zu gewährleisten.
  • In Fig. 2 wird eine beispielhafte Testergebnis-Webseite 40 erläutert, auf die ein Benutzer mit Hilfe eines verbundenen Client-Computers 38 und des Web-Servers 26 Zugriff nehmen kann. Im allgemeinen bietet die Testergebnis-Webseite 40 eine kurzgefasste Anzeige der Testergebnisse von Software-GUI-Testinstanzen, die von den Client-Systemen 32 durchgeführt wurden, und den zugehörigen Status dieser Testinstanzen. Auch wenn die Testergebnis-Webseite 40 in dem erläuterten Beispiel die konsolidierten Testergebnisse einer bestimmten Client-Plattform bietet, kann eine Testergebnis-Webseite die Testergebnisse für alle oder jede beliebige geeignete Untermenge von Software-GUI- Testinstanzen anzeigen. Die Testergebnis-Webseite 40 kann eine Angabe über die bestimmte Client-Plattform enthalten, zu der die Testergebnisse gehören. Beispielsweise handelt es sich im erläuterten Instanz bei der bestimmten Client-Plattform, zu der die Testergebnis-Webseite 40 gehört, um WINDOWS NT, wie 42 zu entnehmen ist. Die Testergebnis-Webseite 40 kann anzeigen, wann die letzte Aktualisierung der auf der Testergebnis-Webseite 40 enthaltenen Testergebnisse erfolgt ist. Beispielsweise zeigt die Testergebnis-Webseite 40 in diesem Instanz die zuletzt um 13:33:07 am Donnerstag, dem 7. Juni 2001 aktualisierten Testergebnisse, wie 44 zu entnehmen ist. Wie 46 zu entnehmen ist, kann bei der Herstellung der Testergebnis-Webseite 40 ein Testfilter verwendet werden, sodass die Testergebnis-Webseite 40 nur die Testergebnisse derjenigen Testinstanzen enthält, die innerhalb einer bestimmten Zeitspanne eingereicht oder durchgeführt wurden, oder nur derjenigen Testinstanzen, die von einem bestimmten Benutzer eingereicht wurden, oder jeder beliebigen anderen geeigneten Untermenge von Testinstanzen.
  • Bei einer Ausführungsform weist die Testergebnis-Webseite 40 eine Testergebnistabelle 48 mit jeweils einer Zeile für jeden Test 50 auf. Bei der erläuterten Ausführungsform, bei der die Testergebnis-Webseite 40 konsolidierte Testergebnisse für eine bestimmte Client- Plattform anbietet, könnte die Testergebnistabelle 48 eine Spalte für jede Server-Plattform 52 enthalten, für die Tests 50 durchgeführt werden. Die Schnittpunkte der Zeilen und Spalten der Testergebnistabelle 48 definieren Zellen, die jeweils einer bestimmten Kombination eines Tests 50 und einer Server-Plattform 52 entsprechen. Mit Hilfe von Farbgebung, Schattierung oder einer sonstigen Indexierung innerhalb einer Zelle können das entsprechende Testergebnis, das Alter des Testergebnisses, der Teststatus für den Test 50 (z. B. der Prozentsatz, zu dem der Testinstanz abgeschlossen ist) oder jede beliebige sonstige geeignete Information für die bestimmte Kombination aus Test 50 und Server- Plattform 52 angegeben werden. Lediglich als Beispiel und ohne einschränkende Wirkung könnte eine rote Einfärbung einer Zelle verwendet werden um anzuzeigen, dass bei dem zuletzt durchgeführten Instanz des Tests 50 ein Fehler aufgetreten ist. Eine dunkelgrüne Farbgebung könnte verwendet werden um anzuzeigen, dass der zuletzt durchgeführte Instanz des Tests 50 ohne Fehler abgelaufen ist, während zunehmend hellere Grüntöne verwendet werden könnten um anzuzeigen, dass der zuletzt durchgeführte Instanz des Tests 50 zwar ohne Fehler abgelaufen ist, die Testergebnisse aber bereits ein gewisses Alter erreicht haben. Eine gelbe Farbgebung könnte verwendet werden um anzuzeigen, dass für den Test 50 keine Testinstanzen durchgeführt wurden. Bei einem anderen Beispiel könnte mit einem Sternchen oder einem anderer Indikator in einer Zelle angeben werden, dass eine bestimmte Anzahl von Tests 50 auf der zugehörigen Server-Plattform 52 in einem vorgegebenen Zeitraum durchgeführt worden sind. Wie oben beschrieben, kann bei einer Ausführungsform die Testergebnis-Webseite 40 den Benutzer in die Lage versetzen, eine bestimmte Zelle auszuwählen, um auf diese Weise eine oder mehrere Instanzen des zugehörigen Tests 50 zur Durchführung auf der entsprechenden Server-Plattform 52 einzureichen.
  • Die Testergebnistabelle 48 kann zusammengefasste Informationen über die Tests 50 enthalten. Beispielsweise können in der Testergebnistabelle 48 die Gesamtzahl der fehlerlosen Testdurchläufe 54 für jede Server-Plattform 52, die Gesamtzahl der fehlerbehafteten Testdurchläufe 56 für jede Server-Plattform 52, die Anzahl der Tests 50, deren Testergebnisse 58 nicht vorliegen, für jede Server-Plattform 52, die Gesamtzahl der durchgeführten Testinstanzen 60 für jede Server-Plattform 52, ein Erfolgsprozentsatz 62 für jede Server-Plattform 52, ein Abdeckungsprozentsatz 64 für jede Server-Plattform 52 oder jede beliebige sonstige geeignete zusammengefasste Information angeboten werden. Der Erfolgsprozentsatz 62 kann den Prozentsatz der durchgeführten fehlerlosen Testinstanzen für eine Server-Plattform 52 angeben und zur Berechnung kann die Anzahl von fehlerlosen Testdurchläufen 54 durch die Gesamtzahl der durchgeführten Testinstanzen 60 geteilt und der auf diese Weise erhaltene Quotient mit 100 multipliziert werden. Der Abdeckungsprozentsatz 64 kann die Anzahl der durchgeführten Testinstanzen als Prozentanteil der Gesamtzahl der durchzuführenden Testinstanzen angeben. Die Testergebnis-Webseite 40 könnte einen oder mehrere Buttons 66 oder andere Eingabemechanismen enthalten, die dem Benutzer zusätzliche Funktionen zur Verfügung stellen. In der erläuterten Ausführungsform handelt es sich bei den Beispiel-Buttons 66 um die Funktionen "Ausgewählte Tests durchführen", "Alle auswählen", "Nur Fehlerfrei", "Nur Fehlerhaft", "Nur unzutreffende", "Fehlerfrei zufügen", "Unzutreffende zufügen" und "Alle abwählen".
  • In der Fig. 3 wird eine Beispielverfahren für eine dezentralisierte automatische Software- GUI-Testung erläutert. In Schritt 100 reichen ein oder mehrere Benutzer Software-GUI- Testinstanzen ein, indem sie sich einer oder mehrerer Testergebnis-Webseiten 40 bedienen, auf die sie mit Hilfe der verbundenen Client-Computer 38 und dem Web-Server 26 Zugriff nehmen. In Schritt 102 übermittelt der Web-Server 26 die eingereichten Testinstanzen an die Test-Server-Engine 24. Die Test-Server-Engine 24 platziert die Testinstanzen in Schritt 104 in die Warteschlange 28. Wie bereits in Verbindung mit Fig. 1 beschrieben, kann diese Assoziation auf einer vorgegebenen Priorität, Firstin/First-out oder jedem beliebigen geeigneten Satz von Regeln basieren. In Schritt 106 ruft der Client-Controller 36 eines verfügbaren Client-Systems 32 bei der Test-Server-Engine 24 einen Software-GUI-Testinstanz ab, nachdem ein vorhergehender Testinstanz abgeschlossen wurde. Als Antwort auf die Anforderung von Client-System 32 ermittelt die Test-Server-Engine 24 in Schritt 108, ob die Test-Warteschlange 28 einen oder mehrere verfügbare Testinstanzen enthält. Falls die Warteschlange 28 leer ist, kann die Test-Server- Engine 24 in Schritt 110 dem Client-Controller 36 mitteilen, dass keine Testinstanzen zur Testdurchführung verfügbar sind. Falls ein Testinstanz in der Test-Warteschlange 28verfügbar ist, ruft die Test-Server-Engine 24 in Schritt 112 den nächsten Testinstanz aus der Test-Warteschlange 28 ab und übermittelt in Schritt 114 den abgefragten Testinstanz zur Testdurchführung an das Client-System 32, das die Anforderung eingeleitet hat.
  • In Schritt 116 benutzt das Client-System 32 die Software WINRUNNER zur Testdurchführung, doch kann, wie bereits ausgeführt wurde, jede beliebige automatische Testsoftware verwendet werden. Sobald das Client-System 32 die Durchführung des Testinstanz abgeschlossen hat, meldet der Client-Controller 36 in Schritt 118 der Test- Server-Engine 24 die Testergebnisse für den Testinstanz. In Schritt 120 kehrt das Verfahren im wesentlichen simultan zu oder im wesentlichen sofort nach dem Schritt 118 wieder zu Schritt 106 zurück und der Client-Controller 36 fordert von der Test-Server- Engine 24 einen neuen Testinstanz an. Die Test-Server-Engine 24 speichert in Schritt 122 die erhaltenen Testergebnisse in der Testergebnis-Datenbank 30. In Schritt 124 löst die Test-Server-Engine 24 ein Skript zur Erstellung einer aktualisierten Testergebnis- Webseite 40 aus, die die neuen Testergebnisse wiedergibt und in Schritt 126 einem oder mehreren Benutzern auf jede beliebige geeignete Weise zugänglich gemacht wird. Vorzugsweise laufen diese Schritte im Verlauf des Testzyklus parallel und im wesentlichen kontinuierlich auf allen Client-Systemen 32 ab, um einen oder mehrere der oben beschriebenen fachlichen Vorzüge zu bieten.
  • Zwar wurde die vorliegende Erfindung anhand von mehreren Ausführungsformen beschrieben, doch sind für den Fachmann auf diesem Gebiet verschiedene Änderungen, Substitutionen, Variationen, Veränderungen und Modifikationen leicht ersichtlich, und diese Änderungen, Substitutionen, Variationen, Veränderungen und Modifikationen, soweit sie dem Geist und dem Gültigkeitsbereich der im Anhang beigefügten Ansprüche entsprechen, werden hiermit ebenfalls beansprucht.

Claims (48)

1. System für dezentralisierte, automatische Testung von grafischen Benutzerschnittstellen (GUI) von Software aufweisend:
eine zentralisierte Test-Warteschlange, welche in der Lage ist eine Vielzahl von Software-GUI-Testinstanzen zu speichern, die von einer Vielzahl von dezentralisierten Testdurchführung-Computern durchzuführen sind, wobei jeder dezentralisierte Testdurchführung-Computer eine Client-Plattform aufweist und jeweils mit einer oder mehreren Server-Plattformen verbunden ist, wobei die Client- Plattformen und die Server-Plattformen zusammen eine Vielzahl von Client-Server- Kombinationen bieten, für die die Software-GUI-Testinstanzen durchgeführt werden können; und
einer Test-Server-Engine, welche für jeden dezentralisierten Testdurchführung- Computer in der Lage ist zum
Erhalten einer Anforderung für einen Software-GUI-Testinstanz von einem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf den Abschluss einer vorhergehenden Software-GUI-Testinstanz durch den bestimmten dezentralisierten Testdurchführung-Computer,
Abfragen einer Software-GUI-Testinstanz aus der Warteschlange,
Übermitteln der abgefragten Software-GUI-Testinstanz an den bestimmten dezentralisierten Testdurchführung-Computer zur Durchführung für eine bestimmte Client-Server-Kombination unter Verwendung einer Testkomponente, die von dem bestimmten dezentralisierten Testdurchführung-Computer unterstützt wird, wobei die Testkomponente in der Lage ist, automatische Software-GUI- Tests durchzuführen und für diese Tests Testergebnisse zur Kommunikation an die Test-Server-Engine zu produzieren,
Erhalten eines Testergebnisses für die Software-GUI-Testinstanz von dem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf die Durchführung der Software-GUI-Testinstanz, und
Speichern des erhaltenen Testergebnisses zum Zwecke der Berichterstattung an einen oder mehrere Benutzer.
2. Das System nach Anspruch 1, wobei mindestens ein dezentralisierter Testdurchführung-Computer an einem anderen geografischen Ort betrieben wird als die anderen dezentralisierten Testdurchführung-Computer und der Test-Server.
3. Das System nach Anspruch 1, wobei die Testkomponente ein handelsübliches Standard-Produkt darstellt.
4. Das System nach Anspruch 1, wobei jede Software-GUI-Testinstanz einen Instanz eines Software-GUI-Tests ist, der unter Verwendung einer Test Scripting Language geschrieben ist, und mit jedem der dezentralisierten Testdurchführung-Computer durchgeführt werden kann, wobei eine Software-GUI-Testinstanz von dem bestimmten Testdurchführung-Computer durchgeführt wird, vom dem die Anforderung zur Abfrage des Software-GUI-Tests aus der Test-Warteschlange erhalten wurde.
5. Das System nach Anspruch 1, wobei:
die Test-Server-Engine weiterhin in der Lage ist, um eine Testergebnis-Webseite aufweisend Testergebnissen für eine Vielzahl von Software-GUI-Testinstanzen, einschließlich des Testergebnisses der zuletzt durchgeführten Software-GUI- Testinstanz, im wesentlichen unverzüglich nach dem Erhalt des Testergebnisses von dem bestimmten dezentralisierten Testdurchführung-Computer, auf dem die zuletzt durchgeführte Software-GUI-Testinstanz durchgeführt wurde, zu erstellen, und
das System weiterhin einen Web-Server aufweist, der in der Lage ist, um die Testergebnis-Webseite zur Anzeige auf einem Benutzersystem zu übermitteln, um eine im wesentlichen in Echtzeit erfolgende Testergebnisse-Berichterstattung bereitzustellen.
6. Das System nach Anspruch 5, wobei:
jede Software-GUI-Testinstanz eine Instanz eines Software-GUI-Tests ist, und die Testergebnis-Webseite konsolidierten Testergebnissen für eine bestimmte Client-Plattform aufweist, wobei die konsolidierten Testergebnisse Testergebnisse für jeden Software-GUI-Test für jede Client-Server-Kombinationen angeben, die die bestimmte Client-Plattform betreffen.
7. Das System nach Anspruch 5, wobei die Test-Server-Engine außerdem in der Lage ist, um eine Benutzeranforderung zur Durchführung einer Instanz eines bestimmten Software-GUI-Tests zu erhalten und die angeforderte Saftware-GUI-Testinstanz gemäß der Benutzeranforderung in die Test-Warteschlange einzufügen, wobei die Benutzeranforderung Eingabe durch Auswählen des bestimmten Software-GUI- Tests unter Verwendung der Testergebnisse-Webseite ist.
8. Das System nach Anspruch 1, wobei zumindest einige Software-GUI- Testinstanzen in der Test-Warteschlange mit Prioritäten verbunden sind, wobei die Test-Server-Engine in der Lage ist, um Software-GUI-Testinstanzen zur Durchführung je nach Priorität aus der Test-Warteschlange abzufragen.
9. Das System nach Anspruch 1, wobei die Test-Warteschlange eine erste Warteschlange, beinhaltend Software-GUI-Testinstanzen mit einer höheren Priorität, und eine zweite Warteschlange, beinhaltend Software-GUI-Testinstanzen mit einer niedrigeren Priorität, aufweist, wobei die Test-Server-Engine in der Lage ist, um Software-GUI-Testinstanzen aus der ersten Warteschlange zur Ausführung während eines ersten Teils einer Testdauer abzufragen und Software-GUI- Testinstanzen mit einer niedrigeren Priorität zur Testdurchführung aus der zweiten Warteschlange zur Ausführung während eines zweiten Teils der Testdauer abzufragen.
10. Das System nach Anspruch 1, wobei die Test-Server-Engine in der Lage ist, um Instanzen eines Software-GUI-Tests entsprechend einer Regel zur Durchführung für alle Client-Server-Kombinationen zurück zu übermitteln als Antwort auf den Erhalt eines oder mehrerer Testergebnisse für den Software-GUI-Test, welche Fehler anzeigen.
11. Das System nach Anspruch 1, wobei die Test-Server-Engine in der Lage ist zu erkennen, wenn die Anzahl der Software-GUI-Testinstanzen in der Warteschlange unter einem vorgegebenen Schwellenwert ist, und als Antwort automatisch Software- GUI-Testinstanzen zu der Warteschlange hinzufügt.
12. Das System nach Anspruch 1, weiterhin aufweisend einem Client-Controller fur jeden dezentralisierten Testdurchführung-Computer, der in der Lage ist, auf jedem dezentralisierten Testdurchführung-Computer zu einem oder mehreren geeigneten Zeitpunkten im Verlauf einer Testdauer automatisch eine aktuelle GUI- Softwareversion zu installieren.
13. Das System nach Anspruch 1, weiterhin aufweisend einem Client-Controller, welcher mit jedem dezentralisierten Testdurchführung-Computer verbunden und der in der Lage ist, einem vorgegebenen Zeitplan folgend jeden dezentralisierten Testdurchführung-Computer automatisch neu hochzufahren.
14. Das System nach Anspruch 1, weiterhin aufweisend einem Client-Controller, welcher mit jeden dezentralisierten Testdurchführung-Computer verbunden und der in der Lage ist, beim Hochfahren des dezentralisierten Testdurchführung-Computers eine Kommunikation mit der Test-Server-Engine aufzubauen.
15. Das System nach Anspruch 1, wobei jeder Testdurchführung-Computer im wesentlichen als ein automatischer Testdurchführungsroboter arbeitet, der automatisch und ohne menschlichen Eingriff über einen ausgedehnten Zeitraum hinweg wiederholt anfordert, empfängt und ausführt und die Testergebnisse für Software-GUI-Testinstanzen zurückmeldet.
16. Das System nach Anspruch 1, weiterhin aufweisend den dezentralisierten Testdurchführung-Computer.
17. Verfahren für die dezentralisierte, automatische Testung von grafischen Benutzerschnittstellen (GUI) von Software, wobei das Verfahren aufweist:
pflegen einer zentralisierten Test-Warteschlange, welche in der Lage ist eine Vielzahl von Software-GUI-Testinstanzen zu speichern, die von einer Vielzahl von dezentralisierten Testdurchführung-Computern durchzuführen sind, wobei jeder dezentralisierte Testdurchführung-Computer eine Client-Plattform aufweist und jeweils mit einer oder mehreren Server-Plattformen verbunden ist, wobei die Client- Plattformen und die Server-Plattformen zusammen eine Vielzahl von Client-Server- Kombinationen bieten, für die die Software-GUI-Testinstanzen durchgeführt werden können; und
erhalten einer Anforderung für einen Software-GUI-Testinstanz für jeden dezentralisierten Testdurchführung-Computer von einem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf den Abschluss eines vorhergehenden Software-GUI-Testinstanz durch den bestimmten dezentralisierten Testdurchführung-Computer,
abfragen einer Software-GUI-Testinstanz aus der Warteschlange für jeden dezentralisierten Testdurchführung-Computer,
übermitteln der abgefragten Software-GUI-Testinstanz für jeden dezentralisierten Testdurchführung-Computer an den bestimmten dezentralisierten Testdurchführung- Computer zur Durchführung eines Tests für eine bestimmte Client-Server- Kombination unter Verwendung einer Testkomponente, die von dem bestimmten dezentralisierten Testdurchführung-Computer unterstützt wird, wobei die Testkomponente in der Lage ist, automatische Software-GUI-Tests durchzuführen und für diese Tests Testergebnisse zu produzieren,
erhalten eines Testergebnisses für den Software-GUI-Testinstanz für jeden dezentralisierten Testdurchführung-Computer von dem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf die Durchführung des Software-GUI- Testinstanz, und
speichern des erhaltenen Testergebnisses für jeden dezentralisierten Testdurchführung-Computer zum Zwecke der Berichterstattung an einen oder mehrere Benutzer.
18. Das Verfahren nach Anspruch 17, wobei mindestens ein dezentralisierter Testdurchführung-Computer an einem geografisch entfernten Ort betrieben wird als die anderen dezentralisierten Testdurchführung-Computern und ein Computersystem, auf dem das Verfahren ausgeführt wird.
19. Das Verfahren nach Anspruch 17, wobei die Testkomponente ein handelsübliches Standard-Produkt ist.
20. Das Verfahren nach Anspruch 17, wobei jede Software-GUI-Testinstanz eine Instanz eines Software-GUI-Tests ist, der unter Verwendung einer Test Scripting Language geschrieben ist, und mit jedem der dezentralisierten Testdurchführung-Computer durchgeführt werden kann, wobei eine Software-GUI-Testinstanz von dem bestimmten Testdurchführung-Computer durchgeführt wird, vom dem die Anforderung zur Abfrage des Software-GUI-Tests aus der Test-Warteschlange erhalten wurde.
21. Das Verfahren nach Anspruch 17, weiterhin aufweisend:
Erstellen einer Testergebnis-Webseite aufweisend Testergebnissen für eine Vielzahl von Software-GUI-Testinstanzen, einschließlich des Testergebnisses der zuletzt durchgeführten Software-GUI-Testinstanz, im wesentlichen unverzüglich nach dem Erhalt des Testergebnisses von dem bestimmten dezentralisierten Testdurchführung-Computer, auf dem die zuletzt durchgeführte Software-GUI- Testinstanz durchgeführt wurde, und
Übermitteln der Testergebnisse-Webseite zur Anzeige auf einem Benutzersystem, um eine im wesentlichen in Echtzeit erfolgenden Testergebnisse-Berichterstattung bereitzustellen.
22. Das Verfahren nach Anspruch 21, weiterhin aufweisend:
jede Software-GUI-Testinstanz ein Instanz eines Software-GUI-Tests ist, und erstellen einer Testergebnis-Webseite konsolidierte Testergebnisse für eine bestimmte Client-Plattform aufweist, wobei die konsolidierten Testergebnisse Testergebnisse für jeden Software-GUI-Test für jede Client-Server- Kombinationen angeben, die die bestimmte Client-Plattform betreffen.
23. Das Verfahren nach Anspruch 21, weiterhin aufweisend erhalten einer Benutzeranforderung zur Durchführung einer Instanz eines bestimmten Software- GUI-Tests und einfügen der angeforderten Software-GUI-Testinstanz gemäß der Benutzeranforderung in die Test-Warteschlange, wobei die Benutzeranforderung Eingabe durch Auswählen des bestimmten Software-GUI-Tests unter Verwendung der Testergebnis-Webseite ist.
24. Das Verfahren nach Anspruch 17, wobei zumindest einige Software-GUI- Testinstanzen in der Test-Warteschlange mit Prioritäten verbunden sind, wobei das Verfahren weiterhin aufweist abfragen der Software-GUI-Testinstanzen aus der Test-Warteschlange zur Durchführung je nach der zugehörigen Priorität.
25. Das Verfahren nach Anspruch 17, weiterhin aufweisend:
pflegen einer ersten Warteschlange, beinhaltend Software-GUI-Testinstanzen mit einer höheren Priorität, und einer zweiten Warteschlange, beinhaltend Software- GUI-Testinstanzen mit einer niedrigeren Priorität,
abfragen von Software-GUI-Testinstanzen mit einer höheren Priorität aus der ersten Warteschlange zur Testdurchführung in einem ersten Teil einer Testdauer, und abfragen von Software-GUI-Testinstanzen mit einer niedrigeren Priorität aus der zweiten Warteschlange zur Testdurchführung in einem zweiten Teil der Testdauer.
26. Das Verfahren nach Anspruch 17, weiterhin aufweisend zurück übermitteln von Instanzen eines Software-GUI-Tests entsprechend einer Regel zur Durchführung für alle Client-Server-Kombinationen als Antwort auf den Erhalt eines oder mehrerer Testergebnisse für den Software-GUI-Test, welche Fehler anzeigen.
27. Das Verfahren nach Anspruch 17, weiterhin aufweisend erkennen, wenn die Anzahl der Software-GUI-Testinstanzen in der Warteschlange unter einem vorgegebenen Schwellenwert ist, und als Antwort automatisch Software-GUI-Testinstanzen zu der Warteschlange einfügt.
28. Das Verfahren nach Anspruch 17, weiterhin aufweisend automatisches installieren einer aktuelle GUI-Softwareversion auf jedem dezentralisierten Testdurchführung- Computer zu einem oder mehreren geeigneten Zeitpunkten im Verlauf einer Testdauer.
29. Das Verfahren nach Anspruch 17, weiterhin aufweisend automatisches neu hochfahren jedes dezentralisierten Testdurchführung-Computers gemäß eines vorgegebenen Zeitplans.
30. Das Verfahren nach Anspruch 17, weiterhin aufweisend automatisches aufbauen einer Kommunikation zwischen dem dezentralisierten Testdurchführung-Computer und einer Test-Server-Engine, wenn der dezentralisierten Testdurchführung-Computer hochgefahren wird.
31. Das Verfahren nach Anspruch 17, wobei jeder Testdurchführung-Computer im wesentlichen als ein automatischer Testdurchführungsroboter arbeitet, der automatisch und ohne menschlichen Eingriff über einen ausgedehnten Zeitraum hinweg wiederholt anfordert, empfangt und durchführt und die Testergebnisse für Software-GUI-Testinstanzen zurückmeldet.
32. Software zur Durchführung einer dezentralisierten, automatischen Testung grafischer Benutzerschnittstellen (GUI) von Software, wobei die Software auf einem Computerlesbaren Medium verkörpert und bei Ausführung in der Lage ist:
zur Pflege einer zentralisierten Test-Warteschlange, welche in der Lage ist eine Vielzahl von Software-GUI-Testinstanzen zu speichern, die von einer Vielzahl von dezentralisierten Testdurchführung-Computern durchzuführen sind, wobei jeder dezentralisierte Testdurchführung-Computer eine Client-Plattform aufweist und jeweils mit einer oder mehreren Server-Plattformen verbunden ist, wobei die Client- Plattformen und die Server-Plattformen zusammen eine Vielzahl von Client-Server- Kombinationen bieten, für die die Software-GUI-Testinstanzen durchgeführt
werden können; und zum Erhalten einer Anforderung für einen Software-GUI-Testinstanz für jeden dezentralisierten Testdurchführung-Computer von einem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf den Abschluss eines vorhergehende Software-GUI-Testinstanz durch den bestimmten dezentralisierten Testdurchführung-Computer,
zum Abfragen einer Software-GUI-Testinstanz für jeden dezentralisierten Testdurchführung-Computer aus der Warteschlange,
zum Übermitteln der abgefragten Software-GUI-Testinstanz für jeden dezentralisierten Testdurchführung-Computer an den bestimmten dezentralisierten Testdurchführung-Computer zur Durchführung eines Tests für eine bestimmte Client-Server-Kombination unter Verwendung einer Testkomponente, die von dem bestimmten dezentralisierten Testdurchführung-Computer unterstützt wird, wobei die Testkomponente in der Lage ist, automatische Software-GUI-Tests durchzuführen und für solche Testungen Testergebnisse zu produzieren,
zum Erhalt eines Testergebnisses für die Software-GUI-Testinstanz für jeden dezentralisierten Testdurchführung-Computer von dem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf die Durchführung der Software-GUI- Testinstanz, und
zur Speicherung des erhaltenen Testergebnisses für jeden dezentralisierten Testdurchführung-Computer zur Berichterstattung an einen oder mehrere Benutzer.
33. Die Software nach Anspruch 32, wobei mindestens ein dezentralisierter Testdurchführung-Computer an einem geografischen entfernten Ort betrieben wird als die anderen dezentralisierten Testdurchführung-Computern und die Software.
34. Die Software nach Anspruch 32, wobei die Testkomponente ein handelsübliches Standard-Produkt ist.
35. Die Software nach Anspruch 32, wobei jeder Software-GUI-Testinstanz einen Instanz eines Software-GUI-Tests ist, die unter Verwendung einer Test Scripting Language geschrieben ist, und mit jedem der dezentralisierten Testdurchführung- Computer durchgeführt werden kann, wobei eine Software-GUI-Testinstanz von dem bestimmten Testdurchführung-Computer durchgeführt wird, vom dem die Anforderung zum Abfrage des Software-GUI-Tests aus der Test-Warteschlange erhalten wurde.
36. Die Software nach Anspruch 32, weiterhin in der Lage ist, zur:
Erstellung einer Testergebnis-Webseite aufweisend Testergebnisse für eine Vielzahl von Software-GUI-Testinstanzen, einschließlich des Testergebnisses der zuletzt durchgeführten Software-GUI-Testinstanz, im wesentlichen unverzüglich nach dem Erhalt des Testergebnisses von dem bestimmten dezentralisierten Testdurchführung-Computer, auf dem die zuletzt durchgeführte Software-GUI- Testinstanz durchgeführt wurde, und
Übermittlung der Testergebnis-Webseite zur Anzeige auf einem Benutzersystem, um eine im wesentlichen in Echtzeit erfolgende Berichterstattung der Testergebnisse bereitzustellen.
37. Die Software nach Anspruch 36, wobei:
jeder Software-GUI-Testinstanz eine Instanz eines Software-GUI-Tests ist, und weiterhin in der Lage ist eine Testergebnisse-Webseite zu erstellen, welche aufweist konsolidierte Testergebnisse für eine bestimmte Client-Plattform, wobei konsolidierten Testergebnisse Testergebnisse für jeden Software-GUI-Tests für jede Client-Server-Kombinationen angeben, die die bestimmte Client-Plattform betreffen.
38. Die Software nach Anspruch 36, weiterhin in der Lage ist zum Erhalt einer Benutzeranforderung zur Durchführung einer Instanz eines bestimmten Software- GUI-Tests und zum Einfügen der angeforderten Software-GUI-Testinstanz gemäß der Benutzeranforderung in die Test-Warteschlange, wobei die Benutzeranforderung Eingabe durch Auswählen des bestimmten Software-GUI-Tests unter Verwendung der Testergebnis-Webseite ist.
39. Die Software nach Anspruch 32, wobei zumindest einige Software-GUI- Testinstanzen in der Test-Warteschlange mit Prioritäten verbunden sind, wobei die Software weiterhin in der Lage ist zum Abfragen der Software-GUI-Testinstanzen aus der Test-Warteschlange zur Durchführung je nach der zugehörigen Priorität.
40. Die Software nach Anspruch 32, wobei die Test-Warteschlange eine ersten Warteschlange, beinhaltend Software-GUI-Testinstanzen mit einer höheren Priorität, und eine zweite Warteschlange, beinhaltend Software-GUI-Testinstanzen mit einer niedrigeren Priorität, aufweist, wobei die Software weiterhin in der Lage ist zum Abfragen von Software-GUI-Testinstanzen mit einer höheren Priorität aus der ersten Warteschlange zur Durchführung in einem ersten Teil einer Testdauer und zum Abfragen von Software-GUI-Testinstanzen mit einer niedrigeren Priorität aus der zweiten Warteschlange zur Durchführung in einem zweiten Teil der Testdauer.
41. Die Software nach Anspruch 32, weiterhin in der Lage ist zur Zurück-Übermittlung von Instanzen eines Software-GUI-Tests entsprechend einer Regel zur Durchführung für alle Client-Server-Kombinationen als Antwort auf den Erhalt eines oder mehrerer Testergebnisse für den Software-GUI-Test, welche Fehler anzeigen.
42. Die Software nach Anspruch 32, weiterhin in der Lage ist zur Erkennung, wenn die Anzahl der Software-GUI-Testinstanzen in der Warteschlange unter einem vorgegebenen Schwellenwert ist, und als Antwort automatisch Software-GUI- Testinstanzen zu der Warteschlange hinzufügt.
43. Die Software nach Anspruch 32, weiterhin aufweisend Software, die mit jedem dezentralisierten Testdurchführung-Computer verbunden und die in der Lage ist, auf jedem dezentralisierten Testdurchführung-Computer zu einem oder mehreren geeigneten Zeitpunkten im Verlauf einer Testdauer automatisch eine aktuelle GUI- Softwareversion zu installieren.
44. Die Software nach Anspruch 32, weiterhin aufweisend Software, die mit jedem dezentralisierten Testdurchführung-Computer verbunden und die in der Lage ist, einem vorgegebenen Zeitplan folgend jeden dezentralisierten Testdurchführung- Computer automatisch neu hochzufahren.
45. Die Software nach Anspruch 32, weiterhin aufweisend Software, die mit jedem dezentralisierten Testdurchführung-Computer verbunden und die in der Lage ist, beim Hochfahren des dezentralisierten Testdurchführung-Computers automatisch eine Kommunikation mit der Test-Server-Engine aufzubauen, die erforderlich ist, damit der dezentralisierte Testdurchführung-Computer Software-GUI- Testinstanzen zur Testdurchführung erhalten kann.
46. Die Software nach Anspruch 32, wobei jeder Testdurchführung-Computer im wesentlichen als ein automatischer Testdurchführungsroboter arbeitet, der über einen ausgedehnten Zeitraum hinweg automatisch und ohne menschlichen Eingriff wiederholt anfordert, empfängt und durchführt und die Testergebnisse für Software- GUI-Testinstanzen zurückmeldet.
47. Ein System für die dezentralisierte, automatische GUI-Testung von Software, aufweisend:
Mittel zur Pflege einer zentralisierten Test-Warteschlange, in der eine Vielzahl von Software-GUI-Testinstanzen gespeichert sind, die von einer Vielzahl von dezentralisierten Testdurchführung-Computern durchzuführen sind, wobei jeder dezentralisierten Testdurchführung-Computer eine Client-Plattform aufweist und jeweils mit einer oder mehreren Server-Plattformen verbunden sind, wobei die Client- Plattformen und die Server-Plattformen zusammen eine Vielzahl von Client-Server- Kombinationen bieten, für die die Software-GUI-Testinstanzen durchgeführt werden können; und
Mittel zum Erhalt einer Anforderung für einen Software-GUI-Testinstanz von jedem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf den Abschluss eines vorhergehenden Software-GUI-Testinstanz durch den dezentralisierten Testdurchführung-Computer,
Mittel für die Abfrage einer Software-GUI-Testinstanz aus der Warteschlange als Antwort auf die Anforderung durch den bestimmten dezentralisierten Testdurchführung-Computer,
Mittel zur Übermittlung der abgefragten Software-GUI-Testinstanz an den bestimmten dezentralisierten Testdurchführung-Computer zur Durchfiührung eines Tests für eine bestimmte Client-Server-Kombination unter Verwendung einer Testkomponente, die von dem bestimmten dezentralisierten Testdurchführung- Computer unterstützt wird, wobei die Testkomponente in der Lage ist, automatische Software-GUI-Tests durchzuführen und für solche Tests Testergebnisse zu produzieren,
Mittel zum Erhalt eines Testergebnisses für die Software-GUI-Testinstanz von dem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf die Durchführung der Software-GUI-Testinstanz, und
Mittel zur Speicherung des erhaltenen Testergebnisses zur Berichterstattung an einen oder mehrere Benutzer.
48. Ein System für die dezentralisierte, automatische Testung von grafischen Benutzerschnittstellen (GUI) von Software, aufweisend:
eine zentralisierte Test-Warteschlange, in der eine Vielzahl von Software-GUI- Testinstanzen gespeichert sind, die von einer Vielzahl von dezentralisierten Testdurchführung-Computern durchzuführen sind, wobei jeder dezentralisierten Testdurchführung-Computer eine Client-Plattform aufweist und jeweils mit einer oder mehreren Server-Plattformen verbunden ist, wobei die Client-Plattformen und die Server-Plattformen zusammen eine Vielzahl von Client-Server-Kombinationen bieten, für die die Software-GUI-Testinstanzen durchgeführt werden können, wobei jeder Software-GUI-Testinstanz ein Instanz eines Software-GUI-Tests ist, der unter Verwendung einer Text Scripting Language geschrieben und unter Verwendung jedes der dezentralisierten Testdurchführung-Computers ausführbar ist; und
einer Test-Server-Engine welche in der Lage ist für jeden dezentralisierten Testdurchführung-Computer:
erhalten einer Anforderung für einen Software-GUI-Testinstanz von einem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf den Abschluss eines vorhergehenden Software-GUI-Testinstanz durch den bestimmten dezentralisierten Testdurchführung-Computer,
abfragen einer Software-GUI-Testinstanz aus der Warteschlange,
übermitteln der abgefragten Software-GUI-Testinstanz an den bestimmten dezentralisierten Testdurchführung-Computer zur Durchführung eines Tests für eine bestimmte Client-Server-Kombination unter Verwendung einer Testkomponente, die von dem bestimmten dezentralisierten Testdurchführung- Computer unterstützt wird und in der Lage ist, automatische Software-GUI-Tests durchzuführen und für solche Tests Testergebnisse zur Übermittlung an die Test- Server-Engine zu produzieren, wobei der Software-GUI-Test auf dem bestimmten dezentralisierten Testdurchführung-Computer durchgeführt wird, von dem die Anforderung zum Abfrage des Software-GUI-Tests aus der Test- Warteschlange erhalten wurde,
erhalten eines Testergebnisses für die Software-GUI-Testinstanz von dem bestimmten dezentralisierten Testdurchführung-Computer als Antwort auf die Durchführung der Software-GUI-Testinstanz, und
speichern des erhaltenen Testergebnisses in einer Testergebnis-Datenbank zur Berichterstattung an einen oder mehrere Benutzer, und
erstellen einer Testergebnis-Webseite, welche aufweist die Testergebnissen für die Vielzahl von Software-GUI-Testinstanzen,
wobei jeder Testdurchführung-Computer im wesentlichen als ein automatischer Testdurchführungsroboter arbeitet, der über einen ausgedehnten Zeitraum hinweg automatisch und ohne menschlichen Eingriff wiederholt anfordert, empfängt und durchführt und die Testergebnisse für Software-GUI-Testinstanzen zurückmeldet, und
ein Web-Server, der in der Lage ist:
zum Zugreifen auf die Testergebnis-Datenbank zum Erhalt von Testergebnissen für eine Vielzahl von Software-GUI-Testinstanzen, und
zur Übermittlung der Testergebnisse-Webseite zur Anzeige auf einem Benutzersystem als Grundlage für eine im wesentlichen in Echtzeit erfolgende Testergebnisse-Berichterstattung.
DE10255125A 2001-11-29 2002-11-26 Dezentralisierte Automatische Testung von Grafischen Benutzerschnittstellen(GUI) von Software Withdrawn DE10255125A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/998,363 US7055137B2 (en) 2001-11-29 2001-11-29 Distributed automated software graphical user interface (GUI) testing

Publications (1)

Publication Number Publication Date
DE10255125A1 true DE10255125A1 (de) 2003-07-31

Family

ID=25545108

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10255125A Withdrawn DE10255125A1 (de) 2001-11-29 2002-11-26 Dezentralisierte Automatische Testung von Grafischen Benutzerschnittstellen(GUI) von Software

Country Status (3)

Country Link
US (1) US7055137B2 (de)
DE (1) DE10255125A1 (de)
TW (1) TWI238316B (de)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131088A1 (en) * 2002-01-10 2003-07-10 Ibm Corporation Method and system for automatic selection of a test system in a network environment
US7050921B2 (en) * 2002-04-23 2006-05-23 Agilent Technologies, Inc. Electronic test program with run selection
US7165240B2 (en) * 2002-06-20 2007-01-16 International Business Machines Corporation Topological best match naming convention apparatus and method for use in testing graphical user interfaces
DE10260614B4 (de) * 2002-12-23 2008-01-31 Advanced Micro Devices, Inc., Sunnyvale Plasmaparametersteuerung unter Verwendung von Lerndaten
US7565607B2 (en) * 2003-01-07 2009-07-21 Microsoft Corporation Automatic image capture for generating content
US20040130572A1 (en) * 2003-01-07 2004-07-08 Aravind Bala Active content wizard: execution of tasks and structured content
US20050114785A1 (en) * 2003-01-07 2005-05-26 Microsoft Corporation Active content wizard execution with improved conspicuity
US8261239B2 (en) * 2003-03-25 2012-09-04 International Business Machines Corporation Locating a testable object in a functional testing tool
US7451455B1 (en) * 2003-05-02 2008-11-11 Microsoft Corporation Apparatus and method for automatically manipulating software products
US7512039B1 (en) * 2003-05-27 2009-03-31 Oracle International Corporation Method for enhancing functionality of an automated testing tool
US7526410B2 (en) * 2003-07-03 2009-04-28 Microsoft Corporation Remote computer graphics performance testing
US7984427B2 (en) * 2003-08-07 2011-07-19 International Business Machines Corporation System and methods for synchronizing software execution across data processing systems and platforms
US7721289B2 (en) * 2003-08-29 2010-05-18 Microsoft Corporation System and method for dynamic allocation of computers in response to requests
US20050096864A1 (en) * 2003-10-31 2005-05-05 Bonilla Carlos A. Method and system for managing a testing task
US7386579B2 (en) * 2003-11-12 2008-06-10 Siemens Product Life Cycle Management Software Inc. System, method, and computer program product for storing test results in a database
US7720905B1 (en) * 2003-12-23 2010-05-18 Vignette Software Llc Method and system for automated digital asset management on client-server computer network
US20050234708A1 (en) * 2004-04-19 2005-10-20 Nuvotec, Inc. Notation enabling all activity between a system and a user to be defined, and methods for using the same
KR101120756B1 (ko) * 2004-07-08 2012-03-23 마이크로소프트 코포레이션 사용자 인터페이스 상에서의 사용자 액션을 설명하는텍스트를 자동으로 생성하는 시스템, 방법 및 그 컴퓨터실행가능 명령어를 포함하는 컴퓨터 판독가능 매체
US7574625B2 (en) * 2004-09-14 2009-08-11 Microsoft Corporation Active content wizard testing
US20060075391A1 (en) * 2004-10-05 2006-04-06 Esmonde Laurence G Jr Distributed scenario generation
US7602958B1 (en) * 2004-10-18 2009-10-13 Kla-Tencor Corporation Mirror node process verification
US8117591B1 (en) 2005-01-07 2012-02-14 Interactive TKO, Inc. Graphical model for test case viewing, editing, and reporting
US8060864B1 (en) * 2005-01-07 2011-11-15 Interactive TKO, Inc. System and method for live software object interaction
US7673179B2 (en) * 2005-02-07 2010-03-02 Lsi Corporation Online testing unification system with remote test automation technology
US20060184880A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Discoverability of tasks using active content wizards and help files - the what can I do now? feature
US8583694B2 (en) 2005-05-09 2013-11-12 Atlas Development Corporation Health-care related database middleware
US7702958B2 (en) * 2005-05-24 2010-04-20 Alcatel-Lucent Usa Inc. Auto-recording tool for developing test harness files
US7996255B1 (en) * 2005-09-29 2011-08-09 The Mathworks, Inc. System and method for providing sales leads based on-demand software trial usage
US7502967B1 (en) 2005-10-31 2009-03-10 Hewlett-Packard Development Company, L.P. Identifying an object in a data file that causes an error in an application
US7730452B1 (en) 2005-11-01 2010-06-01 Hewlett-Packard Development Company, L.P. Testing a component of a distributed system
US8166458B2 (en) * 2005-11-07 2012-04-24 Red Hat, Inc. Method and system for automated distributed software testing
GB0522734D0 (en) * 2005-11-08 2005-12-14 Ibm Method and system for simultaneous testing of applications
CN1987819A (zh) * 2005-12-21 2007-06-27 三星电子株式会社 选择性测试方法及其测试设备
US8060863B2 (en) * 2006-05-19 2011-11-15 Sap Ag Conformance control module
US7543184B2 (en) * 2006-05-23 2009-06-02 The Mathworks, Inc. System and method for distributing system tests in parallel computing environments
US7640470B2 (en) * 2006-08-21 2009-12-29 Microsoft Corporation Meta-data driven test-data generation with controllable combinatorial coverage
US7644315B2 (en) * 2006-10-30 2010-01-05 Google Inc. Diagnostics and error reporting for common tagging issues
US7823138B2 (en) * 2006-11-14 2010-10-26 Microsoft Corporation Distributed testing for computing features
US7913230B2 (en) * 2007-01-31 2011-03-22 Oracle International Corporation Computer-implemented methods and systems for generating software testing documentation and test results management system using same
US8201150B2 (en) * 2007-03-20 2012-06-12 International Business Machines Corporation Evaluating software test coverage
US7827273B2 (en) * 2007-03-26 2010-11-02 Microsoft Corporation Machine cluster topology representation for automated testing
US8020151B2 (en) * 2007-07-31 2011-09-13 International Business Machines Corporation Techniques for determining a web browser state during web page testing
US7831865B1 (en) * 2007-09-26 2010-11-09 Sprint Communications Company L.P. Resource allocation for executing automation scripts
US7856574B2 (en) * 2007-09-27 2010-12-21 Microsoft Corporation Internet connectivity evaluation
US8261238B2 (en) * 2008-03-04 2012-09-04 Microsoft Corporation Shield for user interface testing
US7536648B1 (en) * 2008-03-31 2009-05-19 International Business Machines Corporation Method for automatically updating graphic user interface (GUI) objects
US20090254329A1 (en) * 2008-04-03 2009-10-08 International Business Machines Corporation Method for virtualization of input devices for parallel execution of test automation scripts
US8645919B2 (en) * 2008-04-16 2014-02-04 Microsoft Corporation Generic validation test framework for graphical user interfaces
US8850458B1 (en) * 2008-06-06 2014-09-30 Amdocs Software Systems Limited System, method, and computer program for combining results of event processing received from a plurality of servers
CN101634860A (zh) * 2008-07-21 2010-01-27 鸿富锦精密工业(深圳)有限公司 模拟控制设备及应用该模拟控制设备的测试系统及方法
US8185910B2 (en) * 2008-08-27 2012-05-22 Eric Sven-Johan Swildens Method and system for testing interactions between web clients and networked servers
US20100064282A1 (en) * 2008-09-05 2010-03-11 Microsoft Corporation Declarative testing for user interfaces
US9111019B2 (en) 2008-09-30 2015-08-18 Interactive TKO, Inc. Modeling and testing interactions between components of a software system
US20100131927A1 (en) * 2008-11-24 2010-05-27 Ibm Corporation Automated gui testing
US8850395B2 (en) * 2009-12-03 2014-09-30 International Business Machines Corporation Managing graphical user interface (GUI) objects in a testing environment
US9495282B2 (en) * 2010-06-21 2016-11-15 Salesforce.Com, Inc. Method and systems for a dashboard testing framework in an online demand service environment
US8667467B2 (en) * 2010-07-26 2014-03-04 Sap Aktiengesellschaft Dynamic test scripts
US9715483B2 (en) 2010-09-16 2017-07-25 International Business Machines Corporation User interface for testing and asserting UI elements with natural language instructions
US8904356B2 (en) 2010-10-20 2014-12-02 International Business Machines Corporation Collaborative software debugging in a distributed system with multi-member variable expansion
US9009673B2 (en) 2010-10-21 2015-04-14 International Business Machines Corporation Collaborative software debugging in a distributed system with collaborative step over operation
US8972945B2 (en) 2010-10-21 2015-03-03 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific access control
US8671393B2 (en) 2010-10-21 2014-03-11 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific dynamic breakpoints
US8984490B1 (en) 2010-10-26 2015-03-17 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US8966454B1 (en) 2010-10-26 2015-02-24 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US20120102462A1 (en) * 2010-10-26 2012-04-26 Microsoft Corporation Parallel test execution
US8850397B2 (en) * 2010-11-10 2014-09-30 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific display of local variables
US8990775B2 (en) 2010-11-10 2015-03-24 International Business Machines Corporation Collaborative software debugging in a distributed system with dynamically displayed chat sessions
US9411709B2 (en) 2010-11-10 2016-08-09 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific event alerts
US9064054B2 (en) * 2010-12-29 2015-06-23 Red Hat, Inc. Synchronizing execution of a testing application
ES2707230T3 (es) * 2011-01-31 2019-04-03 Tata Consultancy Services Ltd Prueba del ciclo de vida
US8739127B2 (en) 2011-04-20 2014-05-27 International Business Machines Corporation Collaborative software debugging in a distributed system with symbol locking
US8806438B2 (en) 2011-04-20 2014-08-12 International Business Machines Corporation Collaborative software debugging in a distributed system with variable-specific messages
US8656360B2 (en) 2011-04-20 2014-02-18 International Business Machines Corporation Collaborative software debugging in a distributed system with execution resumption on consensus
US8756577B2 (en) 2011-06-28 2014-06-17 International Business Machines Corporation Collaborative software debugging in a distributed system with private debug sessions
US9405664B2 (en) * 2011-08-31 2016-08-02 Hewlett Packard Enterprise Development Lp Automating software testing
US8826084B1 (en) * 2011-09-07 2014-09-02 Innovative Defense Technologies, LLC Method and system for implementing automated test and retest procedures
WO2013078269A1 (en) 2011-11-22 2013-05-30 Solano Labs, Inc. System of distributed software quality improvement
US10169213B2 (en) * 2011-11-29 2019-01-01 Red Hat, Inc. Processing of an application and a corresponding test file in a content repository
CN103186459B (zh) * 2011-12-30 2016-05-11 迈普通信技术股份有限公司 基于脚本的java图形用户界面自动测试方法
US9077646B2 (en) * 2012-02-13 2015-07-07 Fluke Corporation Method and apparatus for testing and displaying test results
US8984341B1 (en) * 2012-05-08 2015-03-17 Amazon Technologies, Inc. Scalable testing in a production system with autoscaling
US9495281B2 (en) * 2012-11-21 2016-11-15 Hewlett Packard Enterprise Development Lp User interface coverage
CN103902446B (zh) * 2012-12-27 2017-04-05 北京新媒传信科技有限公司 一种网络服务器自动化测试的方法和装置
US9104814B1 (en) * 2013-05-03 2015-08-11 Kabam, Inc. System and method for integrated testing of a virtual space
US9465726B2 (en) * 2013-06-05 2016-10-11 Vmware, Inc. Abstract layer for automatic user interface testing
CN103455425B (zh) * 2013-09-25 2016-08-17 中国银行股份有限公司 一种分布式测试系统及方法
US20150128103A1 (en) * 2013-11-07 2015-05-07 Runscope, Inc. System and method for automating application programming interface integration
US10025839B2 (en) 2013-11-29 2018-07-17 Ca, Inc. Database virtualization
US9552459B2 (en) * 2014-01-07 2017-01-24 Mckesson Financial Holdings Method and apparatus for implementing a task plan including transmission of one or more test messages
US9727314B2 (en) 2014-03-21 2017-08-08 Ca, Inc. Composite virtual services
US9531609B2 (en) 2014-03-23 2016-12-27 Ca, Inc. Virtual service automation
US9811451B1 (en) * 2015-09-17 2017-11-07 Amazon Technologies, Inc. Distributed software testing
CN105281978B (zh) * 2015-10-23 2019-02-19 小米科技有限责任公司 一种性能测试的方法、装置和系统
US9703683B2 (en) * 2015-11-24 2017-07-11 International Business Machines Corporation Software testing coverage
JP6641936B2 (ja) * 2015-12-01 2020-02-05 富士通株式会社 情報処理装置、情報処理プログラム、及び情報処理方法
US10285084B2 (en) * 2015-12-15 2019-05-07 Dc Mobility Holdings, Llc Apparatus, system and method for testing of communication networks with prescribed communication traffic
US10114736B2 (en) 2016-03-30 2018-10-30 Ca, Inc. Virtual service data set generation
US9898390B2 (en) 2016-03-30 2018-02-20 Ca, Inc. Virtual service localization
US11392277B2 (en) 2017-10-13 2022-07-19 Rainforest Qa, Inc. Electronic product testing systems
US10545553B2 (en) 2017-06-30 2020-01-28 International Business Machines Corporation Preventing unexpected power-up failures of hardware components
US10534698B2 (en) * 2017-08-24 2020-01-14 Salesforce.Com, Inc. Stateless self-sufficient test agents
CN107748717A (zh) * 2017-09-26 2018-03-02 深圳市牛鼎丰科技有限公司 接口自动化测试方法、装置、存储介质和计算机设备
US11379253B2 (en) 2020-11-30 2022-07-05 International Business Machines Corporation Training chatbots for remote troubleshooting
KR20220046697A (ko) * 2021-02-26 2022-04-14 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 자동화 테스트 방법, 장치, 전자기기, 저장매체 및 컴퓨터 프로그램
US11593251B2 (en) * 2021-03-03 2023-02-28 Oracle International Corporation Techniques for large-scale functional testing in cloud-computing environments
US11860771B1 (en) * 2022-09-26 2024-01-02 Browserstack Limited Multisession mode in remote device infrastructure

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600789A (en) * 1992-11-19 1997-02-04 Segue Software, Inc. Automated GUI interface testing
US5371883A (en) * 1993-03-26 1994-12-06 International Business Machines Corporation Method of testing programs in a distributed environment
US5909544A (en) * 1995-08-23 1999-06-01 Novell Inc. Automated test harness
US6067639A (en) * 1995-11-09 2000-05-23 Microsoft Corporation Method for integrating automated software testing with software development
US6473707B1 (en) * 1998-08-21 2002-10-29 National Instruments Corporation Test executive system and method including automatic result collection
US6182245B1 (en) * 1998-08-31 2001-01-30 Lsi Logic Corporation Software test case client/server system and method
US6510402B1 (en) * 1999-02-04 2003-01-21 International Business Machines Corporation Component testing with a client system in an integrated test environment network
US6701514B1 (en) * 2000-03-27 2004-03-02 Accenture Llp System, method, and article of manufacture for test maintenance in an automated scripting framework
US6467537B1 (en) * 2000-05-17 2002-10-22 Carrier Corporation Advanced starting control for multiple zone system
US6804709B2 (en) * 2001-02-20 2004-10-12 Microsoft Corporation System uses test controller to match different combination configuration capabilities of servers and clients and assign test cases for implementing distributed testing
CA2445195A1 (en) * 2001-04-24 2002-10-31 Wvhtc Foundation Software suitability testing system

Also Published As

Publication number Publication date
TWI238316B (en) 2005-08-21
US7055137B2 (en) 2006-05-30
US20030098879A1 (en) 2003-05-29
TW200300881A (en) 2003-06-16

Similar Documents

Publication Publication Date Title
DE10255125A1 (de) Dezentralisierte Automatische Testung von Grafischen Benutzerschnittstellen(GUI) von Software
DE60220287T2 (de) System und verfahren zur überwachung von software-warteschlangenanwendungen
DE19607515B4 (de) Computer mit Prozessverwalter
DE69712678T3 (de) Verfahren zur Echtzeitüberwachung eines Rechnersystems zu seiner Verwaltung und Hilfe zu seiner Wartung während seiner Betriebsbereitschaft
DE69822935T2 (de) Vorrichtung und Verfahren zur dynamischen Regelung der Betriebsmittelzuweisung in einem Computersystem
DE69531599T2 (de) Verfahren und Gerät zum Auffinden und Beschaffen personalisierter Informationen
DE19861002C2 (de) Computerprogramm zur Synchronisation von Leistungsdaten in verteilten Rechnerumgebungen
DE69433616T2 (de) Zentralisiertes system und verfahren zur verwaltung rechnergestützter tests
DE2244402A1 (de) Datenverarbeitungsanlage
DE3911465C2 (de) Verfahren zur automatischen Konfiguration technischer Systeme aus Komponenten
EP0807883B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE102004057021A1 (de) Verfahren und System zum Testen eines Computersystems durch ein Anlegen einer Last
DE69937266T2 (de) Anwenderschnittstelle für Datenverarbeitungssystem mit Jobüberwachung
DE102005008520A1 (de) Verfahren zum Überwachen eines Verzeichnisses in einem Computersystem, Computerprogramm-Produkt und Computersystem zum Ausführen dieses Verfahrens
DE60219821T2 (de) Verfahren und gerät zum wiedergewinnen von zeitreihedaten, die mit einer aktivität in beziehung stehen
DE112011103443T5 (de) Intelligente Schnittstelle für ein dezentrales Steuerungssystem
DE102006036796A1 (de) Zeitplanmanagement
DE202017106569U1 (de) Analyse grossangelegter Datenverarbeitungsaufträge
EP1657670A1 (de) System und Verfahren zur Status- und Fortschriftskontrolle eines technischen Prozesses oder eines technischen Projektes
DE112013006588T5 (de) Verwaltungssystem zum Verwalten eines Computersystems und Verwaltungsverfahren hierfür
EP2648094B1 (de) Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses
DE102019005935A1 (de) Numerische steuereinheit
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
EP0525214B1 (de) Verfahren zum Betreiben eines Automatisierungsgeräts
DE102020123911A1 (de) Synchronisierung des verhaltens mehrerer instrumente mithilfe von aufträgen und zwischenzielen

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee