diff --git a/components/service/fwu/inspector/fw_inspector.h b/components/service/fwu/inspector/fw_inspector.h
new file mode 100644
index 0000000..037a20f
--- /dev/null
+++ b/components/service/fwu/inspector/fw_inspector.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2022, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef FW_INSPECTOR_H
+#define FW_INSPECTOR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Interface dependencies
+ */
+struct fw_directory;
+
+/**
+ * \brief fw_inspector public interface definition
+ *
+ * A firmware inspector is responsible for retrieving information about the
+ * firmware associated with a fw store and refreshing the contents of the
+ * presented firmware directory. The information will reflect the state of
+ * the firmware at the most recent boot. The method used for discovering information
+ * may well vary between device classes and firmware store realizations. To
+ * give the necessary flexibility, the fw_inspector 'inspect' function may be
+ * realized by alternative implementations. To give the flexibility to
+ * combine multiple inspection strategies into a single build (for test or
+ * run-time configuration), the inspect method is called via a function pointer.
+ *
+ * \param[in]  fw_dir      The firmware directory to refresh
+ * \param[in]  boot_index  The boot_index reported by the bootloader
+ *
+ * \return FWU status
+ */
+typedef int (*fw_inspector_inspect)(
+	struct fw_directory *fw_dir,
+	unsigned int boot_index);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FW_INSPECTOR_H */
diff --git a/components/service/fwu/inspector/mock/component.cmake b/components/service/fwu/inspector/mock/component.cmake
new file mode 100644
index 0000000..fce467d
--- /dev/null
+++ b/components/service/fwu/inspector/mock/component.cmake
@@ -0,0 +1,13 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+if (NOT DEFINED TGT)
+	message(FATAL_ERROR "mandatory parameter TGT is not defined.")
+endif()
+
+target_sources(${TGT} PRIVATE
+	"${CMAKE_CURRENT_LIST_DIR}/mock_fw_inspector.c"
+	)
diff --git a/components/service/fwu/inspector/mock/mock_fw_inspector.c b/components/service/fwu/inspector/mock/mock_fw_inspector.c
new file mode 100644
index 0000000..da8945d
--- /dev/null
+++ b/components/service/fwu/inspector/mock/mock_fw_inspector.c
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2022-2023, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include <common/uuid/uuid.h>
+#include <service/fwu/agent/fw_directory.h>
+#include "mock_fw_inspector.h"
+
+int mock_fw_inspector_inspect(
+	struct fw_directory *fw_dir,
+	unsigned int boot_index)
+{
+	(void)boot_index;
+
+	/* A mock fw inspector that populates the fw_directory with fixed entries.
+	 * Intended for test purposes.
+	 */
+
+	/* Add some mock image entries to represent updatable units. */
+	struct image_info image_info = {0};
+
+	/* Image 1 */
+	uuid_guid_octets_from_canonical(&image_info.img_type_uuid, MOCK_IMG_TYPE_UUID_1);
+	image_info.max_size = 100;
+	image_info.lowest_accepted_version = 1;
+	image_info.active_version = 2;
+	image_info.permissions = 1;
+	image_info.install_type = INSTALL_TYPE_WHOLE_VOLUME;
+
+	fw_directory_add_image_info(fw_dir, &image_info);
+
+	/* Image 2 */
+	uuid_guid_octets_from_canonical(&image_info.img_type_uuid, MOCK_IMG_TYPE_UUID_2);
+	image_info.max_size = 100;
+	image_info.lowest_accepted_version = 1;
+	image_info.active_version = 2;
+	image_info.permissions = 1;
+	image_info.install_type = INSTALL_TYPE_SUB_VOLUME;
+
+	fw_directory_add_image_info(fw_dir, &image_info);
+
+	/* Image 3 */
+	uuid_guid_octets_from_canonical(&image_info.img_type_uuid, MOCK_IMG_TYPE_UUID_3);
+	image_info.max_size = 100;
+	image_info.lowest_accepted_version = 1;
+	image_info.active_version = 2;
+	image_info.permissions = 1;
+	image_info.install_type = INSTALL_TYPE_SUB_VOLUME;
+
+	fw_directory_add_image_info(fw_dir, &image_info);
+
+	/* Image 4 */
+	uuid_guid_octets_from_canonical(&image_info.img_type_uuid, MOCK_IMG_TYPE_UUID_4);
+	image_info.max_size = 200;
+	image_info.lowest_accepted_version = 1;
+	image_info.active_version = 2;
+	image_info.permissions = 1;
+	image_info.install_type = INSTALL_TYPE_SUB_VOLUME;
+
+	fw_directory_add_image_info(fw_dir, &image_info);
+
+	return 0;
+}
+
+
diff --git a/components/service/fwu/inspector/mock/mock_fw_inspector.h b/components/service/fwu/inspector/mock/mock_fw_inspector.h
new file mode 100644
index 0000000..0eb91dd
--- /dev/null
+++ b/components/service/fwu/inspector/mock/mock_fw_inspector.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2022, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef MOCK_FW_INSPECTOR_H
+#define MOCK_FW_INSPECTOR_H
+
+#include <service/fwu/inspector/fw_inspector.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Mock image type UUIDs
+ */
+#define MOCK_IMG_TYPE_UUID_1    "7744b3ab-2672-4a36-b619-b9a3608c9973"
+#define MOCK_IMG_TYPE_UUID_2    "52b3b093-08c4-427e-8cfe-a4c3b804ed88"
+#define MOCK_IMG_TYPE_UUID_3    "14345e20-a0b6-46dd-8699-e89512596205"
+#define MOCK_IMG_TYPE_UUID_4    "420f26dc-0a91-436f-8420-f4372b88ae16"
+
+/**
+ * \brief mock_fw_inspector inspect method
+ *
+ * The concrete inspect method for the mock_fw_inspector. The mock_fw_inspector
+ * is a fw_inspector that populates the fw_directory with a fixed set of mock
+ * entries. Used for test only.
+ *
+ * \param[in]  fw_dir      The firmware directory to refresh
+ * \param[in]  boot_index  The boot_index reported by the bootloader
+ *
+ * \return FWU status
+ */
+int mock_fw_inspector_inspect(
+	struct fw_directory *fw_dir,
+	unsigned int boot_index);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MOCK_FW_INSPECTOR_H */
diff --git a/deployments/component-test/component-test.cmake b/deployments/component-test/component-test.cmake
index 4fd0009..bd9e2cb 100644
--- a/deployments/component-test/component-test.cmake
+++ b/deployments/component-test/component-test.cmake
@@ -110,6 +110,7 @@
 		"components/service/block_storage/factory/client"
 		"components/service/fwu/agent"
 		"components/service/fwu/installer"
+		"components/service/fwu/inspector/mock"
 		"components/service/crypto/client/cpp"
 		"components/service/crypto/client/cpp/protocol/protobuf"
 		"components/service/crypto/client/cpp/protocol/packed-c"
