diff --git a/tests/test_fw_version.robot b/tests/test_fw_version.robot
index d58c363..bbfcccc 100755
--- a/tests/test_fw_version.robot
+++ b/tests/test_fw_version.robot
@@ -5,57 +5,72 @@
 Resource            ../lib/rest_client.robot
 Resource            ../lib/openbmc_ffdc.robot
 Resource            ../lib/connection_client.robot
+Resource            ../lib/code_update_utils.robot
 Test Teardown       FFDC On Test Case Fail
 
 
-*** Variables ***
-
-
 *** Test Cases ***
 
-Software Version Management
-    [Documentation]  Verify version and activation status.
-    [Tags]  Software_Version_Management
-    ${managed_list}=  Get Software Version List
-    :FOR  ${element}  IN  @{managed_list}
-    \  Verify Software Properties  ${element}
+BMC Software Version
+    [Documentation]  Verify BMC version and activation status.
+    [Tags]  BMC_Software_Version
+    [Template]  Verify Software Version
+
+    # Software Version Purpose
+    ${VERSION_PURPOSE_BMC}
+
+Host Software Version
+    [Documentation]  Verify host version and activation status.
+    [Tags]  Host_Software_Version
+    [Template]  Verify Software Version
+
+    # Software Version Purpose
+    ${VERSION_PURPOSE_HOST}
 
 
 *** Keywords ***
 
-Get Software Version List
-    [Documentation]  Get the software version endpoints list.
-    # Example of JSON body data returned
-    # "data": [
-    #     "/xyz/openbmc_project/software/53c70e7b"
-    # ],
+Verify Software Version
+    [Documentation]  Verify version and activation status.
+    [Arguments]  ${software_purpose}
 
-    ${resp}=  OpenBMC Get Request  ${SOFTWARE_VERSION_URI}
-    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
-    ${jsondata}=  To JSON  ${resp.content}
-    [Return]  ${jsondata["data"]}
+    # Description of argument(s):
+    # software_purpose    BMC or host software purpose.
+
+    # Example:
+    # /xyz/openbmc_project/software/list
+    # [
+    #   "/xyz/openbmc_project/software/2f974579",
+    #   "/xyz/openbmc_project/software/136cf504"
+    # ]
+    ${obj_list}=  Get Software Objects  ${software_purpose}
+    : FOR  ${index}  IN  @{obj_list}
+    \  ${resp}=  Get Host Software Property  ${index}
+    \  Verify Software Properties  ${resp}  ${software_purpose}
 
 
 Verify Software Properties
-    [Documentation]  Verify the software endpoints properties.
-    [Arguments]  ${endpoint}
-    # Description of arguments:
-    # endpoint  Managed element by software version manager.
-    #           Endpoint URI would be as shown below
-    #           https://xx.xx.xx.xx/xyz/openbmc_project/software/53c70e7b
-    ${resp}=  OpenBMC Get Request  ${endpoint}
-    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
-    ${jsondata}=  To JSON  ${resp.content}
+    [Documentation]  Verify the software object properties.
+    [Arguments]  ${software_property}  ${software_purpose}
 
-    Check Activation Status  ${jsondata["data"]["Activation"]}
-    Check BMC Version  ${jsondata["data"]["Version"]}
+    # Description of argument(s):
+    # software_property   JSON response data.
+    # software_purpose    BMC or host software purpose
+    #        (e.g. "xyz.openbmc_project.Software.Version.VersionPurpose.BMC"
+    #              "xyz.openbmc_project.Software.Version.VersionPurpose.Host").
+
+    Check Activation Status  ${software_property["Activation"]}
+    Run Keyword If  '${software_purpose}' == '${VERSION_PURPOSE_BMC}'
+    ...  Check BMC Version  ${software_property["Version"]}
 
 
 Check BMC Version
     [Documentation]  Get BMC version from /etc/os-release and compare.
     [Arguments]  ${version}
-    # Description of arguments:
+
+    # Description of argument(s):
     # version  Software version (e.g. "v1.99.2-107-g2be34d2-dirty")
+
     Open Connection And Log In
     ${cmd}=  Set Variable  grep ^VERSION_ID= /etc/os-release | cut -f 2 -d '='
     ${output}=  Execute Command On BMC  ${cmd}
@@ -65,7 +80,8 @@
 Check Activation Status
     [Documentation]  Check if software state is "Active".
     [Arguments]  ${status}
-    # Description of arguments:
+
+    # Description of argument(s):
     # status  Activation status
     # (e.g. "xyz.openbmc_project.Software.Activation.Activations.Active")
     Should Be Equal As Strings  ${ACTIVE}  ${status}
