diff --git a/robot-systest/lib/ns_lib.robot b/robot-systest/lib/ns_lib.robot
index 623d43e..a7c6cb9 100644
--- a/robot-systest/lib/ns_lib.robot
+++ b/robot-systest/lib/ns_lib.robot
@@ -54,6 +54,15 @@
     [Return]  ${stdout}
 
 
+Update Network Service
+    [Arguments]   ${ns_id}   ${update_type}   ${ns_update_config}   ${ns_update_timeout}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-update ${ns_id} --updatetype ${update_type} --config ${ns_update_config} --timeout ${ns_update_timeout} --wait
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
+
+
 Get Vnf Management Ip Address
     [Arguments]   ${ns_id}   ${vnf_member_index}
 
diff --git a/robot-systest/lib/ssh_lib.robot b/robot-systest/lib/ssh_lib.robot
index 23e5ae4..216cd59 100644
--- a/robot-systest/lib/ssh_lib.robot
+++ b/robot-systest/lib/ssh_lib.robot
@@ -30,6 +30,16 @@
     Close All Connections
     Should Be Equal As Integers   ${rc}   0
 
+Check If Remote Folder Exists
+    [Arguments]   ${host}   ${username}   ${password}   ${privatekey}   ${folder}
+
+    Open Connection   ${host}
+    Run Keyword If   '${password}'!='${EMPTY}'  Login  ${username}  ${password}
+    ...   ELSE   Login With Public Key  ${username}  ${privatekey}
+    ${output}=   Execute Command   ls -d ${folder}
+    Close All Connections
+    Should Be Equal As Strings   ${output}   ${folder}
+
 Get Remote File Content
     [Arguments]  ${host}  ${username}  ${password}  ${privatekey}   ${file}
 
diff --git a/robot-systest/lib/vnfd_lib.robot b/robot-systest/lib/vnfd_lib.robot
index f1cc95e..2d50170 100644
--- a/robot-systest/lib/vnfd_lib.robot
+++ b/robot-systest/lib/vnfd_lib.robot
@@ -71,6 +71,24 @@
     [Return]  ${id}
 
 
+Update VNFD
+    [Documentation]   Onboards ("Updates") a NF Package into OSM.
+    ...               - Parameters:
+    ...                 - vnfd_pkg: Name (and location) of the NF Package
+    ...                 - vnfd_name: Name of the existing NF Package
+
+    [Arguments]   ${vnfd_pkg}   ${vnfd_name}
+
+    # Proceedes with the onboarding with the appropriate arguments
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnfpkg-update --content ${vnfd_pkg} ${vnfd_name}
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    ${lines}=  Get Line Count  ${stdout}
+    ${last}=  Evaluate  ${lines} - 1
+    ${id}=  Get Line  ${stdout}  ${last}
+    [Return]  ${id}
+
+
 Create VNFD Overriding Fields
     [Documentation]   Onboards ("creates") a NF Package into OSM.
     ...               - Parameters:
diff --git a/robot-systest/testsuite/basic_25-update_charm_in_running_vnf_instance.robot b/robot-systest/testsuite/basic_25-update_charm_in_running_vnf_instance.robot
new file mode 100644
index 0000000..9a744ee
--- /dev/null
+++ b/robot-systest/testsuite/basic_25-update_charm_in_running_vnf_instance.robot
@@ -0,0 +1,176 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+*** Settings ***
+Documentation     [BASIC-25] Update Charms in Running VNF Instance.
+
+Library   OperatingSystem
+Library   SSHLibrary
+
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot
+
+Force Tags   basic_25   cluster_ee_config   daily   regression
+
+Suite Teardown   Run Keyword And Ignore Error   Suite Cleanup
+
+
+*** Variables ***
+# NS and VNF descriptor package folder and ids
+${vnfd_pkg}   charm-packages/ha_proxy_charm_vnf
+${updated_vnfd_pkg}   charm-packages/updated_vnfds/ha_proxy_charm_vnf
+${vnfd_name}   ha_proxy_charm-vnf
+${nsd_pkg}   charm-packages/ha_proxy_charm_ns
+${nsd_name}   ha_proxy_charm-ns
+
+# NS instance name and configuration
+${ns_name}   basic_25_charm_update_test
+${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
+
+# SSH keys and username to be used
+${publickey}   %{HOME}/.ssh/id_rsa.pub
+${privatekey}   %{HOME}/.ssh/id_rsa
+${username}   ubuntu
+${password}   ${EMPTY}
+
+${action_name}   touch
+${new_action_name}   mkdir
+${vnf_member_index}   vnf1
+${day_1_file_name}   /home/ubuntu/first-touch
+${day_2_file_name}   /home/ubuntu/mytouch1
+${day_2_folder_name}   /home/ubuntu/myfolder1
+${ns_timeout}   15min
+
+# NS update operation configuration
+${update_type}   CHANGE_VNFPKG
+${ns_update_timeout}   500
+
+
+*** Test Cases ***
+Create Charm VNF Descriptor
+
+    ${id}=  Create VNFD  '%{PACKAGES_FOLDER}/${vnfd_pkg}'
+    Set Suite Variable  ${vnfd_id}  ${id}
+
+
+Create Charm NS Descriptor
+
+    Create NSD  '%{PACKAGES_FOLDER}/${nsd_pkg}'
+
+
+Instantiate Charm Network Service
+
+    ${id}=  Create Network Service  ${nsd_name}  %{VIM_TARGET}  ${ns_name}  ${ns_config}  ${publickey}  ${ns_timeout}
+    Set Suite Variable  ${ns_id}  ${id}
+
+
+Set NS Update Config
+
+    Variable Should Exist   ${ns_id}   msg=NS is not available
+    ${id}   Get Vnf Id   ${ns_id}   ${vnf_member_index}
+    log  ${id}
+    Set Suite Variable  ${vnf_id}  ${id}
+    Set Suite Variable  ${ns_update_config}  '{changeVnfPackageData: [{vnfInstanceId: "${vnf_id}", vnfdId: "${vnfd_id}"}]}'
+
+
+Get Management Ip Address
+
+    ${ip_addr}  Get Vnf Management Ip Address  ${ns_id}  ${vnf_member_index}
+    log  ${ip_addr}
+    Set Suite Variable  ${vnf_ip_addr}  ${ip_addr}
+
+
+Test SSH Access
+
+    Variable Should Exist  ${vnf_ip_addr}  msg=IP address of the management VNF '${vnf_member_index}' is not available
+    Sleep  30s  Waiting ssh daemon to be up
+    Test SSH Connection  ${vnf_ip_addr}  ${username}  ${password}  ${privatekey}
+
+
+Check Remote Files Created Via Day 1 Operation
+    [Documentation]     The Charm VNF has a Day 1 operation that creates a file named ${day_1_file_name}.
+    ...                 This test checks whether that files have been created or not.
+
+    Check If remote File Exists  ${vnf_ip_addr}  ${username}  ${password}  ${privatekey}  ${day_1_file_name}
+
+
+Execute Day 2 Operation
+    [Documentation]     Performs one Day 2 operation on the VNF that creates a new file.
+
+    Variable Should Exist  ${ns_id}  msg=Network service instance is not available
+    ${ns_op_id_1}=  Execute NS Action  ${ns_name}  ${action_name}  ${vnf_member_index}  filename=${day_2_file_name}
+
+
+Check Remote File Created Via Day 2 Operation
+    [Documentation]     Check whether the file created in the previous test via Day 2 operations exist or not.
+
+    Check If remote File Exists  ${vnf_ip_addr}  ${username}  ${password}  ${privatekey}  ${day_2_file_name}
+
+
+Update VNFD Package
+    [Documentation]     Updates the VNFD by using new VNFD package which includes the Charm
+    ...                 which has new day2 operation.
+
+    Update VNFD  '%{PACKAGES_FOLDER}/${updated_vnfd_pkg}'  ${vnfd_name}
+
+
+Update Running VNF Instance
+    [Documentation]     Updates the running VNF instance by using new VNFD package.
+    ...                 As the VNFD has an updated charm, this operation will trigger the upgrade of existing charm
+    ...                 for the specific VNF.
+
+    Update Network Service  ${ns_id}  ${update_type}  ${ns_update_config}  ${ns_update_timeout}
+
+
+Execute Day 2 Operation on Upgraded Charm
+    [Documentation]     Performs one Day 2 operation on the updated VNF that creates a new folder.
+
+    Variable Should Exist  ${ns_id}  msg=Network service instance is not available
+    ${ns_op_id_2}=  Execute NS Action  ${ns_name}  ${new_action_name}  ${vnf_member_index}  foldername=${day_2_folder_name}
+
+
+Check Remote Folder Created Via Day 2 Operation
+    [Documentation]     Check whether the folder created in the previous test via Day 2 operations exist or not.
+
+    Check If remote Folder Exists  ${vnf_ip_addr}  ${username}  ${password}  ${privatekey}  ${day_2_folder_name}
+
+
+Delete NS Instance
+    [Tags]   cleanup
+
+    Delete NS  ${ns_name}
+
+
+Delete NS Descriptor
+    [Tags]   cleanup
+
+    Delete NSD  ${nsd_name}
+
+
+Delete VNF Descriptor
+    [Tags]   cleanup
+
+    Delete VNFD  ${vnfd_name}
+
+
+*** Keywords ***
+Suite Cleanup
+    [Documentation]  Test Suite Cleanup: Deleting descriptors and NS instance
+
+    Run Keyword If Any Tests Failed  Delete NS  ${ns_name}
+
+    Run Keyword If Any Tests Failed  Delete NSD  ${nsd_name}
+
+    Run Keyword If Any Tests Failed  Delete VNFD  ${vnfd_name}
+
