diff --git a/Applications/Utils/Tests.cmake b/Applications/Utils/Tests.cmake
index 95de6c8b7184c286660d1de87326f5c4923d4bff..9e5f023b515c82583cdb1c907b73ccf7b206b56c 100644
--- a/Applications/Utils/Tests.cmake
+++ b/Applications/Utils/Tests.cmake
@@ -286,6 +286,28 @@ AddTest(
     AmmerSubsurfaceGrid.vtu AmmerGridOutput.vtu MaterialIDs MaterialIDs 0 0
 )
 
+foreach(element_type tri quad)
+    add_test(NAME ExtractBoundary-generate_input_files_${element_type}
+        COMMAND generateStructuredMesh -e ${element_type} --lx 1 --ly 1 --nx 10 --ny 10 -o ${Data_BINARY_DIR}/FileIO/square_1x1_${element_type}.vtu
+        WORKING_DIRECTORY ${Data_BINARY_DIR}/FileIO/
+    )
+
+    AddTest(
+        NAME ExtractBoundary_2D_${element_type}_Test
+        PATH FileIO/
+        EXECUTABLE ExtractBoundary
+        EXECUTABLE_ARGS -i ${Data_BINARY_DIR}/FileIO/square_1x1_${element_type}.vtu -o ${Data_BINARY_DIR}/FileIO/square_1x1_${element_type}_boundary.vtu
+        REQUIREMENTS NOT OGS_USE_MPI
+        TESTER vtkdiff
+        DIFF_DATA
+        square_1x1_${element_type}_boundary.vtu square_1x1_${element_type}_boundary.vtu bulk_node_ids bulk_node_ids 0 0
+        square_1x1_${element_type}_boundary.vtu square_1x1_${element_type}_boundary.vtu bulk_element_ids bulk_element_ids 0 0
+        square_1x1_${element_type}_boundary.vtu square_1x1_${element_type}_boundary.vtu bulk_face_ids bulk_face_ids 0 0
+        RUNTIME 1
+        DEPENDS ExtractBoundary-generate_input_files_${element_type}
+    )
+endforeach()
+
 if(OGS_USE_NETCDF)
     AddTest(
         NAME NetCDF_2D_Test
diff --git a/Tests/Data/FileIO/square_1x1_quad_boundary.vtu b/Tests/Data/FileIO/square_1x1_quad_boundary.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..d1e6c16aac6de8c6f76d445bb37567a8bcaddc89
--- /dev/null
+++ b/Tests/Data/FileIO/square_1x1_quad_boundary.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:34ff4ad90754bf5d5ccb70b5cdeff2f805a5580107d2096f6226d1b2cb4407fd
+size 2602
diff --git a/Tests/Data/FileIO/square_1x1_tri_boundary.vtu b/Tests/Data/FileIO/square_1x1_tri_boundary.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..8b3fb2d55b10549959dd01da336bd5a824f2348e
--- /dev/null
+++ b/Tests/Data/FileIO/square_1x1_tri_boundary.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:34590a08a602318e841ae93752edb34aa565554b8798590c422a41c960749484
+size 2598