-
Gebiet
-
Die vorliegende Erfindung bezieht sich auf das Gebiet des Softwaretestens und im Besonderen auf die Erzeugung eines automatisierten Test-Ausführungsplans.
-
Hintergrund
-
Das Testen von Software ist ein kritisches Element in der Softwareentwicklung. Es existiert eine Vielzahl von automatisierten Softwaretools, um beim Management und/oder der Performance von Software-Tests zu unterstützen. Zum Beispiel führt ein automatisiertes Test-Tool vordefinierte Skripte aus, die die Nutzung der Software simulieren. Andere Tools fokussieren sich auf die Erzeugung von verschiedenen Testprozessartefakten, wie zum Beispiel Testfälle und Projektzeitlinien.
-
Allerdings ist die konventionelle Erzeugung von Test-Ausführungsplänen immer noch ein manueller Prozessor trotz dieser Tools. Die Erzeugung eines Test-Ausführungsplans erfordert die Beachtung vieler Faktoren, die oft in Systemen gespeichert sind, die extern gegenüber des Software-Testsystems sind. Zum Beispiel würde die Bestimmung der Verfügbarkeit von Softwaretestern die Konsultierung eines Projektmanagements und/oder Kalenderprogramms erfordern, wohingegen die testbezogene Information sich innerhalb des Software-Testsystems befindet.
-
Wegen seiner manuellen Natur ist dieser Prozess zeitraubend und wird leicht von menschlichen Fehlern beeinflusst. Für verschiedenes Personal ist es möglich, unterschiedliche Test-Ausführungspläne basierend auf denselben Datenparametern zu erzeugen. Ferner können die unterschiedlichen Test-Ausführungspläne in unterschiedlichen Formaten gespeichert werden. Diese fehlende Standardisierung behindert eine aussagekräftige Analyse der Test-Ausführungspläne und ihrer Inhalte wie zum Beispiel die Bestimmung von Lücken in der Testabdeckung.
-
Zusammenfassung
-
Die vorliegende Offenbarung bietet ein Verfahren zur automatischen Erzeugung eines Test-Ausführungsplans für das Testen von Software. Die Erzeugung des Test-Ausführungsplans wird durch ein Test-Ausführungsplan-Erzeugungstool durchgeführt. Das Test-Ausführungsplan-Erzeugungstool nutzt ein vordefiniertes Test-Ausführungsplan-Datenmodell in Verbindung mit nutzerkonfigurierten Testparametern. Das vordefinierte Test-Ausführungsplan-Datenmodell umfasst Test-Metadaten, die die Software-Test-Domaindaten des Software-Test-Systems repräsentieren, das zur Bewertung der Softwareanwendung im Test genutzt wird. Die nutzerkonfigurierten Testparameter bieten die spezifischen Testparameter für den Test-Ausführungsplan.
-
Ein Aspekt der vorliegenden Erfindung kann ein Verfahren und ein Computerprogrammprodukt zur automatischen Erzeugung von Test-Ausführungsplänen umfassen. Ein Satz nutzerkonfigurierter Testparameter für eine Softwareanwendung im Test kann durch ein Test-Ausführungsplan-Erzeugungstool empfangenen werden. Zum Beispiel kann eine grafische Nutzerschnittstelle auf einem Client präsentiert werden, der Nutzereingaben innerhalb von durch die Schnittstelle definierten grafischen Nutzerschnittstellen-Feldern akzeptiert, wobei die Nutzereingabe die Testparameter spezifiziert, die an einen Server übermittelt werden, der das Test-Ausführungsplan-Erzeugungstool hostet. Die nutzerkonfigurierten Testparameter können mit einem Eintrag korrelieren, der sich in einem vordefinierten Test-Ausführungsplan-Datenmodell befindet, das mit dem Test-Ausführungsplan-Erzeugungstool assoziiert ist. Zumindest ein Testziel für die Softwareanwendung kann durch die nutzerdefinierbaren Testparameter definiert werden. Ein Test-Ausführungsplan kann automatisch erzeugt werden unter der Verwendung der nutzerkonfigurierten Testparameter und eines vordefinierten Test-Ausführungsplan-Datenmodells. Das vordefinierte Test-Ausführungsplan-Datenmodell kann Test-Metadaten beinhalten, die die Software-Test-Domaindaten für ein Software-Testsystem repräsentieren, das zur Bewertung der Softwareanwendung im Test benutzt wird. Die Test-Metadaten können Details geteilter begrenzter Ressourcen eines Testcenters spezifizieren, der durch alle Projekte im Test geteilt wird. Der erzeugte Test-Ausführungsplan kann eine spezifische Zuordnung der begrenzten geteilten Ressourcen, die für zumindest eine Phase des Testes der Softwareanwendung dediziert sind, um das zumindest eine Testziel für die Softwareanwendung zu erreichen, genau beschreiben.
-
Ein anderer Aspekt der vorliegenden Erfindung kann ein System zur automatischen Erzeugung von Test-Ausführungsplänen umfassen. Solch ein System kann nutzerkonfigurierte Testparameter, ein vordefiniertes Test-Ausführungsplan-Datenmodell und ein Test-Ausführungsplan-Erzeugungstool umfassen. Die nutzerkonfigurierten Testparameter können Test-Anforderungen für eine Softwareanwendung im Test definieren, die innerhalb eines Software-Testsystems bewertet werden sollen. Zumindest ein Testziel für eine Softwareanwendung kann durch die nutzerkonfigurierten Testparameter definiert werden. Das vordefinierte Test-Ausführungsplan-Datenmodell kann Test-Metadaten zur Erzeugung eines Test-Ausführungsplans für die Softwareanwendung im Test definieren. Die Test-Metadaten können reprasentativ für die Software-Testdomain-Daten des Software-Testsystems sein. Die Test-Metadaten können Details begrenzter geteilter Ressourcen eines Testcenters spezifizieren, das durch alle Projekte im Test geteilt wird, wobei der erzeugte Test-Ausführungsplan die spezifische Zuordnung der begrenzten geteilten Ressourcen, die für zumindest eine Phase des Testes der Softwareanwendung dediziert sind, um das zumindest eine Testziel für die Softwareanwendung zu erreichen, genau beschreiben. Das Test-Ausführungsplan-Erzeugungstool kann dazu ausgebildet sein, automatisch den Test-Erzeugungsplan für die Softwareanwendung im Test unter Verwendung der nutzerkonfigurierten Testparameter und des vordefinierten Test-Ausführungsplan-Datenmodells zu erzeugen. Jeder erzeugte Test-Ausführungsplan kann spezifische Zuordnungen der begrenzten geteilten Ressourcen umfassen, die für zumindest eine Phase des Testes der Software-Anwendung dediziert sind, um das zumindest eine Testziel für die Softwareanwendung zu erreichen.
-
Kurze Beschreibung der Zeichnungen
-
Ausführungsformen der Erfindung werden nun lediglich beispielhaft mit Bezugnahme auf die angehängten Zeichnungen beschrieben, in denen:
-
1 ein schematisches Diagramm ist, das ein System illustriert, das ein Test-Ausführungsplan-Erzeugungstool nutzt, um automatisch einen Test-Ausführungsplan für eine Softwareanwendung im Test nach Ausführungsformen der erfinderischen, hier offenbarten Anordnungen zu erzeugen.
-
2 ist eine detaillierte Illustration des Test-Ausführungsplan-Erzeugungstools nach Ausführungsformen der hier offenbarten erfinderischen Anordnungen.
-
3 ist ein Beispiel-Datenbankschema für ein Test-Ausführungsplan-Datenmodell nach Ausführungsformen der hier offenbarten erfinderischen Anordnungen.
-
4 ist ein Flussdiagramm eines Verfahrens, das die automatische Erzeugung eines Test-Ausführungsplans beschreibt, das durch ein Test-Ausführungsplan-Erzeugungstool nach Ausführungsformen der hier offenbarten erfinderischen Anordnungen ausgeführt wird.
-
Detaillierte Beschreibung
-
Die Offenbarung bietet eine Lösung für computererzeugte, datengesteuerte Test-Ausführungspläne (zum Beispiel Test-Ausführungsanweisungen), die gewünschte Testabdeckungsziele erfüllen und die einen begrenzten Satz geteilter Ressourcen für den Test nutzen. Daten (die statische und dynamische Daten umfassen können), die den begrenzten Satz geteilter Testressourcen betreffen, können ständig in einem nichtflüchtigen Speicher sein und mit nutzerkonfigurierten testspezifischen Parametern kombiniert werden, wobei diese Daten eine Zuordnung der geteilten Testressourcen bestimmen, die für eine allgemeine Testauslastung gegeben sind. Die allgemeine Testauslastung kann einen Satz ausstehender Testaktionen umfassen, die für mehrere gleichzeitig ablaufende Projekte genötigt werden, die unabhängig voneinander sein können.
-
In einer Ausführungsform kann die Lösung Tester und Testfallprofile modellieren, kann eine Testqualitätsmetrik pflegen und Testumgebungsdaten umfassen, welche Datenelemente sind, die genutzt werden, wenn datengesteuerte Test-Ausführungspläne erzeugt werden. Ferner kann die Lösung in existierende Test-Trackingstools, Scheduling-Tools, Ressource-Management-Systeme, Projektmanagementsysteme und ähnliche integriert werden, was dem Test-Ausführungsplan-Erzeuger ermöglicht, existierende Informationen zu hebeln, um den toolspezifischen Overhead und Pflegeaktionen zu reduzieren.
-
Ein Testplan-Erzeuger der Lösung kann ausreichend robust sein, um mit einer Myriade von Variablen umzugehen, die zur Identifizierung eines passenden Satzes von Testfällen beitragen, die von einem erzeugten Testplan umfasst werden sollten. Diese Variablen können eine gewünschte Testumgebungsabdeckung (das heißt, abhängig von einem Produkt im Test spezialisierte Ressourcen umfassen kann, die eine spezifische OS-Plattform, Datenbank, Anwendungsserver nutzen), gewünschte Produktabdeckung (zum Beispiel Akzeptanztests, Regression, volle Produktabdeckung usw.), gewünschte Komponentenabdeckung (zum Beispiel Einstellungstests basierend auf einer vergangenen Qualitätsmetrik pro Komponente, Zielobjekte eines Tests usw.). Test der Verfügbarkeit und Fähigkeitslevel und Ähnliches, obwohl sie nicht darauf begrenzt sind.
-
In einer Ausführungsform kann die Lösung eine Login- und Analysefunktionalität umfassen, die bei erzeugten Plänen bestehen bleibt. Die Analysefunktion kann genutzt werden, um beliebige Abdeckungslücken in einer Serie von Testplänen, die einen Projekttestplan bilden, zu detektieren, um sicherzustellen, dass ein Projekt umfassend getestet wurde. Zusätzlich kann die Speicherung und Analyse von Plänen genutzt werden, um eine Feedback-Training-Schleife zu etablieren, die benutzt werden, um automatisch das Verhalten des Test-Ausführungsplans-Erzeugers einzustellen, um sicherzustellen, dass erzeugte Pläne über die Zeit selbstanpassend sind.
-
Die Verwendung der offenbarten Lösung kann Fehler eliminieren, die oft durch manuell erstellte Test-Ausführungspläne verursacht werden. Zusätzlich kann Managern, die verantwortlich für Tests sind, eine neue Möglichkeit zur einfachen Neuerstellung von Plänen mit Variationen gestattet werden, um optionale Testansätze mit bekannten Risiken zu bestimmen. Jeder erzeugte Testplan kann im vollen Umfang basierend auf mehreren nutzerkonfigurierbaren Kriterien angepasst werden. Ferner können sich Testpläne automatisch basierend auf Veränderungen in verfügbaren Testressourcen, verändernden Testzielen und verändernden Prioritäten zwischen einem Satz von konkurrierenden Projekten im Test anpassen.
-
Die vorliegende Erfindung kann als ein Verfahren, System oder Computerprogrammprodukt ausgeführt sein. Demnach kann die vorliegende Erfindung die Form einer vollkommenen Hardwareausführung, einer vollkommenen Softwareausführung (umfassend Firmware, residente Software, Mikrocode usw.) oder eine Ausführungsform, die Software- und Hardwareaspekte miteinander kombiniert, die alle im Allgemeinen hier als „Schaltkreis”, „Modul” oder „System” bezeichnet werden, annehmen. Darüber hinaus kann die vorliegende Erfindung in Form eines Computerprogrammprodukts auf einem computernutzbaren Speichermedium mit computernutzbaren Programmcode, der in diesem Medium ausgeführt ist, annehmen. In einer bevorzugten Ausführungsform wird die Erfindung in Software implementiert, was Firmware, residente Software, Mikrocode, usw. umfasst, aber nicht darauf begrenzt ist.
-
Darüber hinaus kann die Erfindung die Form eines Computerprogrammprodukts annehmen, auf das von einem Computer nutzbaren oder computerlesbaren Medium zugegriffen werden kann, das Programmcode zur Nutzung durch oder in Verbindung mit einem Computer oder einem Instruktions-Ausführungssystem bereitstellt.
-
Ein beliebiges passendes computernutzbares oder computerlesbares Medium kann verwendet werden. Das computernutzbare oder computerlesbare Medium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder Halbleitersystem, Apparat, Vorrichtung oder Ausbreitungsmedium sein, wobei es aber nicht darauf begrenzt ist. Beispiele eines computerlesbaren Mediums umfassen einen Halbleiter oder Festkörperspeicher, ein magnetisches Band, eine entfernbare Computerdiskette, Arbeitsspeicher (Random Access Memory, RAM), einen Festwertspeicher (Read Only Memory, ROM), einen löschbaren programmierbaren Festwertspeicher (Erasable Programmable Read Only Memory, EPROM) oder Flashspeicher, eine starre Magnetplatte oder eine optische Magnetplatte umfassen. Gegenwärtige Beispiele optischer Platten umfassen Festwerkspeicher Compact Discs (Compact Disc Read Only Memory, CD-ROM), Compact Discs-Lesen/Schreiben (Compact Disc-Read/Write, CD-R/W) und DVD.
-
Computerprogrammcodes zur Ausführung von Betriebsschritten der vorliegenden Erfindung können in einer objektorientierten Programmsprache, wie zum Beispiel Java, Smalltalk, C++ oder Ähnlichem geschrieben sein. Allerdings kann der Computerprogrammcode zur Ausführung der Betriebsschritte der vorliegenden Erfindung auch in konventionellen prozeduralen Programmiersprachen, wie zum Beispiel „C”-Programmiersprachen oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann insgesamt auf dem Computer des Nutzers, teilweise auf dem Computer des Nutzers, als Stand-alone-Softwarepaket, teilweise auf dem Computer des Nutzers und teilweise auf einem Remote-Computer oder insgesamt auf dem Remote-Computer oder Server ausgeführt werden. Im letzteren Szenario kann der Remote-Computer mit dem Computer des Nutzers über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Write-Verkehrsnetzwerk (Write Area Network, WAN) verbunden sein oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet Service Providers).
-
Ein Datenverarbeitungssystem, das zur Speicherung und/oder Ausführung von Programmcodes geeignet ist, umfasst zumindest einen Prozessor, der direkt oder indirekt mit Speicherelementen über einen Systembus verbunden ist. Die Speicherelemente können lokalen Speicher, der während einer wirklichen Ausführung des Programmcodes genutzt wird, einen Massenspeicher und Cache-Speicher umfassen, die temporär die Speicherung von zumindest etwas Programmcode ermöglichen, um die Anzahl der Vorgänge, wenn der Code von dem Massenspeicher während der Ausführung empfangenen wird, zu reduzieren.
-
Eingabe-/Ausgabe- oder E/A-Vorrichtungen (umfassend aber nicht begrenzt auf Tastaturen, Anzeigen, Zeichengeräte, usw.) können mit dem System entweder direkt oder über einen intervenierenden E/A-Controller verbunden sein.
-
Netzwerkadapter können auch mit dem System verbunden sein, um zu ermöglichen, dass das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen oder Remotedruckern oder Speichervorrichtungen über intervenierende private oder öffentliche Netzwerke verbunden wird. Modems, Kabelmodems und Ethernetkarten sind nur ein paar der gegenwärtig verfügbaren Arten von Netzwerkadaptern.
-
Die vorliegende Erfindung wird weiter unten mit Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockdiagramme von Verfahren, Apparaten (auf Systemen) und Computerprogrammprodukten nach Ausführungsformen der Erfindung beschrieben. Es ist so zu verstehen, dass jeder Block der Flussdiagrammdarstellungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Flussdiagrammdarstellungen und/oder Blockdiagrammen durch Computerprogramminstruktionen implementiert werden können. Diese Computerprogramminstruktionen können einen Prozessor eines Allgemeinzweckcomputers, eines Spezialzweckcomputers oder anderen programmierbaren Datenverarbeitungsapparaten zur Verfügung gestellt werden, um eine Maschine herzustellen, sodass die Instruktionen, die durch den Prozessor des Computers oder des anderen programmierbaren Datenverarbeitungsapparates ausgeführt werden, Mittel erzeugen zur Implementierung der Funktionen/Handlungen, die in dem Flussdiagramm und/oder Blockdiagrammblock oder Blöcken spezifiziert sind.
-
Diese Computerprogramminstruktionen können auch auf einem computerlesbaren Speicher gespeichert sein, der einen Computer oder einen anderen programmierbaren Datenverarbeitungsapparat dazu veranlassen kann, in einer bestimmten Art zu funktionieren, sodass die Instruktionen, die auf dem computerlesbaren Speicher gespeichert sind, eine Vorrichtung herstellen, die Instruktionsmittel umfasst, die die Funktionen/Handlungen implementiert, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert sind.
-
Die Computerprogramminstruktionen können auch auf einen Computer oder einen anderen programmierbaren Datenverarbeitungsapparat geladen werden, um eine Serie von Ausführungsschritten zu veranlassen, die durch den Computer oder den anderen programmierbaren Apparat durchgeführt werden, um einen computerimplementierten Prozess herzustellen, sodass die Instruktionen, die auf dem Computer oder dem anderen programmierbaren Apparat ausgeführt werden, Schritte zur Implementierung der Funktionen/Handlungen bereitstellen, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert sind.
-
1 ist ein schematisches Diagramm, das ein System 100 illustriert, das ein Test-Ausführungsplan-Erzeugungstool 140 verwendet, um automatisch einen Test-Ausführungsplan 155 für eine Softwareanwendung im Test 122 nach Ausführungsformen der hier offenbarten erfinderischen Anordnungen zu erzeugen. Im System 100 kann der Nutzer 105 eine Nutzerschnittstelle 115, die auf einer Client-Vorrichtung 110 ausgeführt wird, nutzen, um das Test-Ausführungsplan-Erzeugungstool 140 mit nutzerkonfigurierten Testparametern 117 bereitzustellen.
-
Die Clientvorrichtung 110 kann eine Vielzahl von Rechnervorrichtungen repräsentieren, die zur Ausführung der Nutzerschnittstelle 115 und zur Kommunikation mit dem Test-Ausführungsplan-Erzeugungstool 140 über das Netzwerk 165 fähig sind. Die nutzerkonfigurierten Testparameter 117 können die Testanforderungen für eine Softwareanwendung im Test 122 repräsentieren. Beispiele für die nutzerkonfigurierten Testparameter 117 können den Namen der Softwareanwendung im Test, die Version der Softwareanwendung im Test, die Testart (zum Beispiel Regressionstest, Akzeptanztest usw.), die Testumgebung, die Namen der Softwaretester, die den Test durchführen, Fähigkeiten, die von ungenannten Softwaretestern benötigt werden, den Namen spezifischer Anwendungskomponenten, die getestet werden sollen, die Testabdeckungsverteilung, das Teststartdatum, die Testdauer, die Testpriorität, den Wichtigkeitslevel des Testes und Ähnliches umfassen, obwohl sie darauf nicht begrenzt sind.
-
Die nutzerkonfigurierten Testparameter 117 können über das Netzwerk 165 an den Server 134 übermittelt werden, auf dem das Test-Ausführungsplan-Erzeugungstool 140 ausgeführt werden kann. Das Test-Ausführungsplan-Erzeugungstool 140 kann eine Softwareanwendung umfassen, die zur automatischen Erzeugung eines Test-Ausführungsplans 155 basierend auf den nutzerkonfigurierten Testparametern 117 und einem Test-Ausführungsplan-Datenmodell 150 ausgebildet sind. Das Test-Ausführungsplan-Erzeugungstool 140 kann einen Datenspeicher 145 zur Speicherung des Test-Ausführungsplan-Datenmodells 150 und erzeugter Test-Ausführungspläne 155 umfassen.
-
Das Test-Ausführungsplan-Datenmodell 150 kann Test-Metadaten umfassen, die die Softwaretest-Domaindaten 130 des Software-Testsystems 120 repräsentieren, auf dem die Softwareanwendung im Test 122 bewertet werden kann. Zum Beispiel kann das Test-Ausführungsplan-Datenmodell 150 Informationsschlüsselpunkte bezüglich der Testfälle, der Testumgebung, der Softwaretester und der Komponentenarchitektur der Softwareanwendung im Test 122 und/oder des Software-Testsystems 120 umfassen.
-
Die Population des Test-Ausführungsplan-Datenmodells 150 kann manuell durch einen Nutzer 105 über die Nutzerschnittstelle 115 durchgeführt werden. Alternativ dazu kann das Test-Ausführungsplan-Erzeugungstool 140 automatisierte Datenabrufskripte (nicht gezeigt) umfassen, die automatisch die spezifizierten Datenelemente des Test-Ausführungsplan-Datenmodells 150 von dem Datenspeicher 125, der die Softwaretest-Domaindaten 130 speichert, sammeln können.
-
In einer anderen genannten Ausführungsform kann der Server 135, der das Test-Ausführungsplan-Datenmodell 140 hostet, eine Komponente des Software-Testsystems 120 sein.
-
Bei Empfang der nutzerkonfigurierten Testparameter 117 kann das Test-Ausführungsplan-Erzeugungstool 140 das Test-Ausführungsplan-Datenmodell 150 nutzen, um Ausführungszuweisungen 160 zu erzeugen. Eine Ausführungszuweisung 160 kann eine Gruppierung von Test-Metadaten von dem Test-Ausführungsplan-Datenmodell 150 repräsentieren, die eine spezifische Testaktivität definieren, die die nutzerkonfigurierten Testparameter 117 erfüllen. Zum Beispiel kann eine Ausführungszuweisung 160 indizieren, dass der Tester A den Testfall J unter Verwendung des Computers C zwischen den Zeiten T1 und T2 ausführen soll.
-
Die Ausführungszuweisungen 160 können angesammelt werden, um den Test-Ausführungsplan 155 herzustellen. Der Test-Ausführungsplan 155 kann mit seinen entsprechenden nutzerkonfigurierten Testparametern 117 in den Datenspeicher 145 gespeichert werden. Da die Test-Ausführungspläne 155 unter Verwendung eines standardisierten Prozesses erzeugt werden, kann das Test-Ausführungsplan-Datenmodell 140 dazu ausgebildet werden, Analysefunktionen bezüglich der Historie der Test-Ausführungspläne 155 durchzuführen.
-
Es sollte beachtet werden, dass konventionelle Verfahren zur Erzeugung von Test-Ausführungsplänen 155 manuell ausgeführt werden. Daher tendieren konventionelle Verfahren zu einer fehlenden Standardisierung und Effizienz eines automatisierten Test-Ausführungsplan-Erzeugungstooles 140.
-
Das Netzwerk 165 kann irgendwelche Hardware/Software und Firmware umfassen, die notwendig sind, um die Daten, die in Trägerwellen codiert sind, zu übermitteln. Die Daten können sich innerhalb analoger oder digitaler Signale befinden und über Daten oder Sprachkanäle übermittelt werden. Das Netzwerk 165 kann lokale Komponenten und Datenpfade umfassen, die notwendig sind für Kommunikationen, die zwischen Computervorrichtungskomponenten und zwischen integrierten Vorrichtungskomponenten und peripheren Vorrichtungen ausgetauscht werden. Das Netzwerk 165 kann auch Netzwerkausrüstung umfassen, wie zum Beispiel Router, Datenlinien, Hubs und Zwischenserver, die zusammen ein Datennetzwerk, wie zum Beispiel das Internet, formen. Das Netzwerk 165 kann auch schaltkreisbasierte Kommunikationskomponenten und mobile Kommunikationskomponenten, wie zum Beispiel Telefonswitches, Modems, Handy-Kommunikationstürme und Ähnliches umfassen. Das Netzwerk 165 kann drahtgebundene und/oder drahtlose Kommunikationspfade umfassen.
-
Die Datenspeicher 125 und 145 können physikalische oder virtuelle Speicherräume sein, die zur Speicherung digitaler Informationen ausgebildet sind. Die Datenspeicher 125 und 145 können physisch innerhalb einer beliebigen Hardwareart implementiert werden, was eine magnetische Platte, eine optische Platte, einen Halbleiterspeicher, einen digital codierten plastischen Speicher, einen holografischen Speicher oder irgendein anderes Aufnahmemedium umfasst, aber nicht auf sie begrenzt ist. Die Datenspeicher 125 und 145 können sowohl eine eigenständige Speichereinheit als auch eine aus einer Vielzahl von physischen Vorrichtungen geformte Speichereinheit sein. Zusätzlich können Informationen innerhalb der Datenspeicher 125 und 145 in einer Vielzahl von Arten gespeichert werden. Zum Beispiel können Informationen innerhalb einer Datenbankstruktur oder innerhalb einer oder mehrerer Dateien eines Dateispeichersystems gespeichert werden, wobei jede Datei für Informations-Suchzettel indiziert werden kann oder auch nicht. Ferner können die Datenspeicher 125 und/oder 145 einen oder mehrere Verschlüsselungsmechanismen nutzen, um die gespeicherte Informationen vor unautorisiertem Zugriff zu schützen.
-
Die Clientvorrichtung 110, das Software-Testsystem 120 und der Server 135 können jeder Hardware-, Software- und/oder Firmwarekomponenten umfassen. Die Komponenten können in einem Satz von einer oder mehreren Computervorrichtungen implementiert sein. Zum Beispiel kann das System 120 einen Satz von mehreren Computervorrichtungen umfassen, die für spezifische Testumgebungen ausgebildet sind. In einem anderen Beispiel kann der Server 135 in einem verteilten Computerraum oder innerhalb einer einzelnen Vorrichtung implementiert sein. Die Hardware, die von der Vorrichtung 110, dem System 120 und/oder dem Server 135 umfasst wird, kann zumindest einen Prozessor, einen flüchtigen Speicher, einen nichtflüchtigen Speicher und einen Netzwerkadapter umfassen, die miteinander über einen Kommunikationsbus verbunden sind.
-
2 ist eine detaillierte Illustration des Test-Ausführungsplan-Erzeugungstools 200 nach Ausführungsformen der hier offenbarten erfinderischen Anordnungen. Das Test-Ausführungsplan-Erzeugungstool 200 kann innerhalb des Kontext des Systems 100 genutzt werden.
-
Das Test-Ausführungsplan-Erzeugungstool 200 kann eine administrative Komponente 205, eine Datenverarbeitungskomponente 210, eine Berichtkomponente 220 und einen Datenspeicher 235, der das Test-Ausführungsplan-Datenmodell 240, Erzeugungsregel-Template 245 und Test-Ausführungspläne 250 beinhaltet, umfassen. Die administrative Komponente 205 kann dazu ausgebildet sein, administrative Funktionen für das Test-Ausführungsplan-Erzeugungstool 200 bereitzustellen. Zum Beispiel können Funktionen der administrativen Komponente 205 genutzt werden, wenn das Test-Ausführungsplan-Datenmodell 240 und/oder die Erzeugungsregel-Templates 245 bevölkert werden sollen.
-
Die Datenverarbeitungskomponente 210 kann dazu ausgebildet sein, einer Vielzahl von Datenanalysen und Datensyntheseoperationen auf das Test-Ausführungsplan-Datenmodell 240 und/oder die gespeicherte Test-Ausführungspläne 250 anzuwenden. Die Datenverarbeitungskomponente 210 kann einen Erzeugungsregel-Übersetzer 215 umfassen. Der Überzeugungsregel-Übersetzer 215 kann eine Softwarekomponente und/oder einen Algorithmus repräsentieren, der dazu ausgebildet ist, die empfangenen nutzerkonfigurierten Testparameter in Erzeugungsregeln zu übersetzen, die durch das Test-Ausführungsplan-Erzeugungstool 200 ausgeführt werden können.
-
Zum Beispiel können nutzerkonfigurierte Testparameter, die indizieren, dass der Test-Ausführungsplan 250 für die Anwendung Z, Version 2.4, erzeugt werden soll, in eine Erzeugungsregel übersetzt werden, die aussagt, dass das Test-Ausführungsplan-Datenmodell 240 für Einträge angefordert werden soll, bei denen das Produkt = Anwendung Z UND Version = 2,4 ist. „Produkt” und „Version” können mit Datenelementen korrespondieren, die sich innerhalb des Test-Ausführungsplan-Datenmodells 240 befinden.
-
Der Erzeugungsregel-Übersetzer 215 kann Unterschiede in der Nomenklatur überbrücken, die in der Nutzerschnittstelle des Test-Ausführungsplan-Erzeugungstools 200 und des Test-Ausführungsplan-Datenmodells 240 vorhanden sind. Wie in dem obigen Beispiel gezeigt, können Erzeugungsregeln, die durch den Erzeugungsregel-Übersetzer 215 erzeugt wurden, eine boolsche Logik zur Anfrage des Test-Ausführungsplan-Datenmodells 240 umfassen.
-
Zusätzlich kann die Datenverarbeitungskomponente 210 die Erzeugungsregeln nach nutzerdefinierten Prioritätswerten priorisieren. Diese Priorisierung kann die Reihenfolge betreffen, in der die Erzeugungsregeln ausgeführt werden und/oder während der Erzeugung des Test-Ausführungsplans 250 betont werden.
-
Ferner können die Datenverarbeitungskomponente 210 und/oder der Erzeugungsregel-Übersetzer 215 dazu ausgebildet sein, die Erzeugungsregel-Templates 245 zu nutzen. Die Erzeugungsregel-Templates 245 können nutzereinstellbare Gruppen von Erzeugungsregeln repräsentieren, die mit einem spezifischen Wert eines Testparameters in Verbindung stehen. Zum Beispiel können die Erzeugungsregel-Templates 245 erzeugt werden, um Testparameter-Datenwerte und/oder benötigte Erzeugungsregeln für verschiedene Arten von Softwaretests zu definieren, wie zum Beispiel Akzeptanztests und Regressionstests.
-
Die Erzeugungsregel-Templates 245 können von der Nutzerschnittstelle des Test-Ausführungsplan-Erzeugungstools 200 auswählbar sein. Die Auswahl eines Erzeugungsregel-Templates 245 kann automatisch die definierten Testparameter und/oder Erzeugungsregeln mit den voreingestellten Datenwerten bevölkern.
-
Die Berichtkomponente 220 kann dazu ausgebildet sein, die gespeicherten Daten in nutzerspezifizierten Berichtformaten anzusammeln. Die Berichtkomponente 220 kann einen Berichterzeuger 225 und ein Benachrichtigungs-Steuerungsprogramm 230 umfassen. Der Berichterzeuger 225 kann dazu ausgebildet sein, die Definition und Erzeugung der Berichte für das Test-Ausführungsplan-Datenmodell, die Erzeugungsregel-Templates 245 und/oder die Historie der Test-Ausführungspläne 250 zu erlauben. Der Berichterzeuger 245 kann die Funktionen der Datenverarbeitungskomponente 210 nutzen, um Berichtdaten zu sammeln.
-
Das Benachrichtigungs-Steuerungsprogramm 230 kann eine Komponente sein, die dazu ausgebildet ist, Informationen an die Nutzer zu verteilen. Zum Beispiel kann das Benachrichtigungs-Steuerungsprogramm 230 elektronische Benachrichtigungs-Nachrichten an Softwaretester schicken, die Ausführungs-Zuweisungsinformationen umfassen. Das Benachrichtigungs-Steuerungsprogramm 230 kann ferner dazu ausgebildet sein, mit verschiedenen elektronischen Nachrichtensystemen verbunden zu sein, um zusätzliche Benachrichtigungsoptionen bereitzustellen.
-
3 ist ein Beispiels-Datenbankschema 300 für ein Test-Ausführungsplan-Datenmodell nach Ausführungsformen der hier offenbarten erfinderischen Anordnung. Das Beispiel-Datenbankschema 300 kann innerhalb des Kontexts von System 100 und/oder durch das Test-Ausführungsplan-Erzeugungstool 200 von 2 genutzt werden.
-
Es sollte beachtet werden, dass die Inhalte des Beispiel-Datenbankschemas 300 nur für illustrative Zwecke gedacht sind und nicht eine definitive Implementierung darstellen sollen. Wie gezeigt wurde das Schema 300 auf die dritte normale Form reduziert, wie es Standard ist, wenn Datenbankstrukturen modelliert werden, was nicht als eine Implementierungsbegrenzung gedacht ist. Ferner kann ein Fachmann ein anderes Schema aus dem in dem illustrativen Schema 300 dargestellten Beziehungen herleiten, was immer noch als innerhalb der vorliegenden Offenbarung liegend angesehen wird.
-
Wie in dem Beispiel-Datenbankschema 300 gezeigt, kann das Test-Ausführungsplan-Datenmodell mehrere Datenbanktabellen 305–350 umfassen, die ein oder mehrere Attribute 355 haben, die Test-Metadaten definieren. Ein Attribut von besonderer Wichtigkeit ist das Attribut „Prioritätswert” 365 der Testfalltabelle 310. Dieses Attribut 365 kann eine nutzerdefinierte Priorisierungseingabe bereitstellen, um die Test-Ausführungsplanerzeugung zu beeinflussen.
-
Die Datenbanktabellen 305 und 350 können miteinander über Beziehungen 360 assoziiert werden. Die Beziehungen 360 können akzeptierten Datenbank-Modellkonventionen folgen, wie zum Beispiel die Einbeziehung der Kardinalität unter Verwendung der Fußnotation nach Crow wie in diesem Beispiel gezeigt.
-
Das Beispiel-Datenbankschema 300 kann wie folgt gelesen werden. Ein Produkt 350 kann mehrere Komponenten 315 und mehrere Zuweisungen 330 haben. Ein oder mehrere Testfälle 310 können existieren, um eine Testabdeckung für eine gegebene Komponente 315 (oder funktionales Gebiet) eines Produktes 350 bereitzustellen. Eine oder mehrere Zuweisungen 330 können erzeugt werden, um die Testziele der Bereitstellung der Testabdeckung (für spezifische Testfälle 310) für ein gegebenes Produkt 350/Komponente 315 im Test (zum Beispiel über die unterstützten Ausführungsdomänen für den Satz der Betriebssysteme (305), Datenbanken (335), Runtimes (345) usw.) zu erreichen. Ein Tester 320 kann für jede Zuweisung 330, die einen assoziierten Zuweisungsstatus 340 hat, verantwortlich sein.
-
Wie in Schema 300 gezeigt, kann eine Komponente 315 viele Testfälle 315 und viele Komponenten 315 haben, die mit einem Tester 320 assoziiert sein können. Viele Tester 320 können mit einer Plattform 305 und einer Datenbank (DB) 335 assoziiert sein. Ein Testfall 315 kann mehrere Zuweisungen 330 haben. Mehrere Zuweisungen 330 können zu einem Ausführungs_Plan 325 und eine einzelne Zuweisung 330 kann zu vielen Ausführungs_Plänen 325 gehören. Viele Zuweisungen 330 können einen assoziierten Zuweisungs_Status, Runtime 345, Produkt 350, DB 335, Tester 320 und Plattform 305 haben.
-
4 ist ein Flussdiagramm eines Verfahrens 400, das die automatische Erzeugung eines Test-Ausführungsplans beschreibt, der durch ein Test-Ausführungsplan-Erzeugungstool nach einer Ausführungsform der hier offenbarten erfinderischen Anordnung ausgeführt wird. Das Verfahren 400 kann durch das System 100, das Test-Ausführungsplan-Erzeugungstool 200 ausgeführt werden und/oder das Beispiel-Datenbankschema 300 nutzen.
-
Das Verfahren 400 kann mit Schritt 405 beginnen, in dem das Test-Ausführungsplan-Erzeugungstool nutzerkonfigurierte Testparameter empfangenen kann. Die empfangenen nutzerkonfigurierten Testparameter können in Erzeugungsregeln in Schritt 410 übersetzt werden. Die Erzeugungsregeln können Datenanfrage- und/oder Datensyntheseregeln beinhalten.
-
In Schritt 415 werden nutzerdefinierte Prioritätswerte auf die Erzeugungsregel angewandt. Die Ausführungsreihenfolge der Erzeugungsregeln kann in Schritt 420 eingestellt werden. Die Datenanfrage-Erzeugungsregeln können auf dem vordefinierten Test-Ausführungsplan-Datenmodell in Schritt 425 ausgeführt werden, um die anwendbaren Test-Metadaten zu bestimmen.
-
In Schritt 430 können die anwendbaren Test-Metadaten in Ausführungszuweisungen synthetisiert werden unter Verwendung der Datensynthese-Erzeugungsregel. Die Ausführungszuweisungen können dann in den Test-Ausführungsplan in Schritt 435 kompiliert werden. In Schritt 440 kann der Test-Ausführungsplan mit seinen nutzerkonfigurierten Testparametern gespeichert werden. Im optionalen Schritt 442 können die Ausführungszuweisungen an zugewiesene Softwaretester verteilt werden.
-
Der Test-Ausführungsplan kann innerhalb der Nutzerschnittstelle für ein Nutzer-Feedback in Schritt 445 dargestellt werden. Zum Beispiel können die Tester eine Feedback-Schnittstelle in Schritt 445 öffnen, nachdem die Ausführungszuweisungen in Schritt 442 empfangen wurden. Das Nutzer-Feedback kann optional in Schritt 450 empfangen werden, indem das optionale Feedback einen Wechsel auf einen oder mehrere nutzerkonfigurierte Testparameter umfasst.
-
Wenn Wechsel im Feedback bereitgestellt werden, kann der Schritt 455 ausgeführt werden, indem modifizierte nutzerkonfigurierte Parameter bestimmt werden können und an das Test-Ausführungsplan-Erzeugungstool übermittelt werden können. Ein neuer Plan kann basierend auf den modifizierten Parametern, wie durch den Vorgang von den Schritten 455–410 erzeugt werden.
-
In Schritt 460 gibt es eine Bestimmung, ob vorherige Versionen eines neu erzeugten Test-Ausführungsplanes existieren. Wenn dies so ist, kann eine optionale Analyse der Unterschiede zwischen den Testplanversionen in Schritt 465 stattfinden. Ferner können Risiken, Vorteile, Bewertungen und andere Daten identifiziert und mit jedem der verschiedenen Testplanversionen assoziiert werden wie in Schritt 470 gezeigt. In Schritt 475 können Analyseergebnisse, Testplanunterschiede und damit in Verbindung stehende Daten einem verantwortlichen Testadministrator dargestellt werden. An jedem Punkt kann zusätzliches Nutzer-Feedback in Schritt 450 empfangenen werden, was in einer Erzeugung eines neuen Test-Ausführungsplanes resultiert, der basierend auf modifizierten Testparametern erzeugt wird. Das Verfahren 400 kann von Anfang an für verschiedene Softwarepakete im Test wiederholt werden.
-
Die Diagramme in den 1–4 illustrieren die Architektur, Funktionalität und Betriebsart möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten nach verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Hinblick kann jeder Block des Flussdiagramms oder Blockdiagramms ein Modul, Segment oder Codeteil darstellen, der eine oder mehrere ausführbare Instruktionen zur Implementierung der spezifizierten logischen Funktion(en) umfasst. Es sollte auch beachtet werden, dass in einigen alternativen Implementierungen die in dem Block erwähnten Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten können. Zum Beispiel können zwei Blöcke, die aufeinander folgend dargestellt sind, in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden in Abhängigkeit von der involvierten Funktionalität. Es sollte auch beachtet werden, dass jeder Block der Blockdiagramme und/oder der Flussdiagrammdarstellung und Kombinationen der Blöcke in den Blockdiagrammen und/oder der Flussdiagrammdarstellung durch Spezialzweck-Hardware basierte Systeme, die die spezifizierten Funktionen oder Handlungen durchführen, oder Kombinationen von Spezialzweck-Hardware und Computeranweisungen implementiert werden.
-
Die hier benutzte Terminologie dient lediglich dem Zweck zur Beschreibung bestimmter Ausführungsformen und soll die Erfindung nicht beschränken. Die Singularausdrücke „ein/eine/einer/eines” und „der/die/das” sollen die Pluralausdrücke auch mit einschließen, wenn der Kontext nicht klar etwas anderes indiziert. Es sollte ferner verstanden werden, dass die Ausdrücke „umfassen” und/oder „umfassend” die Anwesenheit der genannten Merkmale, ganzen Zahlen, Schritte, Operationen, Elemente und/oder Komponenten spezifiziert, aber nicht die Anwesenheit oder Hinzufügung einer oder mehrerer anderer Merkmale, ganzen Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon ausschließt, wenn sie in dieser Beschreibung genutzt werden. Die entsprechenden Strukturen, Materialien, Handlungen und Aquivalente aller Mittel und Schritte plus funktionale Elemente in den unten stehenden Ansprüchen sollen irgendeine Struktur, Material oder Handlung zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen wie sie spezifisch beansprucht sind, mit einschließen. Die Beschreibung der vorliegenden Erfindung wurde nur für illustrative und deskriptive Zwecke vorgenommen, sie soll nicht als erschöpfend oder begrenzend auf die Erfindung in der offenbarten Form verstanden werden. Viel Modifizierungen und Variationen können einem Fachmann offensichtlich erscheinen, ohne dass er sich aus dem Bereich und dem Geiste der Erfindung bewegt. Die Ausführungsform wurde ausgewählt und beschrieben, um die Prinzipien der Erfindung und der praktischen Anwendung in bestmöglicher Art zu beschreiben und um andere Fachleute in die Lage zu versetzen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifizierungen, wie sie für den bestimmten betrachteten Gebrauch passend sind, zu ermöglichen.