DE102021130822A1 - Automatisches erstellen und ausführen eines testsystems für arbeitsabläufe - Google Patents

Automatisches erstellen und ausführen eines testsystems für arbeitsabläufe Download PDF

Info

Publication number
DE102021130822A1
DE102021130822A1 DE102021130822.4A DE102021130822A DE102021130822A1 DE 102021130822 A1 DE102021130822 A1 DE 102021130822A1 DE 102021130822 A DE102021130822 A DE 102021130822A DE 102021130822 A1 DE102021130822 A1 DE 102021130822A1
Authority
DE
Germany
Prior art keywords
workflow
test
computer
package
creating
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.)
Pending
Application number
DE102021130822.4A
Other languages
English (en)
Inventor
Michael Johnston
Vasileios Vasileiadis
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102021130822A1 publication Critical patent/DE102021130822A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • 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/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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
    • 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/3692Test management for test results analysis
    • 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/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Abstract

Ein auf einem Computer implementiertes Verfahren zum automatischen Erstellen und Ausführen eines Testsystems für einen Arbeitsablauf umfasst ein Erstellen eines Arbeitsablaufpakets, das eine Versionskennung und eine Arbeitsablaufgraphen-Definition enthält, sowie ein Erstellen einer Arbeitsablaufinstanz als eine Kopie des Arbeitsablaufpakets. Die Arbeitsablaufinstanz wird ausgeführt, um Ausgabedaten zu erzeugen, und die Ausgabedaten werden in die Arbeitsablaufinstanz gespeichert. Die Arbeitsablaufinstanz wird mit den Ausgabedaten als Testarchiv gespeichert. Eine oder mehrere Komponenten eines aktualisierten Arbeitsablaufpakets werden mit dem Testarchiv getestet, und es wird eine Anzeige ausgegeben, ob das Testen des aktualisierten Arbeitsablaufpakets bestanden oder nicht bestanden wurde.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Verfahren zum Testen von Arbeitsabläufen (workflows) und insbesondere auf Verfahren zum automatischen Erstellen und Ausführen eines Testsystems (test harness) für Arbeitsabläufe.
  • Beschreibung der damit verbundenen Technik
  • Bei Arbeitsabläufen handelt es sich um potenziell komplexe Abfolgen von Komponenten (Knoten) zum Verarbeiten von Daten. Ein Arbeitsablauf ist in der Regel ein gerichteter, azyklischer Graph (directed acyclic graph, DAG), bei dem die Komponenten für gewöhnlich aus vorhandenen Ressourcen gebildet werden und nicht von Grund auf neu aufgebaut werden. Sie können viele Arbeitsablaufknoten umfassen, die jeweils von vielen verschiedenen Entwicklern und Wissenschaftlern implementiert wurden, die unterschiedlichen wissenschaftlichen Disziplinen angehören können.
  • Bei Arbeitsabläufen handelt es sich um Softwareprogramme, die durch Hinzufügen, Entfernen und Modifizieren von Komponenten und/oder durch Hinzufügen und Entfernen von Kanten (edges) zwischen den Komponenten weiterentwickelt werden. Von diesen verschiedenen Evolutionsprozessen führt das Modifizieren bestehender Komponenten nicht zu einer Veränderung des Arbeitsablaufgraphen. Fehler in den Modifikationen können jedoch das erwartete Verarbeitungsverhalten des Graphen stören, indem sie zum Beispiel dazu führen, dass die modifizierte Komponente oder nachgelagerte Datenverarbeitungsprozesse, die von der modifizierten Komponente erzeugt wurden, fehlerhaft sind. Da es sich bei Arbeitsabläufen um Zusammenstellungen bestehender Programme handelt, die mit bestimmten Optionen konfiguriert sind, kann ein relativ kleiner Satz von Programmen viele verschiedene Arbeitsabläufe erzeugen.
  • Der Prozess des Erstellens und Pflegens eines Testsystems für alle Komponenten eines Arbeitsablaufs kann sehr zeitaufwändig sein, und bestimmte Tests können möglicherweise aufgrund fehlender Datenverarbeitungsressourcen nicht erstellt oder ausgeführt werden. Dies wiederum kann dazu führen, dass Fehler auf Bereitstellungsumgebungen übertragen werden, was neben anderen unerwünschten Nebeneffekten zu Instabilität und Produktivitätsverlusten führen kann.
  • KURZDARSTELLUNG
  • Gemäß verschiedenen Ausführungsformen werden eine Datenverarbeitungseinheit, ein nichtflüchtiges, durch einen Computer lesbares Speichermedium und ein Verfahren für das automatische Erstellen und Ausführen eines Testsystems für Arbeitsabläufe bereitgestellt.
  • In einer Ausführungsform umfasst ein auf einem Computer implementiertes Verfahren zum automatischen Erstellen und Ausführen eines Testsystems für einen Arbeitsablauf ein Erstellen eines Arbeitsablaufpakets, das eine Versionskennung und eine Arbeitsablaufgraphen-Definition enthält, sowie ein Erstellen einer Arbeitsablaufinstanz auf der Grundlage von dem Arbeitsablaufpaket. Das Verfahren kann die Arbeitsablaufinstanz ausführen, um Ausgabedaten zu erzeugen. Die Arbeitsablaufinstanz wird mit den Ausgabedaten als Testarchiv gespeichert. Eine oder mehrere Komponenten eines aktualisierten Arbeitsablaufpakets werden mit dem Testarchiv getestet. Es wird eine Anzeige ausgegeben, ob das Testen des aktualisierten Arbeitsablaufpakets bestanden oder nicht bestanden wurde.
  • In einigen Ausführungsformen umfasst das Verfahren ferner ein Erstellen des Arbeitsablaufpakets mit Informationen über eine Transformationslogik für jeden Knoten.
  • In einigen Ausführungsformen umfasst die Anzeige Ergebnisse jedes Tests, der auf jeder der ein oder mehreren Komponenten durchgeführt wurde.
  • In einigen Ausführungsformen umfasst das Verfahren ferner ein Erzeugen der Ausgabedaten der Arbeitsablaufinstanz durch (a) Ausführen eines oder mehrerer ausgewählter Teilgraphen aus einer Mehrzahl von Teilgraphen des Arbeitsablaufs, um Ausgabedaten zu erzeugen, und/oder (b) Befüllen anderer Teilgraphen aus der Mehrzahl von Teilgraphen mit Ausgabedaten von Teilgraphen aus einer zuvor erzeugten Arbeitsablaufinstanz.
  • In einigen Ausführungsformen umfasst das Testen eine Mehrzahl von Tests, die einen Eingabedatentest, einen Datenbereitstellungstest, einen Ausführungstest und einen Ausgabevergleichstest aufweisen.
  • Wenn einer der Mehrzahl von Tests für eine bestimmte Komponente fehlschlägt, wird in einigen Ausführungsformen eine Fehleranzeige sowohl für die bestimmte Komponente als auch für den Arbeitsablauf bereitgestellt. In einigen Ausführungsformen wird jeder der Mehrzahl von Tests der Reihe nach ausgeführt, wobei durch ein Nichtbestehen eines der Mehrzahl von Tests das Testen beendet und eine Fehleranzeige ausgegeben wird.
  • In einigen Ausführungsformen umfasst das Verfahren ferner ein Zuordnen einer Testspezifikation zu dem Testarchiv, wobei die Testspezifikation definiert, welche Ausgabedaten von der einen oder den mehreren Komponenten zu dem Testarchiv hinzugefügt werden sollen.
  • In einigen Ausführungsformen umfasst das Verfahren ferner ein Zuordnen einer Testspezifikation zu dem Testarchiv, wobei die Testspezifikation ein individuelles Anpassen des Testens ermöglicht und Definitionen für Bestehen und Nichtbestehen bereitstellt.
  • In einigen Ausführungsformen umfasst das Verfahren ferner ein Zulassen zusätzlicher Programme, die in der Testspezifikation für ein ausgewähltes Testen der einen oder mehreren Komponenten verwendet werden.
  • In einigen Ausführungsformen umfasst das Verfahren ferner ein erneutes Erzeugen des Testarchivs auf der Grundlage von einer Instanz des aktualisierten Arbeitsablaufpakets.
  • Gemäß verschiedenen Ausführungsformen umfasst ein auf einem Computer implementiertes Verfahren zum automatischen Erstellen und Ausführen eines Testsystems für einen Arbeitsablauf ein Erstellen eines Arbeitsablaufpakets, das eine Versionskennung, eine Arbeitsablaufgraphen-Definition und eine Transformationslogik für jede der einen oder mehreren Komponenten des Arbeitsablaufs enthält. Es wird eine Arbeitsablaufinstanz auf der Grundlage von dem Arbeitsablaufpaket erstellt, und die Arbeitsablaufinstanz wird ausgeführt, um Ausgabedaten zu erzeugen. Die Arbeitsablaufinstanz wird mit den Ausgabedaten als Testarchiv gespeichert, und die eine oder mehrere Komponenten eines aktualisierten Arbeitsablaufpakets werden mit dem Testarchiv getestet. Das Testen umfasst eine Mehrzahl von Tests, die einen Eingabedatentest, einen Datenbereitstellungstest, einen Ausführungstest und einen Ausgabevergleichstest aufweisen. Es wird eine Anzeige ausgegeben, ob das Testen des aktualisierten Arbeitsablaufpakets bestanden oder nicht bestanden wurde. Jeder der Mehrzahl von Tests wird der Reihe nach ausgeführt, wobei durch ein Nichtbestehen eines der Mehrzahl von Tests das Testen beendet und eine Fehleranzeige ausgegeben wird.
  • Mittels der hier erläuterten Konzepte werden ein System und ein Verfahren bereitgestellt, die die derzeit verwendeten Ansätze zum Testen von Arbeitsabläufen verbessern. Das hier erläuterte System und die hier erläuterten Verfahren können die Leistung der Ausführung von Arbeitsabläufen verbessern und Regressionen reduzieren, die durch ein Modifizieren von Arbeitsabläufen verursacht werden, indem wie hier beschrieben ein Testsystem automatisch erstellt und ausgeführt wird.
  • Diese und andere Funktionen werden aus der folgenden detaillierten Beschreibung veranschaulichender Ausführungsformen davon ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
  • Figurenliste
  • Die Zeichnungen zeigen veranschaulichende Ausführungsformen. Sie zeigen nicht alle Ausführungsformen. Andere Ausführungsformen können zusätzlich oder stattdessen verwendet werden. Details, die offensichtlich oder unnötig sind, können aus Platzgründen oder zur besseren Veranschaulichung weggelassen werden. Einige Ausführungsformen können mit zusätzlichen Komponenten oder Schritten und/oder ohne alle der gezeigten Komponenten oder Schritte durchgeführt werden. Wenn dieselbe Ziffer in verschiedenen Zeichnungen erscheint, bezieht sie sich auf dieselben oder gleichartige Bauteile oder Schritte.
    • 1 zeigt eine Darstellung von Arbeitsabläufen und deren Ausführung gemäß einer beispielhaften Ausführungsform.
    • 2 zeigt eine Darstellung des Erstellens eines Testarchivs, gemäß einer beispielhaften Ausführungsform.
    • 3 zeigt eine Darstellung von Eingaben und Ausgaben für ein Erstellen und Ausführen eines Testsystems für Arbeitsabläufe, gemäß einer beispielhaften Ausführungsform.
    • 4 zeigt einen Ablaufplan eines Systems zum Erstellen und Ausführen eines Testsystems für Arbeitsabläufe gemäß einer beispielhaften Ausführungsform.
    • 5 zeigt einen Ablaufplan von Vorgängen beim Erstellen und Ausführen eines Testsystems für Arbeitsabläufe gemäß einer beispielhaften Ausführungsform.
    • 6 zeigt eine Darstellung eines funktionellen Blockschaubilds einer speziell konfigurierten Computerhardware-Plattform, die zur Implementierung eines Systems zum Erstellen und Ausführen eines Testsystems für Arbeitsabläufe verwendet werden kann, gemäß einer beispielhaften Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden ausführlichen Beschreibung werden zahlreiche spezifische Einzelheiten anhand von Beispielen dargelegt, um ein umfassendes Verständnis der relevanten Lehren bereitzustellen. Es sollte jedoch klar sein, dass die vorliegenden Lehren auch ohne diese Einzelheiten angewandt werden können. In anderen Beispielen werden bekannte Verfahren, Vorgänge, Komponenten und/oder Schaltkreise auf einer relativ hohen Ebene und ohne Einzelheiten beschrieben, um Aspekte der vorliegenden Lehren nicht unnötig zu überdecken.
  • Sofern nicht ausdrücklich anders angegeben und wie aus der folgenden Beschreibung und den Ansprüchen ersichtlich, sollte beachtet werden, dass sich die in den Beschreibungen der Spezifikation verwendeten Begriffe wie „Verarbeiten“, „Datenverarbeitung“, „Berechnen“, „Ermitteln“ oder dergleichen auf die Aktion und/oder Prozesse eines Computers oder Datenverarbeitungssystems oder einer ähnlichen elektronischen Datenverarbeitungseinheit beziehen, welche die Daten, die als physikalische, zum Beispiel elektronische, Größen in den Registern und/oder Speichern des Datenverarbeitungssystems dargestellt werden, manipuliert und/oder in andere Daten umwandelt, die in ähnlicher Weise als physikalische Größen in den Speichern, Registern oder anderen Einheiten des Datenverarbeitungssystems zum Speichern, Übertragen und Anzeigen von Informationen dargestellt werden.
  • Wie hierin verwendet, bezieht sich der Begriff „Arbeitsablauf“ auf gerichtete azyklische Graphen, wobei die Knoten Rechenvorgänge, Aufgaben oder Transformationen darstellen und Kanten Abhängigkeiten zwischen den Arbeitsablaufknoten anzeigen.
  • Wie hierin verwendet, bezieht sich der Begriff „Arbeitsablaufknoten“ auf eine Anwendung oder einen Dienst, der Teil eines Arbeitsablaufs ist.
  • Wie hierin verwendet, bezieht sich der Begriff „Transformationslogik“ auf die Informationen, die es ermöglichen, die durch den Knoten definierte Transformation durchzuführen. Zum Beispiel kann es sich bei der Transformationslogik um ein bestimmtes Skript handeln.
  • Wie hierin verwendet, bezieht sich der Begriff „Komponente“ auf einen Knoten im Arbeitsablaufgraphen.
  • Wie hierin verwendet, bezieht sich der Begriff „Testsystem“ auf eine Sammlung von Software und Testdaten, die so konfiguriert ist, dass sie eine Programmeinheit testet (z.B. ein von einer Komponente des Arbeitsablaufgraphen bereitgestelltes Skript), indem sie die Programmeinheit unter verschiedenen Bedingungen ausführt und ihr Verhalten und ihre Ausgaben verfolgt.
  • Wie hierin verwendet, bezieht sich der Begriff „Regression“ auf einen Softwarefehler, der dazu führt, dass eine Funktion nach einem bestimmten Ereignis, in der Regel einer Änderung des Codes, nicht mehr wie vorgesehen funktioniert.
  • Der Begriff „Regressionstest“ kann sowohl den gesamten Testprozess als auch den einen oder mehrere spezifische Tests im Testprozess betreffen. Zur Verdeutlichung bezieht sich der wie hierin verwendete Begriff „Regressionstest“ auf den gesamten Prozess des Ermittelns, ob eine Änderung in einem Arbeitsablauf zu einer Regression geführt hat.
  • Wie hierin verwendet, bezieht sich der Begriff „Arbeitsablaufpaket“ auf die Spezifikation eines Arbeitsablaufs, einschließlich seiner Komponenten, der Verbindungen, der Eingabedaten und dergleichen.
  • Wie hierin verwendet, bezieht sich der Begriff „Arbeitsablaufinstanz“ auf eine bestimmte Ausführung eines Arbeitsablaufpakets und kann die Dateien enthalten, die von Aufgaben der Arbeitsablaufknoten erzeugt werden.
  • Wie hierin verwendet, bezieht sich der Begriff „Bündel“ (bundle) auf eine Dateisystem-Verzeichnisstruktur, in der die erforderlichen Dateien, Komponenten-Ausgabeorte und dergleichen Elemente innerhalb der Struktur darstellen, oder bei einem „Bündel“ kann es sich um eine Datei handeln, die URLs (Uniform Resource Locators, einheitliche Ressourcenzeiger) umfasst, die auf Datendateien und Komponenten-Ausgabeorte verweisen, oder bei einem „Bündel“ kann es sich um eine Kombination aus einer Dateisystem-Verzeichnisstruktur und URLs handeln.
  • Wie hierin verwendet, bezieht sich der Begriff „Plattform“ auf einen Satz von Rechenressourcen, die zum Ausführen eines Arbeitsablaufs verwendet werden können, zum Beispiel die Cloud, Cluster oder dergleichen.
  • Wie im Folgenden näher erläutert, bezieht sich die vorliegende Offenbarung im Allgemeinen auf Verfahren und Systeme, um eine Darstellung eines Arbeitsablaufs und seiner Ausführung zu definieren, die Daten (Eingabe/Ausgabe) und Transformationslogik explizit mit dem Arbeitsablaufgraphen verbindet. Bei Aspekten der vorliegenden Offenbarung kann diese Darstellung verwendet werden, um automatisch Regressionstests der Komponenten im Arbeitsablaufgraphen auszuführen. Dies kann erreicht werden, indem eine bestimmte Darstellung einer Arbeitsablaufausführung als Regressionstestarchiv definiert und mit der Definition des Arbeitsablaufs verknüpft wird.
  • Der Regressionstestprozess kann vier Tests für jede Arbeitsablaufkomponente umfassen sowie einen Test, der sicherstellt, dass die Arbeitsablaufsyntax gültig ist. Die Komponenten-Regressionstests umfassen einen Eingabedatentest, einen Datenbereitstellungstest, einen Ausführungstest, und einen Ausgabevergleichstest. Der Eingabedatentest ermittelt, ob alle Komponentenerzeuger (d.h. die Komponenten, die Eingabedaten für die zu testende Komponente erzeugen) vorliegen und ob für sie Testdaten im Testarchiv vorhanden sind. Dieser Test ermittelt ferner, ob die erforderlichen statischen Eingabedateien im Testarchiv vorhanden sind. Der Datenbereitstellungstest ermittelt, ob die von einer bestimmten Komponente benötigten spezifischen Dateien im Testarchiv vorliegen. Der Ausführungstest ermittelt, ob die aktuelle Definition der Komponente erfolgreich auf den Eingabedaten ausgeführt wird. Der Ausgabevergleichstest kann ermitteln, ob die Ausgabe des Ausführungstests mit der erwarteten Ausgabe im Testarchiv übereinstimmt. Der Ausgabevergleichstest kann nutzungskonfigurierbar sein und einen oder mehrere separate Teiltests umfassen, die verschiedene Aspekte der Ausgabe testen, zum Beispiel Namensübereinstimmung, Inhaltsübereinstimmung oder dergleichen. Der Arbeitsablauf-Syntaxtest kann ermitteln, ob die Arbeitsablaufdefinition anhand der Grammatik der Arbeitsablauf-Beschreibungssprache validiert ist.
  • Durch Aspekte der vorliegenden Offenbarung kann zunächst sichergestellt werden, dass ein Arbeitsablauf über die erforderlichen Darstellungen verfügt. Diese Darstellungen entsprechen den Konzepten von Klasse und Instanz, die in der objektorientierten Programmierung verwendet werden. Die hier beschriebenen Techniken können auf verschiedene Weise umgesetzt werden. Beispielhafte Implementierungen werden im Folgenden unter Bezugnahme auf die folgenden Figuren bereitgestellt.
  • Unter Bezugnahme auf 1 kann ein Arbeitsablaufpaket 100 ein Bündel umfassen, das die Arbeitsablaufgraphen-Definition 102, eine Versionskennung 104 und andere optionale Daten enthält. Die optionalen Daten können zum Beispiel erforderliche Datendateien für Arbeitsablaufkomponenten 106, eine arbeitsablaufspezifische Transformationslogik, benutzerdefinierte Arbeitsablaufskripte 108 und dergleichen umfassen. Eine Arbeitsablaufinstanz 110 kann ein Bündel umfassen, das die Instanziierung eines Arbeitsablaufpakets auf einer bestimmten Plattform darstellt. Die Arbeitsablaufinstanz hat den gleichen Inhalt wie das Arbeitsablaufpaket (einschließlich der Arbeitsablaufgraphen-Definition 102, der Versionskennung 104, der für den Arbeitsablauf erforderlichen Datenressourcen 106 und der benutzerdefinierten Arbeitsablaufskripte 108) und umfasst zusätzlich ein Benutzereingabeverzeichnis (user input directory, UID) 112, Speicherorte für die Komponentenausgaben 114 und Metadaten zu allen bereitgestellten optionalen Daten.
  • Wenn das Arbeitsablaufpaket 100 instanziiert wird, enthält das dabei entstehende Bündel der Arbeitsablaufinstanz 110 keine Ausgabedaten. Wird ein Arbeitsablauf nach der Instanziierung ausgeführt, werden die Komponentenausgaben hinzugefügt, sobald sie erstellt werden.
  • Da der Arbeitsablauf und seine Ausführung die oben beschriebenen Darstellungen in Bezug auf das Arbeitsablaufpaket 100 und die Arbeitsablaufinstanz 110 aufweisen, können Aspekte der vorliegenden Offenbarung ein automatisches Regressionstesten umfassen.
  • Eine beispielhafte ausgeführte Arbeitsablaufinstanz 110 der neuesten Version des Arbeitsablaufpakets 100 ist dem Arbeitsablaufpaket 100 als Testarchiv zugehörig. Das Testarchiv kann optional komprimiert werden. Darüber hinaus können Daten von Knoten, die nicht getestet werden sollen, deren Test zu kostspielig ist, oder die nicht getestet werden müssen, aus dem Testarchiv entfernt werden. In einigen Ausführungsformen sind nach dem Erstellen des Testarchivs alle Daten, auf die es verweist, immer zugänglich und unveränderbar. Eine Testspezifikation kann eine optionale Spezifikation umfassen, die angibt, welche Komponenten des Arbeitsablaufpakets 100 getestet werden sollen.
  • Ein automatisches Regressionstesten kann bei jeder Modifikation im Arbeitsablaufpaket 100 durchgeführt werden. Für jede getestete Komponente des Arbeitsablaufs wird eine spezifische Arbeitsablaufinstanz-Bündelstruktur erstellt, Benutzereingaben werden aus dem Testarchiv in die Arbeitsablaufinstanz eingefügt, und vom Benutzer überschriebene Datendateien aus dem Testarchiv können in die Arbeitsablaufinstanz eingefügt werden. Daraufhin können die Regressionstests an der Arbeitsablaufinstanz durchgeführt werden.
  • Beim Eingabedatentest werden die Daten jedes Erzeugers der zu testenden Komponente aus dem Testarchiv an die richtige Ausgabestelle in der Arbeitsablaufinstanz hinzugefügt. Beim Datenbereitstellungstest wird für jede der definierten Eingaben der getesteten Komponente festgestellt, dass die definierten Eingaben in der Arbeitsablaufinstanz vorliegen und alle notwendigen Operationen, zum Beispiel Kopieren, in den definierten Eingaben durchgeführt werden. Beim Ausführungstest wird die Komponente mittels der bestimmten Plattform ausgeführt und ihr Endstatus erfasst. Beim Ausgabevergleichstest werden die Ausgaben der Komponente mit den Ausgaben der gleichen Komponente im Testarchiv verglichen. Bei dem Vergleich kann es sich um einen benutzerdefinierten Vergleich handeln, zum Beispiel eine komplette Textübereinstimmung, eine Namensübereinstimmung oder dergleichen, und der Vergleich kann nur auf einer Teilmenge von Dateien durchgeführt werden. Abschließend wird die Syntax des gesamten Arbeitsablaufs validiert.
  • In einer Ausführungsform sind alle Tests Bestanden/Nichtbestanden-Tests. Ein bestimmter Test muss bestanden werden, bevor der nächste Test ausgeführt werden kann. Wenn ein Schritt fehlschlägt, wird die Testphase als nicht bestanden beendet. Wenn alle Schritte bestanden haben, gilt die Komponente als bestanden. Wenn alle spezifischen Komponenten getestet sind, kann ein Bericht erzeugt und als Ausgabe des Systems an den Benutzer bereitgestellt werden. Laufzeitmodifikatoren, zum Beispiel „Abdeckung“, können beim Ausführungsschritt hinzugefügt werden. Optional können viele benutzerdefinierte Regressionstests über die oben beschriebene Testspezifikation beim Ausgabevergleichstest hinzugefügt werden.
  • Beispielhafte Ausführungsform
  • Im Folgenden wird eine beispielhafte Ausführungsform der vorliegenden Offenbarung beschrieben, die nicht als Einschränkung des Umfangs der Ansprüche zu verstehen ist. Die Ausführungsform beschreibt eine automatische Testerzeugung namens „Testify“, die die oben beschriebenen Darstellungen über ein Programm namens „Flow“ nutzt. In dem Beispiel kann Git zur Versionskontrolle und Travis zum automatischen Ausführen von Tests beim Commit verwendet werden. Der Git-Commit-ID/Hash kann als Versionskennung eines Arbeitsablaufpakets verwendet werden. In ähnlicher Weise kann das UID einer Arbeitsablaufinstanz auch die Version des zugehörigen Arbeitsablaufpakets enthalten. In dem Beispiel liegt die Transformationslogik in Form von Skripten und ausführbaren Dateien vor.
  • Ein Arbeitsablauf-Paketverzeichnis wird zum Beispiel anhand von Git versioniert, wobei definition.yaml die Arbeitsablaufgraphen-Definitionsdatei ist, ein Datenordner die für die Ausführung des Arbeitsablaufs erforderlichen Daten und ein bin-Ordner die für die Ausführung des Arbeitsablaufs erforderlichen ausführbaren Dateien enthält. Für eine Version vA wird ein Verzeichnis erstellt, das ein Klon des Arbeitsablauf-Paketverzeichnisses ist. Ein ArbeitsablaufName-vA.instance-Ordner enthält die gleichen Dateien und Verzeichnisse wie das Arbeitsablauf-Paketverzeichnis sowie eine zusätzliche Struktur, zum Beispiel einen Eingabenordner, der vom Benutzer bereitgestellte Eingabedaten enthält, einen Phasenordner, der Komponentenausgabedaten in komponentenspezifischen Verzeichnissen enthält, die in Phasen gruppiert werden können; und bei metadata.yaml handelt es sich um eine Metadatendatei, die alle Metadaten im Zusammenhang mit dem Ausführen des Arbeitsablaufs definiert, zum Beispiel ersetzte Dateien im Datenordner, Argumente für den Arbeitsablaufrahmen oder dergleichen. Die Metadatendatei umfasst alle relevanten Informationen zum Ausführen des Arbeitsablaufpakets.
  • Unter Bezugnahme auf 2 wird die Arbeitsablaufpaket-Version vA 200 mit Referenzeingaben ausgeführt, um Arbeitsablaufinstanz vA 202 zu erzeugen. Die Arbeitsablaufinstanz vA 202, mit optionalen Testspezifikationen 204, kann dem Testarchiv vA 206 entsprechen. Das Testarchiv vA 206 kann dem Arbeitsablaufpaket hinzugefügt werden, um das Arbeitsablaufpaket vB 208 zu erzeugen. Das Testarchiv vA 206 ergänzt die Dateistruktur der Arbeitsablaufinstanz vA 202, indem es die für die Tests erforderlichen Daten und einige Regeln für die Tests einfügt, die bei den Komponenten des Arbeitsablaufs ausgeführt werden sollen. Nachdem das erste Testarchiv erzeugt wurde, wird das Testarchiv bei jeder Änderung der Definition des Arbeitsablaufpakets neu erzeugt, da der Arbeitsablaufgraph und/oder die Daten, die das Testarchiv darstellt, nicht mehr gültig sind.
  • Unter Bezugnahme auf 3 und 4 kann das Arbeitsablaufpaket vB 208 in eine neue Version geändert oder aktualisiert werden, um das Arbeitsablaufpaket vC 300 zu erzeugen. Die Aktualisierungen des Arbeitsablaufpakets vB 208 können zum Beispiel Änderungen der Programmierung einer oder mehreren Komponenten, das Hinzufügen einer oder mehrerer neuer Komponenten oder das Löschen einer oder mehrerer Komponenten umfassen. Ein Prozess der kontinuierlichen Integration/kontinuierlichen Entwicklung 400, zum Beispiel Travis, kann testify-run aufrufen, um für jede Komponente, wie Komponente0 402 und Komponente1 404, ein Instanzenverzeichnis zu erstellen, um eine Arbeitsablaufinstanz vC 406 für Komponente0 402 und eine Arbeitsablaufinstanz vC 408 für Komponente1 404 zu erzeugen. Es werden zwar nur zwei Komponenten gezeigt, aber für jede zu testende Komponente wird eine eigene Arbeitsablaufinstanz vC erzeugt. Die Instanzenverzeichnisse werden mit Eingabedaten aus dem Testarchiv 302 des Arbeitsablaufpakets vB 208 gefüllt. In Prozess 304 stellt testify-run für jede Komponente ihre Daten bereit, führt die Arbeitsablaufinstanz aus, vergleicht ihre neue Ausgabe mit der vorherigen Ausgabe aus dem Testarchiv 302 und kann auch vom Benutzer bereitgestellte Tests ausführen. Eine erste Ausgabe 306 kann Details zu den Testergebnissen umfassen, wobei für jede Komponente Ergebnisse jedes Testlaufs bereitgestellt werden. Eine zweite Ausgabe 308 kann das Gesamtergebnis des Tests enthalten, zum Beispiel „0“, wenn alle Tests bestanden wurden, und „1“, wenn einer der Tests nicht bestanden wurde. In diesem Beispiel wird die getestete Version vC der Komponente und des Arbeitsablaufpakets vC 300 aufgrund Nichtbestehens eines einzelnen Tests als „Nicht bestanden“ gekennzeichnet. Wenn alle Tests (für alle Komponenten) bestanden wurden, wird das Arbeitsablaufpaket vC als erfolgreich oder gültig gekennzeichnet.
  • Nach dem vorangegangenen Überblick über das Beispielsystem für das Erstellen und Ausführen eines Testsystems für einen Arbeitsablauf kann es nun nützlich sein, eine ausführliche Erläuterung von Beispielprozessen zu betrachten. Zu diesem Zweck zeigt 5 einen beispielhaften Prozess 500, der sich auf Verfahren zum Erstellen und Ausführen eines Testsystems für einen Arbeitsablauf bezieht. Der Prozess 500 wird als eine Sammlung von Blöcken in einem logischen Ablaufplan gezeigt, die eine Sequenz von Operationen darstellt, die in Hardware, Software oder einer Kombination davon implementiert werden kann. Im Zusammenhang mit Software stellen die Blöcke durch einen Computer ausführbare Befehle dar, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, die genannten Operationen durchführen. Im Allgemeinen können durch einen Computer ausführbare Befehle Routinen, Programme, Objekte, Komponenten, Datenstrukturen und dergleichen umfassen, die Funktionen ausführen oder abstrakte Datentypen implementieren. In jedem Prozess ist die Reihenfolge, in der die Operationen beschrieben werden, nicht als Einschränkung zu verstehen, und eine beliebige Anzahl der beschriebenen Blöcke kann in beliebiger Reihenfolge kombiniert und/oder parallel durchgeführt werden, um den Prozess zu implementieren.
  • Unter Bezugnahme auf 5 umfasst der Prozess 500 zum Erstellen und Ausführen eines Testsystems für einen Arbeitsablauf einen Schritt 510 zum Erstellen eines Arbeitsablaufpakets oder zum Auswählen eines vorhandenen Arbeitsablaufpakets, einschließlich einer Arbeitsablaufdefinition und Eingabedaten. In Schritt 520 kann die Testsystem-Routine eine Arbeitsablaufinstanz eines Arbeitsablaufs erstellen. Die Arbeitsablaufinstanz kann die Elemente des Arbeitsablaufpakets umfassen sowie ausführungsspezifische Eingabedaten und Metadaten und Ausgabedaten der Arbeitsablaufkomponente. In Schritt 530 kann die Testsystem-Routine ein Testarchiv erstellen, indem es die Arbeitsablaufinstanz mit den Eingabedaten ausführt. In Schritt 540 kann, nachdem das Arbeitsablaufpaket von der Testsystem-Routine auf eine neue Version geändert oder aktualisiert wurde, jede Komponente in der neuen Version des Arbeitsablaufpakets mittels des Testarchivs für die Referenzeingaben getestet werden. In Schritt 550 wird eine Ausgabe der Testergebnisse von der Testsystem-Routine bereitgestellt.
  • Einige Änderungen an einem Arbeitsablauf können ein Erstellen eines neuen Testarchivs erfordern. In einigen Ausführungsformen kann das neue Testarchiv durch Ausführen der neuen Version des Arbeitsablaufs erstellt werden. In anderen Ausführungsformen kann das neue Testarchiv erstellt werden, indem nur Teilgraphen des Arbeitsablaufs ausgeführt werden, die von den Modifikationen im Arbeitsablauf betroffen sind. Zum Beispiel kann die Testsystem-Routine eine Arbeitsablaufinstanz des neuen Arbeitsablaufs erstellen. Bei Komponenten, die von den Modifikationen nicht betroffen sind, zum Beispiel solche, die letztendlich nicht zu den Verbraucherknoten der Ausgaben der modifizierten Knoten gehören, kopiert die Testsystem-Routine deren Ausgaben aus dem bestehenden Testarchiv. Für hinzugefügte oder modifizierte Komponenten oder Verbraucherknoten derselben wird der Zugriff auf erforderliche Ausführungsressourcen gewährt, und die Test- Routine führt die Teilgraphen des Arbeitsablaufs aus, die aus diesen Komponenten stammen. Bei modifizierten Komponenten in einem Arbeitsablauf kann die Ausführung auf die Komponenten beschränkt werden, deren Modifikationen dazu geführt haben, dass sie den Regressionstest nicht bestanden haben. Die Ausgaben dieser Ausführungen werden in die neue Arbeitsablaufinstanz eingefügt. Die Test-Routine kann aus der neuen Instanz ein neues Testarchiv erstellen.
  • 6 zeigt eine Darstellung eines funktionellen Blockschaubilds einer Computerhardware-Plattform 600, die zur Implementierung einer speziell konfigurierten Datenverarbeitungseinheit verwendet werden kann, die eine Routine zum Erstellen und Ausführen eines Testsystems 650 hosten kann. Die Routine zum Erstellen und Ausführen eines Testsystems 650 kann, wie oben erläutert, ein Modul zum Erstellen von Darstellungen 652, ein Testmodul 654 und ein Ausgabemodul 656 umfassen.
  • Die Computerplattform 600 kann eine Zentraleinheit (CPU) 602, ein Festplattenlaufwerk (HDD) 604, einen Direktzugriffsspeicher (RAM) und/oder einen Nur-Lese-Speicher (ROM) 606, eine Tastatur 608, eine Maus 610, eine Anzeige 612 und eine Datenübertragungsschnittstelle 614 umfassen, die an einen Systembus 616 angeschlossen sind.
  • In einer Ausführungsform verfügt das Festplattenlaufwerk (HDD) 604 über Fähigkeiten, zu denen ein Speichern eines Programms gehört, das verschiedene Prozesse ausführen kann, zum Beispiel die Routine zum Erstellen und Ausführen eines Testsystems 650 in der hier beschriebenen Weise.
  • Fazit
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Lehren wurden zur Veranschaulichung vorgelegt, sollen aber weder erschöpfend noch auf die offenbarten Ausführungsformen beschränkt sein. Für den Fachmann sind viele Modifikationen und Variationen erkennbar, ohne vom Umfang und Sinngehalt der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erklären oder um es dem Fachmann zu ermöglichen, die hier offenbarten Ausführungsformen zu verstehen.
  • Es sei darauf hingewiesen, dass in den vorangegangenen Abschnitten zwar der als optimal betrachtete Zustand und/oder andere Beispiele beschrieben wurden, aber dass darin verschiedene Modifikationen vorgenommen werden können und dass der hier offenbarte Gegenstand in verschiedenen Formen und Beispielen umgesetzt werden kann und die Lehren in zahlreichen Anwendungen umgesetzt werden können, von denen hier nur einige beschrieben wurden. Mit den folgenden Ansprüchen sollen alle Anwendungen, Modifikationen und Variationen beansprucht werden, die in den wahren Umfang der vorliegenden Lehren fallen.
  • Die hier erläuterten Komponenten, Schritte, Funktionen, Objekte, Nutzen und Vorteile dienen lediglich der Veranschaulichung. Weder diese noch die diesbezüglichen Erläuterungen zielen darauf ab, den Schutzumfang zu beschränken. Es wurden zwar verschiedene Vorteile erläutert, es sei aber darauf hingewiesen, dass nicht alle Ausführungsformen zwangsläufig alle Vorteile umfassen. Sofern nicht anders angegeben, sind alle Maße, Werte, Bewertungen, Positionen, Ausmaße, Größen und andere Spezifikationen, die in dieser Spezifikation, einschließlich der folgenden Ansprüche, aufgeführt sind, nur annähernd und nicht exakt. Sie sollen eine angemessene Reichweite haben, die mit den Funktionen, auf die sie sich beziehen, und mit dem, was in der sie betreffenden Technik üblich ist, vereinbar ist.
  • Es sind auch zahlreiche andere Ausführungsformen in Betracht zu ziehen. Dazu gehören Ausführungsformen, die weniger, zusätzliche und/oder andere Komponenten, Schritte, Funktionen, Objekte, Nutzen und Vorteile aufweisen. Ebenso gehören hierzu Ausführungsformen, bei denen die Komponenten und/oder Schritte anders aufgebaut und/oder angeordnet sind.
  • Aspekte der vorliegenden Offenbarung sind hierin unter Bezugnahme auf einen Ablaufplan und/oder ein Blockschaubild eines Verfahrens, einer Vorrichtung (Systeme) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Flussdiagramm-Darstellungen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Flussdiagramm-Darstellungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines in geeigneter Weise konfigurierten Computers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie so funktionieren, dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Ausführungsformen der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Schritte umsetzen.
  • Die Anrufablaufpläne, Ablaufpläne und Blockschaubilder in den Figuren hierin veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Zwar wurde das Vorstehende in Verbindung mit beispielhaften Ausführungsformen beschrieben, doch sei darauf hingewiesen, dass der Begriff „beispielhaft“ lediglich als Beispiel und nicht als bestmöglich oder optimal gemeint ist. Mit Ausnahme der unmittelbar oben genannten Fälle ist nichts von dem, was gesagt oder gezeigt wurde, dazu bestimmt oder sollte so ausgelegt werden, dass es dazu führt, dass eine Komponente, ein Schritt, eine Funktion, ein Objekt, ein Nutzen, ein Vorteil oder ein Äquivalent der Öffentlichkeit bereitgestellt wird, unabhängig davon, ob es in den Ansprüchen erwähnt wird.
  • Es sei darauf hingewiesen, dass die hier verwendeten Begriffe und Ausdrücke die übliche Bedeutung haben, die diesen Begriffen und Ausdrücken in Bezug auf ihre entsprechenden jeweiligen Untersuchungs- und Studiengebiete zukommt, es sei denn, es wurde hier eine andere Bedeutung festgelegt. Relationale Begriffe wie „erster“ und „zweiter“ und dergleichen können lediglich dazu verwendet werden, eine Einrichtung oder Aktion von einer anderen zu unterscheiden, ohne dass dies zwangsläufig eine tatsächliche Beziehung oder Reihenfolge zwischen diesen Einrichtungen oder Aktionen erfordert oder impliziert. Die Begriffe „aufweist“, „aufweisen“ oder jede andere Variante davon dienen dazu, eine nicht ausschließliche Einbeziehung zu erfassen, so dass ein Prozess, Verfahren, Gegenstand oder eine Vorrichtung, der/die eine Liste von Elementen aufweist, nicht nur diese Elemente umfasst, sondern auch andere Elemente enthalten kann, die nicht ausdrücklich aufgelistet sind oder zu einem solchen Prozess, Verfahren, Gegenstand oder einer solchen Vorrichtung gehören. Ein Element, dem „ein“ oder „eine“ vorangestellt ist, schließt die Existenz weiterer identischer Elemente in dem Prozess, Verfahren, Gegenstand oder der Vorrichtung, der/die dieses Element aufweist, nicht ohne weitere Einschränkung aus.
  • Die Zusammenfassung der Offenbarung wird bereitgestellt, damit sich der Leser schnell einen Überblick über die Art der technischen Offenbarung verschaffen kann. Sie wird mit der Maßgabe vorgelegt, dass sie nicht dazu verwendet wird, den Umfang oder die Bedeutung der Ansprüche auszulegen oder einzuschränken. Darüber hinaus ist in der vorstehenden ausführlichen Beschreibung zu erkennen, dass verschiedene Funktionen in verschiedenen Ausführungsformen zusammengefasst sind, um die Offenbarung übersichtlich zu gestalten. Dieses Verfahren der Offenbarung ist nicht so zu verstehen, dass die beanspruchten Ausführungsformen mehr Funktionen aufweisen sollen, als in den einzelnen Ansprüchen ausdrücklich angegeben sind. Vielmehr liegt der Erfindungsgegenstand, wie die folgenden Ansprüche zeigen, in weniger als allen Funktionen einer einzigen offenbarten Ausführungsform. Daher werden die folgenden Ansprüche hiermit in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich genommen einen gesonderten beanspruchten Gegenstand darstellt.

Claims (13)

  1. Auf einem Computer implementiertes Verfahren zum automatischen Erstellen und Ausführen eines Testsystems für einen Arbeitsablauf, wobei das Verfahren aufweist: Erstellen eines Arbeitsablaufpakets, das eine Versionskennung und eine Arbeitsablaufgraphen-Definition enthält; Erstellen einer Arbeitsablaufinstanz auf der Grundlage von dem Arbeitsablaufpaket; Ausführen der Arbeitsablaufinstanz, um Ausgabedaten zu erzeugen; Speichern der Arbeitsablaufinstanz mit den Ausgabedaten als Testarchiv; Testen einer oder mehrerer Komponenten eines aktualisierten Arbeitsablaufpakets mit dem Testarchiv; und Ausgeben einer Anzeige, ob das Testen des aktualisierten Arbeitsablaufpakets bestanden oder nicht bestanden wurde.
  2. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei das Verfahren ferner ein Erstellen des Arbeitsablaufpakets mit Informationen über eine Transformationslogik für jeden Knoten aufweist.
  3. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei das Verfahren ferner ein Erzeugen der Ausgabedaten der Arbeitsablaufinstanz aufweist durch (a) Ausführen eines oder mehrerer ausgewählter Teilgraphen aus einer Mehrzahl von Teilgraphen des Arbeitsablaufs, um Ausgabedaten zu erzeugen, und/oder (b) Befüllen anderer Teilgraphen aus der Mehrzahl von Teilgraphen mit Ausgabedaten von Teilgraphen aus einer zuvor erzeugten Arbeitsablaufinstanz.
  4. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei die Anzeige Ergebnisse jedes Tests umfasst, der auf jeder der ein oder mehreren Komponenten durchgeführt wurde.
  5. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei das Testen eine Mehrzahl von Tests umfasst, die einen Eingabedatentest, einen Datenbereitstellungstest, einen Ausführungstest und einen Ausgabevergleichstest aufweisen.
  6. Auf einem Computer implementiertes Verfahren nach Anspruch 5, wobei jeder der Mehrzahl von Tests der Reihe nach ausgeführt wird, wobei durch ein Nichtbestehen eines der Mehrzahl von Tests das Testen beendet und eine Fehleranzeige ausgegeben wird.
  7. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei das Verfahren ferner ein Zuordnen einer Testspezifikation zu dem Testarchiv aufweist, wobei die Testspezifikation definiert, welche Ausgabedaten von der einen oder den mehreren Komponenten zu dem Testarchiv hinzugefügt werden sollen.
  8. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei das Verfahren ferner ein Zuordnen einer Testspezifikation zu dem Testarchiv aufweist, wobei die Testspezifikation ein individuelles Anpassen des Testens ermöglicht und Definitionen für Bestehen und Nichtbestehen bereitstellt.
  9. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei das Verfahren ferner ein Zulassen aufweist, dass zusätzliche Programme in einer Testspezifikation für ein ausgewähltes Testen der einen oder mehreren Komponenten bereitgestellt werden.
  10. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei das Verfahren ferner ein erneutes Erzeugen des Testarchivs auf der Grundlage von einer Instanz des aktualisierten Arbeitsablaufpakets aufweist.
  11. Nichtflüchtiges, durch einen Computer lesbares Speichermedium, in dem durch einen Computer lesbarer Programmcode mit durch einen Computer lesbaren Befehlen physisch verkörpert ist, der, wenn er ausgeführt wird, eine Computereinheit dazu veranlasst, ein Verfahren zum Erstellen und Ausführen eines Testsystems für Arbeitsabläufe auszuführen, wobei das Verfahren aufweist: Erstellen eines Arbeitsablaufpakets, das eine Versionskennung und eine Arbeitsablaufgraphen-Definition enthält; Erstellen einer Arbeitsablaufinstanz auf der Grundlage von dem Arbeitsablaufpaket; Ausführen der Arbeitsablaufinstanz, um Ausgabedaten zu erzeugen; Speichern der Arbeitsablaufinstanz mit den Ausgabedaten als Testarchiv; Testen einer oder mehrerer Komponenten eines aktualisierten Arbeitsablaufpakets mit dem Testarchiv; und Ausgeben einer Anzeige, ob das Testen des aktualisierten Arbeitsablaufpakets bestanden oder nicht bestanden wurde.
  12. Nichtflüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 11, wobei im Falle eines Nichtbestehens einer der Mehrzahl von Tests für eine bestimmte Komponente eine Fehleranzeige sowohl für die bestimmte Komponente als auch für den Arbeitsablauf bereitgestellt wird.
  13. Nichtflüchtiges, durch einen Computer lesbares Speichermedium, in dem durch einen Computer lesbarer Programmcode mit durch einen Computer lesbaren Befehlen physisch verkörpert ist, der, wenn er ausgeführt wird, eine Computereinheit dazu veranlasst, ein Verfahren zum Erstellen und Ausführen eines Testsystems für Arbeitsabläufe auszuführen, wobei das Verfahren aufweist: Erstellen eines Arbeitsablaufpakets, das eine Versionskennung, eine Arbeitsablaufgraphen-Definition und eine Transformationslogik für jede Komponenten der einen oder mehreren Komponenten des Arbeitsablaufs enthält; Erstellen einer Arbeitsablaufinstanz auf der Grundlage von dem Arbeitsablaufpaket; Ausführen der Arbeitsablaufinstanz, um Ausgabedaten zu erzeugen; Speichern der Arbeitsablaufinstanz mit den Ausgabedaten als Testarchiv; Testen der einen oder mehreren Komponenten eines aktualisierten Arbeitsablaufpakets mit dem Testarchiv, wobei: das Testen eine Mehrzahl von Tests umfasst, die einen Eingabedatentest, einen Datenbereitstellungstest, einen Ausführungstest und einen Ausgabevergleichstest aufweisen; und jeder der Mehrzahl von Tests der Reihe nach ausgeführt wird, wobei durch ein Nichtbestehen eines der Mehrzahl von Tests das Testen beendet wird; und Ausgeben einer Anzeige, ob das Testen des aktualisierten Arbeitsablaufpakets bestanden oder nicht bestanden wurde.
DE102021130822.4A 2020-12-30 2021-11-24 Automatisches erstellen und ausführen eines testsystems für arbeitsabläufe Pending DE102021130822A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/138,843 US20220207438A1 (en) 2020-12-30 2020-12-30 Automatic creation and execution of a test harness for workflows
US17/138,843 2020-12-30

Publications (1)

Publication Number Publication Date
DE102021130822A1 true DE102021130822A1 (de) 2022-06-30

Family

ID=80080943

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021130822.4A Pending DE102021130822A1 (de) 2020-12-30 2021-11-24 Automatisches erstellen und ausführen eines testsystems für arbeitsabläufe

Country Status (5)

Country Link
US (1) US20220207438A1 (de)
JP (1) JP2022104880A (de)
CN (1) CN114691487A (de)
DE (1) DE102021130822A1 (de)
GB (1) GB2605483A (de)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010454B1 (en) * 2004-03-31 2006-03-07 Microsoft Corporation Test services provider
US7340725B1 (en) * 2004-03-31 2008-03-04 Microsoft Corporation Smart test attributes and test case scenario in object oriented programming environment
US20070001683A1 (en) * 2005-06-17 2007-01-04 Krigel Henrick Y System for testing wiring characteristics
US7831464B1 (en) * 2006-04-06 2010-11-09 ClearPoint Metrics, Inc. Method and system for dynamically representing distributed information
US8131840B1 (en) * 2006-09-12 2012-03-06 Packet Plus, Inc. Systems and methods for data stream analysis using embedded design logic
US8280713B2 (en) * 2007-04-16 2012-10-02 International Business Machines Corporation Automatic generation of test suite for processor architecture compliance
EP2546749A1 (de) * 2011-07-15 2013-01-16 Siemens Aktiengesellschaft Verfahren und System zur Testreihensteuerung
EP2953072A1 (de) * 2014-06-06 2015-12-09 Accenture Global Services Limited Arbeitsablauftestfallerzeugung
US10621013B2 (en) * 2018-06-29 2020-04-14 Optum, Inc. Automated systems and methods for generating executable workflows
WO2020146798A1 (en) * 2019-01-10 2020-07-16 Tektronix, Inc. Disaggregated distributed measurement analysis system using dynamic application builder
US10768908B1 (en) * 2019-02-25 2020-09-08 Microsoft Technology Licensing, Llc Workflow engine tool
US11003571B2 (en) * 2019-04-05 2021-05-11 Oracle International Corporation Customizable enterprise automation test framework
US11169798B1 (en) * 2019-07-05 2021-11-09 Dialpad, Inc. Automated creation, testing, training, adaptation and deployment of new artificial intelligence (AI) models
CN114127696A (zh) * 2020-04-21 2022-03-01 尤帕斯公司 用于机器人过程自动化的测试自动化
US11750451B2 (en) * 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows

Also Published As

Publication number Publication date
CN114691487A (zh) 2022-07-01
JP2022104880A (ja) 2022-07-12
GB2605483A (en) 2022-10-05
GB202117485D0 (en) 2022-01-19
US20220207438A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
DE60021066T2 (de) Prüfung eines Softwarepakets
DE112011103428T5 (de) Automatisierte Analyse zusammengesetzter Anwendungen
DE19815534A1 (de) Verfahren und System zum Entwurf und zur Simulation digitaler Rechner-Hardware
DE102007029133A1 (de) Verfahren zum rechnergestützten Ermitteln der Abhängigkeiten einer Vielzahl von Modulen eines technischen Systems, insbesondere eines Softwaresystems
DE112014002960T5 (de) Ableitung verallgemeinerter Testfälle
DE112013000368T5 (de) Bearbeiten von Quellcode-Patches
WO2006094827A2 (de) Testvorrichtung zur überprüfung einer stapelverarbeitung
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
DE102009050161A1 (de) Verfahren und Vorrichtung zum Testen eines Systems mit zumindest einer Mehrzahl von parallel ausführbaren Softwareeinheiten
DE102021130630A1 (de) Testen von software-anwendungskomponenten
DE102004025264A1 (de) Datenverarbeitungseinrichtung und Verfahren zur Wiederherstellung eines Betriebszustandes
DE102005012665A1 (de) Verfahren und Vorrichtung zum Ermitteln von Clustern aus einer Mehrzahl von in Aufträgen geordneten Daten
DE202016008006U1 (de) Generierung von Integrationstests im Kleinen
DE112018002316T5 (de) Codeabdeckungsverfolgung für ein mikrocontroller-programm
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
EP4002098A1 (de) Verfahren zur bereitstellung der funktionalität von mehreren mikrodiensten und/oder der funktionalität von mehreren software-containern mittels einer cloud-infrastruktur, system, verwendungssystem, computerprogramm und computerlesbares medium
DE112020000657T5 (de) Dienstverwaltung in einem dbms
DE112017002779T5 (de) Formatspezifische Datenverarbeitungsoperationen
DE102021130822A1 (de) Automatisches erstellen und ausführen eines testsystems für arbeitsabläufe
DE202012013449U1 (de) System für In-Line-Einfügung von Scriptabhängigkeiten
DE112021000240T5 (de) Ausführen von tests in deterministischer reihenfolge
DE112018006331B4 (de) Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm
DE102017104049B4 (de) Verfahren und vorrichtung zum überprüfen der zuverlässigkeit eines chips
DE19926467C1 (de) Verfahren zum Betreiben eines Computersystems, Bytecode-Verifier und Computersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence