diff --git a/lib/redfish_code_update_utils.robot b/lib/redfish_code_update_utils.robot
index 17ffbe0..5210c9b 100644
--- a/lib/redfish_code_update_utils.robot
+++ b/lib/redfish_code_update_utils.robot
@@ -284,3 +284,101 @@
    Redfish.Patch  /redfish/v1/Managers/bmc
    ...  body={'Links': {'ActiveSoftwareImage': {'@odata.id': '${firmware_inv_path}'}}}
 
+
+Create List Of Task
+    [Documentation]  Return list of task id(s) from provided list of dictionary.
+    [Arguments]  ${task_dict_list}
+
+    # Description of argument(s):
+    # task_dict_list    Task id dictionary list.
+
+    # '@odata.id': '/redfish/v1/TaskService/Tasks/0'
+
+    ${task_list}=  Create List
+
+    FOR  ${task_dict}  IN  @{task_dict_list}
+      Append To List  ${task_list}  ${task_dict['@odata.id']}
+    END
+
+    [Return]  ${task_list}
+
+
+Create Initiated Task State Dict
+    [Documentation]  Create active task inventory dictionary as certain URI create task
+    ...  to serve the user request.
+    [Arguments]  ${task_obj}
+
+    # Description of argument(s):
+    # task_obj    Task dictionary.
+
+    # task_inv
+    # TargetUri     /redfish/v1/UpdateService
+    # TaskIdURI     /redfish/v1/TaskService/Tasks/0
+    # TaskState     Starting
+    # TaskStatus    OK
+
+    ${task_inv}=  Create Dictionary
+    Set To Dictionary  ${task_inv}  TargetUri  ${task_obj['Payload']['TargetUri']}
+    Set To Dictionary  ${task_inv}  TaskIdURI  ${task_obj['@odata.id']}
+    Set To Dictionary  ${task_inv}  TaskState  ${task_obj['TaskState']}
+    Set To Dictionary  ${task_inv}  TaskStatus  ${task_obj['TaskStatus']}
+
+    [Return]  ${task_inv}
+
+
+Match Target URI
+    [Documentation]  Match target uri from task list.
+    [Arguments]  ${task_list}  ${target_uri}
+
+    # Description of argument(s):
+    # task_list    Task id list.
+    # target_uri   Task created for target URI.
+
+    # target_uri   /redfish/v1/UpdateService
+
+    FOR  ${task_id}  IN  @{task_list}
+      ${task_payload}=  Redfish.Get Properties  ${task_id}
+      Run Keyword And Return If  '${task_payload['Payload']['TargetUri']}' == '${target_uri}'  Create Initiated Task State Dict  ${task_payload}
+    END
+
+
+Check Task With Match TargetUri
+    [Documentation]  Create task state dictionary.
+    [Arguments]  ${target_uri}=/redfish/v1/TaskService/Tasks
+
+    # Description of argument(s):
+    # target_uri    Target URI for which task is initiated.
+
+    ${task_dict_list}=  Redfish.Get Attribute  /redfish/v1/TaskService/Tasks  Members
+
+    ${task_list}=  Create List Of Task  ${task_dict_list}
+
+    ${task_inv}=  Match Target URI  ${task_list}  ${target_uri}
+
+    [Return]  ${task_inv}
+
+
+Verify Task Progress State
+    [Documentation]  Verify task progress matches the user expected task state.
+    [Arguments]  ${task_inv}  ${task_state}
+
+    # Description of argument(s):
+    # task_inv      Initiated task inventory dict information.
+    # task_state    Expected task state, user reference from data/task_state.json.
+
+    # task_inv
+    # TaskIdURI     /redfish/v1/TaskService/Tasks/0
+    # TaskState     Starting
+    # TaskStatus    OK
+
+    ${task_payload}=  Redfish.Get Properties   ${task_inv['TaskIdURI']}
+
+    ${temp_task_inv}=  Create Dictionary
+    Set To Dictionary  ${temp_task_inv}  TaskState  ${task_payload['TaskState']}
+    Set To Dictionary  ${temp_task_inv}  TaskStatus  ${task_payload['TaskStatus']}
+
+    Rprint Vars  temp_task_inv
+
+    Should Be Equal As Strings  ${task_state['TaskState']}  ${task_payload['TaskState']}
+    Should Be Equal As Strings  ${task_state['TaskStatus']}  ${task_payload['TaskStatus']}
+
diff --git a/lib/utils.robot b/lib/utils.robot
index 1032514..a306dc5 100755
--- a/lib/utils.robot
+++ b/lib/utils.robot
@@ -832,6 +832,35 @@
     [Return]  ${post_code_update_actions}
 
 
+Get Task State From File
+    [Documentation]  Get task states from pre-define data/task_state.json file.
+
+    # Example:  Task state JSON format.
+    #
+    # {
+    #   "TaskRunning": {
+    #           "TaskState": "Running",
+    #           "TaskStatus": "OK"
+    #   },
+    #   "TaskCompleted": {
+    #           "TaskState": "Completed",
+    #           "TaskStatus": "OK"
+    #   },
+    #   "TaskException": {
+    #           "TaskState": "Exception",
+    #           "TaskStatus": "Warning"
+    #   }
+    # }
+
+    # Python module: get_code_base_dir_path()
+    ${code_base_dir_path}=  Get Code Base Dir Path
+    ${task_state}=  Evaluate
+    ...  json.load(open('${code_base_dir_path}data/task_state.json'))  modules=json
+    Rprint Vars  task_state
+
+    [Return]  ${task_state}
+
+
 Redfish Set Boot Default
     [Documentation]  Set and Verify Boot source override
     [Arguments]      ${override_enabled}  ${override_target}  ${override_mode}=UEFI
