diff --git a/tests/scripts/mbedtls_test.py b/tests/scripts/mbedtls_test.py
index 52fd0a9..c3b1b7a 100755
--- a/tests/scripts/mbedtls_test.py
+++ b/tests/scripts/mbedtls_test.py
@@ -1,4 +1,4 @@
-# Greentea host test script for on-target tests.
+# Greentea host test script for Mbed TLS on-target test suite testing.
 #
 # Copyright (C) 2018, ARM Limited, All Rights Reserved
 # SPDX-License-Identifier: Apache-2.0
@@ -19,12 +19,19 @@
 
 
 """
-Greentea host test script for on-target tests.
+Mbed TLS on-target test suite tests are implemented as mbed-os greentea
+tests. Greentea tests are implemented in two parts: target test and
+host test. Target test is a C application that is built for the
+target platform and executes on the target. Host test is a Python
+class derived from mbed_host_tests.BaseHostTest. Target communicates
+with the host over serial for the test data.
 
-Host test script for testing mbed TLS test suites on target. Implements
-BaseHostTest to handle key,value pairs (events) coming from mbed TLS
-tests. Reads data file corresponding to the executing binary and dispatches
-test cases.
+Python tool mbedgt (greentea) is responsible for flashing the test
+binary on to the target and dynamically loading the host test.
+
+This script contains the host test for handling target test's
+requests for test vectors. It also reports the test results
+in format understood by Greentea.
 """
 
 
@@ -41,7 +48,8 @@
 
 class TestDataParser(object):
     """
-    parser for mbedtls test data files.
+    Parses test name, dependencies, test function name and test parameters
+    from the data file.
     """
 
     def __init__(self):
@@ -127,19 +135,30 @@
 
 class MbedTlsTest(BaseHostTest):
     """
-    Event handler for mbedtls unit tests. This script is loaded at run time
-    by htrun while executing mbedtls unit tests.
+    Host test for mbedtls unit tests. This script is loaded at
+    run time by Greentea for executing mbedtls test suites. Each
+    communication from the target is received in this object as
+    an event, which is then handled by the event handler method
+    decorated by the associated event. Ex: @event_callback('GO').
+
+    Target test sends requests for dispatching next test. It reads
+    tests from the intermediate data file and sends test function
+    identifier, dependency identifiers, expression identifiers and
+    the test data in binary form. Target test checks dependecnies
+    , evaluate integer constant expressions and dispatches the test
+    function with received test parameters.
+
     """
-    # From suites/helpers.function
+    # status/error codes from suites/helpers.function
     DEPENDENCY_SUPPORTED = 0
     KEY_VALUE_MAPPING_FOUND = DEPENDENCY_SUPPORTED
     DISPATCH_TEST_SUCCESS = DEPENDENCY_SUPPORTED
 
-    KEY_VALUE_MAPPING_NOT_FOUND = -1
-    DEPENDENCY_NOT_SUPPORTED = -2
-    DISPATCH_TEST_FN_NOT_FOUND = -3
-    DISPATCH_INVALID_TEST_DATA = -4
-    DISPATCH_UNSUPPORTED_SUITE = -5
+    KEY_VALUE_MAPPING_NOT_FOUND = -1    # Expression Id not found.
+    DEPENDENCY_NOT_SUPPORTED = -2       # Dependency not supported.
+    DISPATCH_TEST_FN_NOT_FOUND = -3     # Test function not found.
+    DISPATCH_INVALID_TEST_DATA = -4     # Invalid parameter type.
+    DISPATCH_UNSUPPORTED_SUITE = -5     # Test suite not supported/enabled.
 
     def __init__(self):
         """
@@ -159,13 +178,15 @@
 
     def setup(self):
         """
-        Setup hook implementation. Reads test suite data file and parses out tests.
+        Setup hook implementation. Reads test suite data file and parses out
+        tests.
         """
         binary_path = self.get_config_item('image_path')
         script_dir = os.path.split(os.path.abspath(__file__))[0]
         suite_name = os.path.splitext(os.path.basename(binary_path))[0]
         data_file = ".".join((suite_name, 'data'))
-        data_file = os.path.join(script_dir, '..', 'mbedtls', suite_name, data_file)
+        data_file = os.path.join(script_dir, '..', 'mbedtls',
+                                 suite_name, data_file)
         if os.path.exists(data_file):
             self.log("Running tests from %s" % data_file)
             parser = TestDataParser()
@@ -262,7 +283,7 @@
 
     def run_next_test(self):
         """
-        Send next test function to the target.
+        Fetch next test information and execute the test.
 
         """
         self.test_index += 1
@@ -275,7 +296,7 @@
 
     def run_test(self, name, function_id, deps, args):
         """
-        Runs the test.
+        Execute the test on target by sending next test information.
 
         :param name: Test name
         :param function_id: function identifier
@@ -304,7 +325,7 @@
     @event_callback('GO')
     def on_go(self, key, value, timestamp):
         """
-        Called on key "GO". Kicks off test execution.
+        Sent by the target to start first test.
 
         :param key: Event key
         :param value: Value. ignored
@@ -316,7 +337,8 @@
     @event_callback("R")
     def on_result(self, key, value, timestamp):
         """
-        Handle result. Prints test start, finish prints required by Greentea to detect test execution.
+        Handle result. Prints test start, finish required by Greentea
+        to detect test execution.
 
         :param key: Event key
         :param value: Value. ignored
