IP Library › Granted Patent US 12,443,900
Granted Patent B2
US 12,443,900 · App. 17/138,843 · Granted Oct 14, 2025

Automatic creation and execution of a test harness for workflows

Inventors: Michael Johnston (Dublin, IE); Vasileios Vasileiadis (Dublin, IE)
Assignee: International Business Machines Corporation
G06Q10/06G06F8/65G06F11/3684G06Q10/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,443,900
App. No.
17/138,843
Granted
Oct 14, 2025
Kind
B2
Abstract

A computer implemented method for automatically creating and executing a test harness for a workflow includes creating a workflow package including a version identification and a workflow graph definition and creating a workflow instance as a copy of the workflow package. The workflow instance is executed to generate output data and the output data is saved into the workflow instance. The workflow instance is saved, with the output data, as a test archive. One or more components of an updated workflow package are tested with the test archive; and an indication of pass or fail of the testing of the updated workflow package is outputted.

Claims (50)

1. A computer implemented method, comprising:

automatically creating and executing a test harness for an existing software program workflow, the creating and executing comprising:

receiving the exiting software program workflow, wherein the existing software program workflow comprises software components;

automatically creating, by a computing device, a workflow package of a direct acyclic graph (DAG), including a version identification and a workflow graph definition based on the existing workflow;

creating a workflow instance based on the workflow package;

executing the workflow instance on the computing device to generate output data;

saving the workflow instance with the generated output data as a test archive, wherien the generated output data is used as a baseline for an output comparison test;

augmenting a file structure of the workflow instance, by the test archive, by inserting an input data and the generated output data used as a baseline for the output comparison test, and at least one rule, on one or more tests to be executed on one or more software components in an updated workflow package; and

testing the one or more softwaqre components of the updated workflow package with the test archive by performing the output comparison test; and

output an indication of pass or fail of the testing of the updated workflow package based on the testing.

2. The computer implemented method of claim 1 , further comprising creating the workflow package including information on a transformation logic for each node.

3. The computer implemented method of claim 1 , further comprising generating the output data of the workflow instance via at least one of (a) executing one or more selected subgraphs from a plurality of subgraphs of the workflow to generate output data, and (b) populating other ones of the plurality of subgraphs with subgraph output data from a previously created workflow instance.

4. The computer implemented method of claim 1 , wherein the indication includes results from each test performed on each of the one or more components.

5. The computer implemented method of claim 1 , wherein the testing includes a plurality of tests comprising an input data test, a data staging test, an execution test, and an output comparison test.

6. The computer implemented method of claim 5 , wherein each of the plurality of tests are executed in order, where failure of one of the plurality of tests ends the testing and outputs a failure indication.

7. The computer implemented method of claim 1 , further comprising associating a test specification with the test archive, wherein the test specification defines which output data from the one or more components should be added to the test archive.

8. The computer implemented method of claim 1 , further comprising associating a test specification with the test archive, wherein the test specification permits customization of the testing and provides definitions of pass and fail.

9. The computer implemented method of claim 1 , further comprising permitting additional programs to be provided in a test specification for a selected testing of the one or more components.

10. The computer implemented method of claim 1 , further comprising regenerating the test archive based on an instance of the updated workflow package.

11. A computer implemented method of claim 1 , wherein:

creating a workflow package of the direct acyclic graph (DAG) includes a transformation logic of each component of one or more components of the workflow;

the testing includes a plurality of tests comprising an input data test, a data staging test, an execution test, and an output comparison test; and

each of the plurality of tests are executed in order, where failure of one of the plurality of tests ends the testing.

12. The computer implemented method of claim 11 , wherein the indication includes results from each test performed on each of the one or more components.

13. The computer implemented method of claim 11 , further comprising associating a test specification with the test archive, wherein the test specification defines which output data from the one or more components should be added to the test archive.

14. The computer implemented method of claim 11 , further comprising associating a test specification with the test archive, wherein the test specification permits customization of the testing and provides definitions of pass and fail.

15. The computer implemented method of claim 11 , further comprising regenerating the test archive based on an instance of the updated workflow package.

16. The computer implemented method of claim 1 , further comprising creating a separate workflow instance for each software component.

17. A non-transitory computer readable storage medium tangibly embodying a computer readable program code having computer readable instructions that, when executed, causes a computer device to carry out a method:

automatically creating and executing a test harness for an existing software program workflow, the creating and executing comprising:

receiving the existing software program workflow, wherein the existing software program workflow comprises software components;

automatically creating, by a computing device, a workflow package of a direct acyclic graph (DAG); including a version identificaiton and a workflow graph definition based on the existing workflow;

creating a workflow instance based on the workflow package;

executing the workflow instance on the vcomputing device to generate output data;

saving the workflow instance with the generated output data as a test archive, wherein the generated output data is used as a baseline for an output comparison test;

augmenting a file structure of the workflow instance, by the test archive, by inserting an input data and the generated output data used as a baseline for the output cmparison test, and at least one rule, on one or more tests to be executed on one or more software components in an updated workflow package; and

testing the one or more software components of the updated workflow package with the test archive by performing the output comparison test; and

outputting an indication of pass of fail of the tsting of the updated workflow package based on the testing.

18. The non-transitory computer readable storage medium of claim 17 , wherein the testing includes a plurality of tests comprising an input data test, a data staging test, an execution test, and an output comparison test.

19. The non-transitory computer readable storage medium of claim 18 , wherein if one of the plurality of tests fail for a given component, the indication provided is a failure indication for both the given component and the workflow.

20. The non-transitory computer readable storage medium of claim 18 , wherein each of the plurality of tests are executed in order, where failure of one of the plurality of tests ends the testing and outputs a failure indication.

21. The non-transitory computer readable storage medium of claim 17 , wherein the execution of the code by the processor further configures the computing device to perform an act comprising associating a test specification with the test archive, wherein the test specification defines which of output data from the one or more components should be added to the test archive.

22. The non-transitory computer readable storage medium of claim 17 , wherein the execution of the code by the processor further configures the computing device to perform an act comprising associating a test specification with the test archive, wherein the test specification permits customization of the testing and provides definitions of pass and fail.

23. The non-transitory computer readable storage medium of claim 17 , wherein:

creating a workflow package of the direct acyclic graph (DAG) includes a transformation logic of each component of one or more components of the workflow;

the testing includes a plurality of tests comprising an input data test, a data staging test, an execution test, and an output comparison test; and

each of the plurality of tests are executed in order, where failure of one of the plurality of tests ends the testing.

24. The non-transitory computer readable storage medium of claim 23 , wherein the execution of the code by the processor further configures the computing device to perform an act comprising associating a test specification with the test archive, wherein the test specification defines which of output data from the one or more components should be added to the test archive.

25. The non-transitory computer readable storage medium of claim 23 , wherein the execution of the code by the processor further configures the computing device to perform an act associating a test specification with the test archive, wherein the test specification permits customization of the testing and provides definitions of pass and fail.

26. The non-transitory computer readable storage medium of claim 23 , wherein the execution of the code by the processor further configures the computing device to perform an act comprising regenerating the test archive based on an instance of the updated workflow package.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: JOHNSTON, MICHAEL; VASILEIADIS, VASILEIOS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054782/0349 →
Continuity (1)
Related Publication 20220207438A1 · Jun 30, 2022
References Cited (51)
US 7010454B1 · Potter, IV · 2006 [cited by examiner]
US 7299382B2 · Jorapur · 2007 [cited by applicant]
US 7340725B1 · Robinson · 2008 [cited by examiner]
US 8131840B1 · Denker · 2012 [cited by examiner]
US 8712815B1 · Nichols · 2014 [cited by examiner]
US 9696971B1 · Wierda et al. · 2017 [cited by applicant]
US 9734044B2 · Harden et al. · 2017 [cited by applicant]
US 10019344B1 · Chheda et al. · 2018 [cited by applicant]
US 10157122B1 · Gohil et al. · 2018 [cited by applicant]
US 11003571B2 · Mitra · 2021 [cited by applicant]
US 11169798B1 · Palmer · 2021 [cited by examiner]
US 11829280B1 · Zhang · 2023 [cited by examiner]
US 20070001683A1 · Krigel · 2007 [cited by examiner]
US 20080255822A1 · Adir · 2008 [cited by examiner]
US 20100251209A1 · Murthy · 2010 [cited by applicant]
US 20130019126A1 · Frohlich · 2013 [cited by examiner]
US 20140075242A1 · Dolinina · 2014 [cited by examiner]
US 20150143064A1 · Bhargava · 2015 [cited by examiner]
US 20170171034A1 · Lucas · 2017 [cited by examiner]
US 20200004604A1 · Lavoie · 2020 [cited by examiner]
US 20200142712A1 · Liu et al. · 2020 [cited by applicant]
US 20200225287A1 · Krishnakumar · 2020 [cited by examiner]
US 20200272433A1 · Wang · 2020 [cited by examiner]
US 20200319995A1 · Mitra · 2020 [cited by examiner]
US 20210073026A1 · Myers · 2021 [cited by examiner]
US 20210224047A1 · Wang · 2021 [cited by examiner]
US 20210326244A1 · Stocker · 2021 [cited by examiner]
US 20220141088A1 · Bandyopadhyay · 2022 [cited by examiner]
CN 108763091A · 2018 [cited by applicant]
CN 109684194A · 2019 [cited by applicant]
CN 114127696A · 2022 [cited by examiner]
CN 114691487A · 2022 [cited by applicant]
DE 1020211308224A1 · 2022 [cited by applicant]
EP 2546749A1 · 2013 [cited by applicant]
EP 2953072A1 · 2015 [cited by applicant]
EP 3901865A1 · 2021 [cited by applicant]
EP 3948545A · 2022 [cited by applicant]
GB 2605483A · 2022 [cited by applicant]
IN 201621031723A · 2018 [cited by applicant]
JP 2005085182A · 2005 [cited by applicant]
JP 2022104880A · 2022 [cited by applicant]
V. K. Pallipuram, J. DiMarco and M. Taufer, “Applying frequency analysis techniques to dag-based workflows to benchmark and predict resource behavior on non-dedicated clusters,” 2014 IEEE International Conference on Clu… [cited by examiner]
Bures, M. “PCTgen: Automated Generation of Test Cases for Application Workflows”; ResearchGate (2015); 8 pgs. [cited by applicant]
Indian Patent Application No. 201621031723 entitled “System and Method for Automated Test Case Generation and Execution”, filed Mar. 23, 2018; 28 pgs. [cited by applicant]
Karam, M. et al., “An Abstract Workflow-Based Framework for Testing Composed Web Services”; IEEE (2007); pp. 901-908. [cited by applicant]
Sarma, M. et al., “Automatic Test Case Generation from UML Sequence Diagrams”; IEEE (2007); pp. 60-. [cited by applicant]
Nebut, N. et al., “Automatic Test Generation: A Use Case Driven Approach”; IEEE Transactions on Software Engineering (2006); vol. 32:3; pp. 140-155. [cited by applicant]
Boucher, M. et al., “Transforming Workflow Models into Automated End-to-End Acceptance Test Cases”; IEEE/ACM 9th International Workshop on Modelling in Software Engineering (MiSE) (2017); 7 pgs. [cited by applicant]
“Software Testing and Case Analysis”, retrieved from web https://www.geeksforgeeks. org/software-testing-test-analysis/, Dec. 31, 2012, p. 1. [cited by applicant]
Japan Patent Office, “Notice of Reasons for Refusal” May 7, 2025, 04 Pages, JP Application No. 2021-202996. [cited by applicant]
The State Intellectual Property Office of People's Republic of China, “Second Office Action”, Jul. 11, 2025, 16 Pages, CN Application No. 202111267621.2. [cited by applicant]