diff --git a/test/common/meson.build b/test/common/meson.build
index 964f769..3b7912f 100644
--- a/test/common/meson.build
+++ b/test/common/meson.build
@@ -1 +1,2 @@
 subdir('exampledevice')
+subdir('software')
diff --git a/test/common/software/meson.build b/test/common/software/meson.build
new file mode 100644
index 0000000..7d0a077
--- /dev/null
+++ b/test/common/software/meson.build
@@ -0,0 +1,26 @@
+
+testcases = ['software_get_random_softwareid']
+
+foreach t : testcases
+    test(
+        t,
+        executable(
+            t,
+            f'@t@.cpp',
+            include_directories: [common_include],
+            dependencies: [
+                libpldm_dep,
+                sdbusplus_dep,
+                phosphor_logging_dep,
+                gtest,
+            ],
+            link_with: [
+                libpldmutil,
+                libpldmcreatepkg,
+                software_common_lib,
+                libexampledevice,
+            ],
+        ),
+    )
+endforeach
+
diff --git a/test/common/software/software_get_random_softwareid.cpp b/test/common/software/software_get_random_softwareid.cpp
new file mode 100644
index 0000000..47bda1d
--- /dev/null
+++ b/test/common/software/software_get_random_softwareid.cpp
@@ -0,0 +1,52 @@
+#include "../exampledevice/example_device.hpp"
+
+#include <phosphor-logging/lg2.hpp>
+#include <sdbusplus/asio/connection.hpp>
+#include <sdbusplus/asio/object_server.hpp>
+#include <sdbusplus/async.hpp>
+#include <sdbusplus/server.hpp>
+
+#include <memory>
+#include <regex>
+
+#include <gtest/gtest.h>
+
+PHOSPHOR_LOG2_USING;
+
+using namespace phosphor::software;
+using namespace phosphor::software::example_device;
+
+class TestSoftware : public Software
+{
+  public:
+    static std::string wrapGetRandomSoftwareId(Device& parent)
+    {
+        return Software::getRandomSoftwareId(parent);
+    };
+};
+
+constexpr const char* mb1ExampleComponent = "MB1ExampleComponent";
+
+TEST(SoftwareTest, testGetRandomSoftwareId)
+{
+    sdbusplus::async::context ctx;
+    ExampleCodeUpdater exampleUpdater(ctx);
+
+    std::string objPath =
+        "/xyz/openbmc_project/inventory/system/board/ExampleBoard/ExampleDevice";
+
+    SoftwareConfig config(objPath, 0x1234, "my.example.compatible", "Example",
+                          mb1ExampleComponent);
+
+    auto device = std::make_unique<ExampleDevice>(ctx, &exampleUpdater, config);
+
+    std::string swid = TestSoftware::wrapGetRandomSoftwareId(*device);
+    debug("{SWID}", "SWID", swid);
+
+    std::regex re("[a-zA-Z0-9]+_[0-9]+");
+    std::cmatch m;
+
+    EXPECT_TRUE(std::regex_match(swid.c_str(), m, re));
+
+    EXPECT_TRUE(swid.starts_with(std::string(mb1ExampleComponent) + "_"));
+}
diff --git a/test/meson.build b/test/meson.build
index b7d75f8..14735cb 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,2 +1,5 @@
 subdir('create_package')
+
+gtest_main = dependency('gtest_main', main: true, required: true)
+
 subdir('common')
