diff --git a/README.md b/README.md
index 0bb2493..f7245e6 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
 <!--
-Copyright 2020 ETSI
+Copyright ETSI
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -21,27 +21,25 @@
 
 ## Prerequisites
 
-* **Robot Framework**
-* **Packages**: ssh ping yq git
-* **Python3 packages**: haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary robotframework-sshlibrary
-* Clone **osm-packages** from gitlab
-* Environment config file for your infrastructure [envfile.rc]
+- **Robot Framework**
+- **Packages**: ssh ping yq git
+- **Python3 packages**: haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary robotframework-sshlibrary
+- Clone **osm-packages** from gitlab
+- Environment config file for your infrastructure `envfile.rc`
 
 ## Installing
 
 This bash script can be used to setup your environment to execute the tests.
 
 ```bash
-PACKAGES_FOLDER=osm-packages
-add-apt-repository -y ppa:rmescandon/yq && apt update && apt install yq git iputils-ping ssh -y
-pip install haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary \
-    robotframework-sshlibrary
-snap install charm
+python3 -m pip install -r requirements.txt
+python3 -m pip install -r requirements-dev.txt
 # Download community packages
+PACKAGES_FOLDER=osm-packages
 git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git ${PACKAGES_FOLDER}
 ```
 
-envfile.rc
+Configure a file `envfile.rc` copying from `envconfig-local.rc` and set the required variables
 
 ```bash
 # VIM Setup
@@ -80,11 +78,22 @@
 ROBOT_REPORT_FOLDER=results
 ```
 
-## Deployment
+## Running the tests
+
+### From the host machine
+
+If you have installed all the dependecnies, the way of executing the tests is via the following command:
+
+```bash
+source envfile.rc
+robot -d reports -i <testing_tags> testsuite/
+```
+
+### From docker container
 
 It is possible to run the tests directly from the repository or using a docker container with the tests
 
-1. Docker container creation:
+Create the docker container:
 
 ```bash
 docker build -f docker/Dockerfile -t osmtests .
@@ -92,17 +101,19 @@
 
 Options:
 
-* --env-file: It is the environmental file where is described the OSM target and VIM
-* -o <osmclient_version> [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest
-* -p <package_branch> [OPTIONAL]: OSM packages repository branch. Default: master
-* -t <testing_tags> [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanity
+- `--env-file`: It is the environmental file where is described the OSM target and VIM
+- `-o <osmclient_version>` [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest
+- `-p <package_branch>` [OPTIONAL]: OSM packages repository branch. Default: master
+- `-t <testing_tags>` [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanity
 
 Volumes:
 
-* <path_to_reports> [OPTIONAL]: It is the absolute path to reports location in the host
-* <path_to_clouds.yaml> [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host
-* <path_to_sdncs.yaml> [OPTIONAL]: It is the absolute path to the sdncs.yaml file in the host
-* <path_to_kubeconfig> [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters
+- <path_to_reports> [OPTIONAL]: It is the absolute path to reports location in the host
+- <path_to_clouds.yaml> [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host
+- <path_to_sdncs.yaml> [OPTIONAL]: It is the absolute path to the sdncs.yaml file in the host
+- <path_to_kubeconfig> [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters
+
+Then, run the tests:
 
 ```bash
 docker run --rm=true -t osmtests --env-file <env_file> \
@@ -115,13 +126,32 @@
        -t <testing_tags>
 ```
 
-1. Running the tests manually:
+### From an environment identical to OSM CICD
 
-The way of executing the tests is via the following command:
+````bash
+git clone https://osm.etsi.org/gerrit/osm/devops
+git clone https://osm.etsi.org/gerrit/osm/IM
+git clone https://osm.etsi.org/gerrit/osm/osmclient
+git clone https://osm.etsi.org/gerrit/osm/tests
+# run HTTP server to server artifacts
+devops/tools/local-build.sh --install-qhttpd
+# generate debian packages locally that will be served by the HTTP server
+devops/tools/local-build.sh --module IM,osmclient,tests stage-2
+# create docker image and store it locally as opensourcemano/tests:devel
+devops/tools/local-build.sh --module tests
+```
+
+Then, run the tests:
 
 ```bash
-source envfile.rc
-robot -d reports -i <testing_tags> testsuite/
+docker run --rm=true -t osmtests --env-file <env_file> \
+       -v <path_to_reports>:/reports osmtests \
+       -v <path_to_clouds.yaml>:/robot-systest/clouds.yaml \
+       -v <path_to_sdncs.yaml>:/robot-systest/sdncs.yaml \
+       -v <path_to_kubeconfig>:/root/.kube/config \
+       -o <osmclient_version> \
+       -p <package_branch> \
+       -t <testing_tags>
 ```
 
 ## Test tags
@@ -139,13 +169,14 @@
 - A tag per testsuite using its mnemonic (e.g. `basic_01`)
 - Cluster tag for each of the statistically similar tests:
   - `cluster_main`: `basic_01`, `basic_05`, `basic_08`, `basic_09`, `basic_15`,
-    `basic_16`, basic_17`, `hackfest_basic`, `hackfest_multivdu`,
+    `basic_16`, `basic_17`, `hackfest_basic`, `hackfest_multivdu`,
     `hackfest_cloudinit`, `quotas_01`
   - `cluster_ee_config`: `basic_06`, `basic_07`, `basic_11`, `basic_12`,
     `basic_13`, `basic_14`, `k8s_05`, `k8s_06`
   - `cluster_relations`: `basic_11`, `basic_13`, `basic_14`
   - `cluster_epa`: `epa_01`, `epa_02`, `epa_03`, `epa_04`, `epa_05`
-  - `cluster_k8s`: `k8s_01`, `k8s_02`, `k8s_03`, `k8s_04`, `k8s_07`, `k8s_08`, `sa_08`
+  - `cluster_k8s`: `k8s_01`, `k8s_02`, `k8s_03`, `k8s_04`, `k8s_05`, `k8s06`,
+    `k8s_07`, `k8s_08`, `k8s_09`, `k8s_10`, `k8s_11`, `sa_08`
   - `cluster_k8s_charms`: `k8s_05`, `k8s_06`
   - `cluster_sa`: `sa_01`, `sa_02`, `sa_07`
   - `cluster_slices`: `slice_01`, `slice_02`
@@ -153,7 +184,7 @@
 - regression: for all testsuites that should pass in the current stable branch
 - sanity: for all testsuites that should be passed by each commit in the
   stage3 to be successfully verified by Jenkins, currently `basic_07`,
-  `basic_11`, `k8s_03`, `k8s_04`, `sa_02`
+  `basic_11`, `k8s_03`, `k8s_04`, `sa_02`, `hackfest_basic`, `hackfest_cloudinit`
 
 In addition, the tag "cleanup" exists in those tests that perform
 any deletion. In that way, it can be invoked to retry the deletion if
@@ -189,4 +220,3 @@
 
 This project is licensed under the Apache2 License - see the [LICENSE.md](LICENSE) file for details
 
-## Acknowledgments
