diff --git a/test/Services/MemoryManagementService.cpp b/test/Services/MemoryManagementService.cpp
index 9e5a7255234423b588f3c37865c86aa3510466c3..ff4d6461c4b19a9b15caa077a6f284100e6b9cb2 100644
--- a/test/Services/MemoryManagementService.cpp
+++ b/test/Services/MemoryManagementService.cpp
@@ -2,6 +2,7 @@
 #include <Services/MemoryManagementService.hpp>
 #include <Message.hpp>
 #include "ServiceTests.hpp"
+#include "Helpers/CRCHelper.hpp"
 
 TEST_CASE("TM[6,2]", "[service][st06]") {
 	// Required test variables
@@ -18,8 +19,10 @@ TEST_CASE("TM[6,2]", "[service][st06]") {
 	receivedPacket.appendUint16(2); // Iteration count
 	receivedPacket.appendUint64(reinterpret_cast<uint64_t >(pStr)); // Start address
 	receivedPacket.appendOctetString(2, data);
+	receivedPacket.appendBits(16, CRCHelper::calculateCRC(data, 2)); // Append CRC
 	receivedPacket.appendUint64(reinterpret_cast<uint64_t >(pStr + 2)); // Start address
-	receivedPacket.appendOctetString(1, data);
+	receivedPacket.appendOctetString(1, data); // Append CRC
+	receivedPacket.appendBits(16, CRCHelper::calculateCRC(data, 1));
 	memMangService.rawDataMemorySubservice.loadRawData(receivedPacket);
 
 	CHECK(pStr[0] == 'h');
@@ -33,43 +36,46 @@ TEST_CASE("TM[6,5]", "[service][st06]") {
 	uint8_t testString_3[2] = {5, 8};
 
 	uint8_t checkString[ECSS_MAX_STRING_SIZE];
-	uint16_t readSize = 0;
+	uint16_t readSize = 0, checksum = 0;
 
 	MemoryManagementService memMangService;
 	Message receivedPacket = Message(6, 5, Message::TC, 1);
 	receivedPacket.appendEnum8(MemoryManagementService::MemoryID::EXTERNAL); // Memory ID
 	receivedPacket.appendUint16(3); // Iteration count (Equal to 3 test strings)
 	receivedPacket.appendUint64(reinterpret_cast<uint64_t >(testString_1)); // Start address
-	receivedPacket.appendUint16(sizeof(testString_1)/ sizeof(testString_1[0])); // Data read length
+	receivedPacket.appendUint16(sizeof(testString_1) / sizeof(testString_1[0])); // Data read length
 
 	receivedPacket.appendUint64(reinterpret_cast<uint64_t >(testString_2));
-	receivedPacket.appendUint16(sizeof(testString_2)/ sizeof(testString_2[0]));
+	receivedPacket.appendUint16(sizeof(testString_2) / sizeof(testString_2[0]));
 
 	receivedPacket.appendUint64(reinterpret_cast<uint64_t >(testString_3));
-	receivedPacket.appendUint16(sizeof(testString_3)/ sizeof(testString_3[0]));
+	receivedPacket.appendUint16(sizeof(testString_3) / sizeof(testString_3[0]));
 	memMangService.rawDataMemorySubservice.dumpRawData(receivedPacket);
 	REQUIRE(ServiceTests::hasOneMessage());
 
 	Message response = ServiceTests::get(0);
 	CHECK(response.serviceType == 6);
 	CHECK(response.messageType == 6);
-	REQUIRE(response.dataSize == 49);
+	REQUIRE(response.dataSize == 55);
 
 	CHECK(response.readEnum8() == MemoryManagementService::MemoryID::EXTERNAL);
 	CHECK(response.readUint16() == 3);
 	CHECK(response.readUint64() == reinterpret_cast<uint64_t >(testString_1));
 	readSize = response.readOctetString(checkString);
-	CHECK(readSize == sizeof(testString_1)/ sizeof(testString_1[0]));
+	checksum = response.readBits(16);
+	CHECK(readSize == sizeof(testString_1) / sizeof(testString_1[0]));
 	CHECK(checkString[0] == 'F');
 	CHECK(checkString[1] == 'S');
 	CHECK(checkString[2] == 't');
 	CHECK(checkString[3] == 'r');
 	CHECK(checkString[4] == 'T');
 	CHECK(checkString[5] == '\0');
+	CHECK(checksum == CRCHelper::calculateCRC(checkString, readSize));
 
 	CHECK(response.readUint64() == reinterpret_cast<uint64_t >(testString_2));
 	readSize = response.readOctetString(checkString);
-	CHECK(readSize == sizeof(testString_2)/ sizeof(testString_2[0]));
+	checksum = response.readBits(16);
+	CHECK(readSize == sizeof(testString_2) / sizeof(testString_2[0]));
 	CHECK(checkString[0] == 'S');
 	CHECK(checkString[1] == 'e');
 	CHECK(checkString[2] == 'c');
@@ -78,10 +84,13 @@ TEST_CASE("TM[6,5]", "[service][st06]") {
 	CHECK(checkString[5] == 'r');
 	CHECK(checkString[6] == 'T');
 	CHECK(checkString[7] == '\0');
+	CHECK(checksum == CRCHelper::calculateCRC(checkString, readSize));
 
 	CHECK(response.readUint64() == reinterpret_cast<uint64_t >(testString_3));
 	readSize = response.readOctetString(checkString);
-	CHECK(readSize == sizeof(testString_3)/ sizeof(testString_3[0]));
+	checksum = response.readBits(16);
+	CHECK(readSize == sizeof(testString_3) / sizeof(testString_3[0]));
 	CHECK(checkString[0] == 5);
 	CHECK(checkString[1] == 8);
+	CHECK(checksum == CRCHelper::calculateCRC(checkString, readSize));
 }