diff --git a/src/backends/backendsCommon/test/LayerTests.cpp b/src/backends/backendsCommon/test/LayerTests.cpp
index 90aceee..5d05959 100644
--- a/src/backends/backendsCommon/test/LayerTests.cpp
+++ b/src/backends/backendsCommon/test/LayerTests.cpp
@@ -3251,7 +3251,7 @@
     inputTensorInfo = outputTensorInfo;
 }
 
-armnn::OriginsDescriptor CreateMergerDescriptorForConcatenation(
+armnn::OriginsDescriptor CreateDescriptorForConcatenation(
         const std::vector<armnn::TensorInfo> & inputTensorInfos,
         unsigned int concatDim)
 {
@@ -3262,9 +3262,9 @@
         shapes.push_back(it.GetShape());
     }
 
-    return armnn::CreateMergerDescriptorForConcatenation(shapes.begin(),
-                                                         shapes.end(),
-                                                         concatDim);
+    return armnn::CreateDescriptorForConcatenation(shapes.begin(),
+                                                   shapes.end(),
+                                                   concatDim);
 }
 
 //
@@ -3515,7 +3515,7 @@
     std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
 
     armnn::MergerQueueDescriptor queueDescriptor;
-    armnn::OriginsDescriptor viewsDescriptor = CreateMergerDescriptorForConcatenation(inputTensorInfos, concatDim);
+    armnn::OriginsDescriptor viewsDescriptor = CreateDescriptorForConcatenation(inputTensorInfos, concatDim);
     queueDescriptor.m_Parameters = viewsDescriptor;
 
     if (useSubtensor)
diff --git a/src/backends/backendsCommon/test/MergerTestImpl.hpp b/src/backends/backendsCommon/test/MergerTestImpl.hpp
index edf5e2b..8483cf0 100644
--- a/src/backends/backendsCommon/test/MergerTestImpl.hpp
+++ b/src/backends/backendsCommon/test/MergerTestImpl.hpp
@@ -30,9 +30,9 @@
 
     OriginsDescriptor descriptor;
 
-    descriptor = CreateMergerDescriptorForConcatenation(inputShapes.begin(),
-                                                        inputShapes.end(),
-                                                        concatAxis);
+    descriptor = CreateDescriptorForConcatenation(inputShapes.begin(),
+                                                  inputShapes.end(),
+                                                  concatAxis);
     ARMNN_NO_DEPRECATE_WARN_BEGIN
     IConnectableLayer* merger = net->AddMergerLayer(descriptor, "merger");
     ARMNN_NO_DEPRECATE_WARN_END
