diff --git a/src/test/cord-api/Tests/XosScaleValidations/xos-service-migrations.robot b/src/test/cord-api/Tests/XosScaleValidations/xos-service-migrations.robot
index d5c89bd..227703b 100644
--- a/src/test/cord-api/Tests/XosScaleValidations/xos-service-migrations.robot
+++ b/src/test/cord-api/Tests/XosScaleValidations/xos-service-migrations.robot
@@ -1,3 +1,22 @@
+# XOS Migration Tests
+#
+# This test progressively migrates a service through several versions.
+#
+# migration1 - initial version of simpleexampleservice, with 0001 script checked in
+# migration2 - add a "new_field" to the SimpleExampleService model:
+#    required string new_field = 3 [
+#        help_text = "New field to test data migration",
+#        db_index = False,
+#        default = "new_stuff"];
+# migration3 - rename "new_field" to "renamed_new_field":
+#    required string renamed_new_field = 3 [
+#        help_text = "New field to test data migration",
+#        db_index = False,
+#        default = "renamed_new_stuff"];
+#     NOTE: Migration3 generated by xos-migrate has to be manually changed from remove+add to a rename
+# migrations4 - delete "new_field"
+
+
 *** Settings ***
 Documentation     Test migration of a Service in the core
 Library           RequestsLibrary
@@ -18,6 +37,8 @@
 ${repository}    xosproject/simpleexampleservice-synchronizer
 ${migration1}    migration-test1
 ${migration2}    migration-test2
+${migration3}    migration-test3
+${migration4}    migration-test4
 ${helm_chart}    ~/cord/helm-charts/xos-services/simpleexampleservice
 ${cleanup}       ${true}
 
@@ -59,11 +80,13 @@
     \    List Should Contain Value    ${keys}    ${field}
     : FOR    ${field}    IN    @{model_B_only_fields}
     \    List Should Not Contain Value    ${keys}    ${field}
+    : FOR    ${field}    IN    @{model_C_only_fields}
+    \    List Should Not Contain Value    ${keys}    ${field}
     Should Be Equal As Strings   ${jsondata['name']}    ${model_name}
     Should Be Equal As Strings   ${jsondata['service_message']}    initial
 
-Upgrade Service
-    [Documentation]    Upgrade the version of the service to version B and wait for completion
+Upgrade Service To Version B
+    [Documentation]    Upgrade the version of the service to version B (adds a new field) and wait for completion
     [Tags]    test5
     ${rc}=    Run And Return RC    helm upgrade --set image.repository=${repository} --set image.tag=${migration2} --recreate-pods simpleexampleservice ${helm_chart}
     Should Be Equal As Integers    ${rc}    0
@@ -81,6 +104,49 @@
     Should Be Equal As Strings   ${jsondata['service_message']}    initial
     Should Be Equal As Strings   ${jsondata['new_field']}    new_stuff
 
+Upgrade Service To Version C
+    [Documentation]    Upgrade the version of the service to version C (renames a field) and wait for completion
+    [Tags]    test7
+    ${rc}=    Run And Return RC    helm upgrade --set image.repository=${repository} --set image.tag=${migration3} --recreate-pods simpleexampleservice ${helm_chart}
+    Should Be Equal As Integers    ${rc}    0
+    Wait Until Keyword Succeeds    ${timeout}    5s    Validate Service Running
+
+Validate Service Version C
+    [Documentation]    Validate fields from model in upgraded version B (2.0.0)
+    [Tags]    test8
+    ${resp} =   CORD Get    /xosapi/v1/simpleexampleservice/simpleexampleservices/${model_id}
+    ${jsondata} =    To Json    ${resp.content}
+    ${keys}=    Get Dictionary Keys    ${jsondata}
+    : FOR    ${field}    IN    @{model_C_fields}
+    \    List Should Contain Value    ${keys}    ${field}
+    : FOR    ${field}    IN    @{model_B_only_fields}
+    \    List Should Not Contain Value    ${keys}    ${field}
+    Should Be Equal As Strings   ${jsondata['name']}    ${model_name}
+    Should Be Equal As Strings   ${jsondata['service_message']}    initial
+    Should Be Equal As Strings   ${jsondata['renamed_new_field']}    new_stuff
+
+Upgrade Service To Version D
+    [Documentation]    Upgrade the version of the service to version D (deletes a field) and wait for completion
+    [Tags]    test9
+    ${rc}=    Run And Return RC    helm upgrade --set image.repository=${repository} --set image.tag=${migration4} --recreate-pods simpleexampleservice ${helm_chart}
+    Should Be Equal As Integers    ${rc}    0
+    Wait Until Keyword Succeeds    ${timeout}    5s    Validate Service Running
+
+Validate Service Version D
+    [Documentation]    Validate fields from model in version D
+    [Tags]    test10
+    ${resp} =   CORD Get    /xosapi/v1/simpleexampleservice/simpleexampleservices/${model_id}
+    ${jsondata} =    To Json    ${resp.content}
+    ${keys}=    Get Dictionary Keys    ${jsondata}
+    : FOR    ${field}    IN    @{model_D_fields}
+    \    List Should Contain Value    ${keys}    ${field}
+    : FOR    ${field}    IN    @{model_B_only_fields}
+    \    List Should Not Contain Value    ${keys}    ${field}
+    : FOR    ${field}    IN    @{model_C_only_fields}
+    \    List Should Not Contain Value    ${keys}    ${field}
+    Should Be Equal As Strings   ${jsondata['name']}    ${model_name}
+    Should Be Equal As Strings   ${jsondata['service_message']}    initial
+
 *** Keywords ***
 Setup
     ${auth} =    Create List    ${XOS_USER}    ${XOS_PASSWD}
@@ -89,6 +155,9 @@
     @{model_A_fields}=    Create List    service_message    service_secret
     @{model_B_fields}=    Create List    service_message    service_secret    new_field
     @{model_B_only_fields}=    Create List    new_field
+    @{model_C_fields}=    Create List    service_message    service_secret    renamed_new_field
+    @{model_C_only_fields}=    Create List    renamed_new_field
+    @{model_D_fields}=    Create List    service_message    service_secret
 
     Set Suite Variable    @{model_A_fields}
 
@@ -96,6 +165,12 @@
 
     Set Suite Variable    @{model_B_only_fields}
 
+    Set Suite Variable    @{model_C_fields}
+
+    Set Suite Variable    @{model_C_only_fields}
+
+    Set Suite Variable    @{model_D_fields}
+
 Teardown
     [Documentation]    Delete all https sessions
     Run Keyword If    ${cleanup} == ${true}    Ensure Service Deleted
