diff --git a/src/armnnUtils/test/ParserHelperTest.cpp b/src/armnnUtils/test/ParserHelperTest.cpp
index dc37450..dbf0673 100644
--- a/src/armnnUtils/test/ParserHelperTest.cpp
+++ b/src/armnnUtils/test/ParserHelperTest.cpp
@@ -29,8 +29,8 @@
 
     CalculateReducedOutputTensoInfo(inputTensorInfo, axisData1, keepDims, outputTensorInfo1);
 
-    BOOST_ASSERT(outputTensorInfo1.GetNumDimensions() == 1);
-    BOOST_ASSERT(outputTensorInfo1.GetShape()[0] == 1);
+    BOOST_TEST(outputTensorInfo1.GetNumDimensions() == 1);
+    BOOST_TEST(outputTensorInfo1.GetShape()[0] == 1);
 
     // Reducing dimension 0 results in a 3x4 size tensor (one dimension)
     std::set<unsigned int> axisData2 = { 0 };
@@ -38,8 +38,8 @@
 
     CalculateReducedOutputTensoInfo(inputTensorInfo, axisData2, keepDims, outputTensorInfo2);
 
-    BOOST_ASSERT(outputTensorInfo2.GetNumDimensions() == 1);
-    BOOST_ASSERT(outputTensorInfo2.GetShape()[0] == 12);
+    BOOST_TEST(outputTensorInfo2.GetNumDimensions() == 1);
+    BOOST_TEST(outputTensorInfo2.GetShape()[0] == 12);
 
     // Reducing dimensions 0,1 results in a 4 size tensor (one dimension)
     std::set<unsigned int> axisData3 = { 0, 1 };
@@ -47,8 +47,8 @@
 
     CalculateReducedOutputTensoInfo(inputTensorInfo, axisData3, keepDims, outputTensorInfo3);
 
-    BOOST_ASSERT(outputTensorInfo3.GetNumDimensions() == 1);
-    BOOST_ASSERT(outputTensorInfo3.GetShape()[0] == 4);
+    BOOST_TEST(outputTensorInfo3.GetNumDimensions() == 1);
+    BOOST_TEST(outputTensorInfo3.GetShape()[0] == 4);
 
     // Reducing dimension 0 results in a { 1, 3, 4 } dimension tensor
     keepDims = true;
@@ -58,10 +58,10 @@
 
     CalculateReducedOutputTensoInfo(inputTensorInfo, axisData4, keepDims, outputTensorInfo4);
 
-    BOOST_ASSERT(outputTensorInfo4.GetNumDimensions() == 3);
-    BOOST_ASSERT(outputTensorInfo4.GetShape()[0] == 1);
-    BOOST_ASSERT(outputTensorInfo4.GetShape()[1] == 3);
-    BOOST_ASSERT(outputTensorInfo4.GetShape()[2] == 4);
+    BOOST_TEST(outputTensorInfo4.GetNumDimensions() == 3);
+    BOOST_TEST(outputTensorInfo4.GetShape()[0] == 1);
+    BOOST_TEST(outputTensorInfo4.GetShape()[1] == 3);
+    BOOST_TEST(outputTensorInfo4.GetShape()[2] == 4);
 
     // Reducing dimension 1, 2 results in a { 2, 1, 1 } dimension tensor
     keepDims = true;
@@ -71,10 +71,10 @@
 
     CalculateReducedOutputTensoInfo(inputTensorInfo, axisData5,  keepDims, outputTensorInfo5);
 
-    BOOST_ASSERT(outputTensorInfo5.GetNumDimensions() == 3);
-    BOOST_ASSERT(outputTensorInfo5.GetShape()[0] == 2);
-    BOOST_ASSERT(outputTensorInfo5.GetShape()[1] == 1);
-    BOOST_ASSERT(outputTensorInfo5.GetShape()[2] == 1);
+    BOOST_TEST(outputTensorInfo5.GetNumDimensions() == 3);
+    BOOST_TEST(outputTensorInfo5.GetShape()[0] == 2);
+    BOOST_TEST(outputTensorInfo5.GetShape()[1] == 1);
+    BOOST_TEST(outputTensorInfo5.GetShape()[2] == 1);
 
 }
 
