IP Library Granted Patent US 12670089
Granted Patent B2
US 12670089 · App. 18/683,451 · Granted Jun 30, 2026

Method and system for testing functionality of a software program using digital twin

Inventors: Keith Andress (Oak Ridge, TN); Saurav Daga (Bangalore, IN); Murali Tharan Gnanamani (Bangalore, IN); Tasheer Hussain B (Bengaluru, IN); Sandesh Naik (Uttara kannada, IN)
Assignee: Siemens Medical Solutions USA, Inc.
G06F11/3692G06F11/3688G06F11/3698
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 12670089
App. No.
18/683,451
Granted
Jun 30, 2026
Kind
B2
Abstract

A method and system are disclosed for testing functionality of a software program based on at least one modification to a software code of the software program. In one embodiment, the method includes: receiving software code of software program from one or more sources; identifying functions within the software code of the software program affected by the modification of software code; simulating the identified functions of the software program using digital twin; determining workflows of the software program based on the simulation of digital twin; identifying at least one impacted workflow from determined workflows based on one or more requirements of software program; and executing at least one impacted workflow critical to the functionality of the software program for testing the functionality of software program.

Claims (79)

1 . A method for testing a functionality of a software program based on at least one modification to a software code of the software program, the method comprising:

receiving, by a processing unit, the software code of the software program from one or more sources for testing, wherein the software code of the software program has been modified;

identifying, by the processing unit, one or more functions within the software code of the software program affected by the modification of the software code of the software program;

simulating, by the processing unit, the identified one or more functions within the software code of the software program using a digital twin of the software program, wherein the digital twin of the software program is generated based on a static model of the software program and a dynamic model of the software program stored in a database;

determining, by the processing unit, one or more workflows of the software code of the software program based on the simulation of the identified one or more functions within the software code of the software program using the digital twin of the software program, wherein the determined one or more workflows of the software code of the software program are impacted by the identified one or more functions within the software code of the software program;

identifying, by the processing unit, at least one impacted workflow of the software code of the software program from the determined one or more workflows of the software code of the software program based on one or more requirements of the software program, wherein the identified at least one impacted workflow of the software code of the software program is critical to the functionality of the software program; and

executing, by the processing unit, the identified at least one impacted workflow of the software code of the software program critical to the functionality of the software program for testing the functionality of the software program.

2 . The method of claim 1 , further comprising:

determining, by the processing unit, a correlation score between the identified at least one impacted workflow of the software code of the software program and other one or more workflows of the software code of the software program based on a similarity between the one or more workflows of the software code of the software program, wherein the other one or more workflows of the software code of the software program have been modified over a period of time and are stored in the database or a different database; and

identifying, by the processing unit, one or more impacted workflows of the software code of the software program having the correlation score above a predefined threshold value.

3 . The method of claim 1 , further comprising:

generating, by the processing unit, one or more clusters from the identified at least one impacted workflow of the software code of the software program based on a similarity between each impacted workflow of the impacted workflows of the software code of the software program; and

determining, by the processing unit, a minimum number of workflows from the impacted workflows of the software code of the software program based on the generated one or more clusters, wherein the minimum number of workflows are required to validate the modification to the software code of the software program.

4 . The method of claim 1 , further comprising:

identifying, by the processing unit, at least one function within the software code of the software program that has been modified, wherein the at least one function within the software code of the software program comprises none of the identified at least one impacted workflow of the software code of the software program.

5 . The method of claim 1 , wherein the identifying of the one or more functions within the software code of the software program comprises:

comparing, by the processing unit, a previous version of the software code of the software program with the received software code of the software program, wherein the received software code of the software program is a current version of the software code of the software program; and

identifying, by the processing unit, the one or more functions within the software code of the software program based on the comparing.

6 . The method of claim 1 , wherein the determining of the one or more workflows of the software code of the software program comprises:

analyzing, by the processing unit, the identified one or more functions within the software code of the software program using the digital twin of the software program;

determining, by the processing unit, a plurality of workflows within the software code of the software program based on the analyzing, wherein the plurality of workflows comprise all possible workflows of the software code of the software program;

mapping, by the processing unit, each workflow of the plurality of workflows to the identified one or more functions within the software code of the software program; and

determining, by the processing unit, the one or more workflows of the software code of the software program that have been impacted by the modification of the software code of the software program based on the mapping.

7 . The method of claim 1 , wherein the identifying of the at least one impacted workflow of the software code of the software program comprises:

retrieving, by the processing unit, one or more requirements of the software program from the database;

classifying, by the processing unit, the one or more requirements of the software program into one or more predefined groups;

mapping, by the processing unit, each of the determined one or more workflows of the software code of the software program to at least one predefined group of the one or more predefined groups; and

identifying, by the processing unit, the at least one impacted workflow of the software code of the software program from the determined one or more workflows of the software code of the software program as a critical workflow based on the mapping.

8 . The method of claim 1 , wherein the generating of the digital twin of the software program comprises:

receiving, by the processing unit, the static model of the software program from the database, wherein the static model of the software program is generated based on the software code of the software program, libraries pertaining to the software code of the software program, and static links therebetween;

receiving, by the processing unit, the dynamic model of the software program from the database, wherein the dynamic model of the software program is generated based on execution of one or more workflows of the software code of the software program at run time; and

generating, by the processing unit, the digital twin of the software program based on a comparison of the received static model of the software program and the received dynamic model of the software program, requirements of the software program, and a test suite of the software program.

9 . The method of claim 8 , wherein the generating of the dynamic model of the software program comprises:

determining, by the processing unit, at least one workflow of the software code of the software program, wherein the at least one workflow of the software code of the software program is derived based on at least one requirement of the software program;

executing, by the processing unit, the one or more workflows of the software code of the software program in real-time;

generating, by the processing unit, one or more event records based on the execution of the one or more workflows of the software code of the software program, wherein each event record of the one or more event records comprises data associated with a behavior of the software program at run time;

determining, by the processing unit, dynamic links between each event record of the one or more event records, data pertaining to the one or more event records, and corresponding one or more workflows of the software code of the software program; and

generating, by the processing unit, the dynamic model of the software program based on the determined dynamic links.

10 . A device for testing a functionality of a software program based on at least one modification to a software code of the software program, the device comprising:

one or more processing units; and

a memory coupled to the one or more processing units, the memory storing a functionality testing module configured to:

receive the software code of the software program from one or more sources for testing, wherein the software code of the software program has been modified;

identify one or more functions within the software code of the software program affected by the modification of the software code of the software program;

simulate the identified one or more functions within the software code of the software program using a digital twin of the software program, wherein the digital twin of the software program is generated based on a static model of the software program and a dynamic model of the software program stored in a database;

determine one or more workflows of the software code of the software program based on the simulation of the identified one or more functions within the software code of the software program using the digital twin of the software program, wherein the determined one or more workflows of the software code of the software program are impacted by the identified one or more functions within the software code of the software program;

identify at least one impacted workflow of the software code of the software program from the determined one or more workflows of the software code of the software program based on one or more requirements of the software program, wherein the identified at least one impacted workflow of the software code of the software program is critical to the functionality of the software program; and

execute the identified at least one impacted workflow of the software code of the software program critical to the functionality of the software program for testing the functionality of the software program.

11 . The device of claim 10 , wherein the functionality testing module is further configured to:

determine a correlation score between the identified at least one impacted workflow of the software code of the software program and other one or more workflows of the software code of the software program based on a similarity between the one or more workflows of the software code of the software program, wherein the other one or more workflows of the software code of the software program have been modified over a period of time and are stored in the database or a different database; and

identify one or more impacted workflows of the software code of the software program having the correlation score above a predefined threshold value.

12 . The device of claim 10 , wherein, in the determining of the one or more workflows of the software code of the software program, the functionality testing module is further configured to:

analyze the identified one or more functions within the software code of the software program using the digital twin of the software program;

determine a plurality of workflows within the software code of the software program based on the analyzing, wherein the plurality of workflows comprise all possible workflows of the software code of the software program;

map each workflow of the plurality of workflows to the identified one or more functions within the software code of the software program; and

determine the one or more workflows of the software code of the software program that have been impacted by the modification of the software code of the software program based on the mapping.

13 . The device of claim 10 , wherein, in the identifying of the at least one impacted workflow of the software code of the software program, a workflow determination module of the memory is configured to:

retrieve one or more requirements of the software program from the database;

classify the one or more requirements of the software program into one or more predefined groups;

map each of the determined one or more workflows of the software code of the software program to at least one predefined group of the one or more predefined groups; and

identify the at least one impacted workflow of the software code of the software program from the determined one or more workflows of the software code of the software program as a critical workflow based on the mapping.

14 . The device of claim 10 , wherein, in the generating of the digital twin of the software program, a workflow determination module of the memory is configured to:

receive the static model of the software program from the database, wherein the static model of the software program is generated based on the software code of the software program, libraries pertaining to the software code of the software program, and static links therebetween;

receive the dynamic model of the software program from the database, wherein the dynamic model of the software program is generated based on execution of one or more workflows of the software code of the software program at run time; and

generate the digital twin of the software program based on a comparison of the received static model of the software program and the received dynamic model of the software program, requirements of the software program, and a test suite of the software program.

15 . The device of claim 10 , wherein, in the generating of the dynamic model of the software program, a workflow determination module of the memory is configured to:

determine at least one workflow of the software code of the software program, wherein the at least one workflow of the software code of the software program is derived based on at least one requirement of the software program;

execute the one or more workflows of the software code of the software program in real-time;

generate one or more event records based on the execution of the one or more workflows of the software code of the software program, wherein each event record of the one or more event records comprises data associated with a behavior of the software program at run time;

determine dynamic links between each event record of the one or more event records, data pertaining to the one or more event records, and corresponding one or more workflows of the software code of the software program; and

generate the dynamic model of the software program based on the determined dynamic links.

16 . A system for testing a functionality of a software program based on at least one modification to a software code of the software program, the system comprising:

one or more servers; and

a device comprising one or more processing units and a memory, communicatively coupled to the one or more servers, the one or more servers storing one or more instructions, which, when executed, cause the one or more servers to:

receive the software code of the software program from one or more sources for testing, wherein the software code of the software program has been modified;

identify one or more functions within the software code of the software program affected by the modification of the software code of the software program;

simulate the identified one or more functions within the software code of the software program using a digital twin of the software program, wherein the digital twin of the software program is generated based on a static model of the software program and a dynamic model of the software program stored in a database;

determine one or more workflows of the software code of the software program based on the simulation of the identified one or more functions within the software code of the software program using the digital twin of the software program, wherein the determined one or more workflows of the software code of the software program are impacted by the identified one or more functions within the software code of the software program;

identify at least one impacted workflow of the software code of the software program from the determined one or more workflows of the software code of the software program based on one or more requirements of the software program, wherein the identified at least one impacted workflow of the software code of the software program is critical to the functionality of the software program; and

execute the identified at least one impacted workflow of the software code of the software program critical to the functionality of the software program for testing the functionality of the software program.