diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function
index 3f810d2..69cd4e5 100644
--- a/tests/suites/test_suite_ecp.function
+++ b/tests/suites/test_suite_ecp.function
@@ -1611,7 +1611,8 @@
 /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */
 void ecp_mod_add_sub(char *input_A, char *input_B, int id, int ctype)
 {
-    size_t p_limbs;
+    size_t p_A_limbs;
+    size_t p_B_limbs;
     size_t bytes;
     mbedtls_mpi_mod_modulus m;
     mbedtls_mpi_mod_residue rA;
@@ -1623,25 +1624,28 @@
 
     mbedtls_mpi_mod_modulus_init(&m);
 
-    TEST_EQUAL(mbedtls_test_read_mpi_core(&p_A, &p_limbs, input_A), 0);
-    TEST_EQUAL(mbedtls_test_read_mpi_core(&p_B, &p_limbs, input_B), 0);
+    TEST_EQUAL(mbedtls_test_read_mpi_core(&p_A, &p_A_limbs, input_A), 0);
+    TEST_EQUAL(mbedtls_test_read_mpi_core(&p_B, &p_B_limbs, input_B), 0);
 
     TEST_ASSERT(mbedtls_ecp_modulus_setup(&m, id, ctype) == 0);
 
-    /* Test for limb sizes */
-    TEST_EQUAL(m.limbs, p_limbs);
-    bytes = p_limbs * sizeof(mbedtls_mpi_uint);
+    /* Test for limb sizes for two input value and modulus */
+    TEST_EQUAL(p_A_limbs, p_B_limbs);
+    TEST_EQUAL(m.limbs, p_A_limbs);
+    bytes = p_A_limbs * ciL;
 
-    ASSERT_ALLOC(p_S, p_limbs);
+    ASSERT_ALLOC(p_S, p_A_limbs);
 
-    TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rA, &m, p_A, p_limbs), 0);
-    TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rB, &m, p_B, p_limbs), 0);
-    TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rS, &m, p_S, p_limbs), 0);
+    TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rA, &m, p_A, p_A_limbs), 0);
+    TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rB, &m, p_B, p_B_limbs), 0);
+    TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rS, &m, p_S, p_A_limbs), 0);
 
+    /* Firstly add A and B to get the summary S, then subtract B,
+     * the difference should be equal to A*/
     TEST_EQUAL(0, mbedtls_mpi_mod_add(&rS, &rA, &rB, &m));
     TEST_EQUAL(0, mbedtls_mpi_mod_sub(&rS, &rS, &rB, &m));
 
-    /* Compare output byte-by-byte */
+    /* Compare difference with rA byte-by-byte */
     ASSERT_COMPARE(rA.p, bytes, rS.p, bytes);
 
 exit:
