diff --git a/test/Makefile.am b/test/Makefile.am
index fef5f96..1ab21e7 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -8,7 +8,8 @@
 	libpldmresponder_base_test \
 	libpldm_bios_test \
 	libpldmresponder_bios_test \
-	libpldmresponder_pdr_state_effecter_test
+	libpldmresponder_pdr_state_effecter_test \
+	libpldmresponder_bios_table_test
 
 if OEM_IBM
 check_PROGRAMS += \
@@ -130,3 +131,21 @@
 	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
 	-lstdc++fs
 libpldmresponder_pdr_state_effecter_test_SOURCES = libpldmresponder_pdr_state_effecter_test.cpp
+
+libpldmresponder_bios_table_test_CPPFLAGS = $(test_cppflags)
+libpldmresponder_bios_table_test_CXXFLAGS = $(test_cxxflags)
+libpldmresponder_bios_table_test_LDFLAGS = \
+        $(test_ldflags) \
+        $(SDBUSPLUS_LIBS)
+libpldmresponder_bios_table_test_LDADD = \
+        $(top_builddir)/libpldmresponder/libpldmresponder_la-bios.o \
+        $(top_builddir)/libpldmresponder/libpldmresponder_la-bios_table.o \
+        $(top_builddir)/libpldmresponder/libpldmresponder_la-utils.o \
+        $(top_builddir)/libpldm/libpldm_la-base.o  \
+        $(top_builddir)/libpldm/libpldm_la-bios.o \
+	$(top_builddir)/pldmd-registration.o \
+        $(CODE_COVERAGE_LIBS) \
+        $(SDBUSPLUS_LIBS) \
+	-lstdc++fs
+libpldmresponder_bios_table_test_SOURCES = \
+        libpldmresponder_bios_table_test.cpp
diff --git a/test/libpldmresponder_bios_table_test.cpp b/test/libpldmresponder_bios_table_test.cpp
new file mode 100644
index 0000000..47764ee
--- /dev/null
+++ b/test/libpldmresponder_bios_table_test.cpp
@@ -0,0 +1,61 @@
+#include "libpldmresponder/bios_table.hpp"
+
+#include <stdlib.h>
+
+#include <algorithm>
+#include <vector>
+
+#include <gtest/gtest.h>
+
+using namespace pldm::responder::bios;
+
+class TestBIOSTable : public testing::Test
+{
+  public:
+    void SetUp() override
+    {
+        char tmpdir[] = "/tmp/pldm_bios_table.XXXXXX";
+        dir = fs::path(mkdtemp(tmpdir));
+    }
+
+    void TearDown() override
+    {
+        fs::remove_all(dir);
+    }
+
+    fs::path dir;
+};
+
+TEST_F(TestBIOSTable, testStoreLoad)
+{
+    std::vector<uint8_t> table{10, 34, 56, 100, 44, 55, 69, 21, 48, 2, 7, 82};
+    fs::path file(dir / "t1");
+    BIOSTable t(file.string().c_str());
+    std::vector<uint8_t> out{};
+
+    ASSERT_THROW(t.load(out), fs::filesystem_error);
+
+    ASSERT_EQ(true, t.isEmpty());
+
+    t.store(table);
+    t.load(out);
+    ASSERT_EQ(true, std::equal(table.begin(), table.end(), out.begin()));
+}
+
+TEST_F(TestBIOSTable, testLoadOntoExisting)
+{
+    std::vector<uint8_t> table{10, 34, 56, 100, 44, 55, 69, 21, 48, 2, 7, 82};
+    fs::path file(dir / "t1");
+    BIOSTable t(file.string().c_str());
+    std::vector<uint8_t> out{99, 99};
+
+    ASSERT_THROW(t.load(out), fs::filesystem_error);
+
+    ASSERT_EQ(true, t.isEmpty());
+
+    t.store(table);
+    t.load(out);
+    ASSERT_EQ(true, std::equal(table.begin(), table.end(), out.begin() + 2));
+    ASSERT_EQ(out[0], 99);
+    ASSERT_EQ(out[1], 99);
+}
