diff --git a/test/certs_manager_test.cpp b/test/certs_manager_test.cpp
index 6d5149e..c44f7ec 100644
--- a/test/certs_manager_test.cpp
+++ b/test/certs_manager_test.cpp
@@ -207,7 +207,7 @@
     std::string certificateFile, CSRFile, privateKeyFile, rsaPrivateKeyFilePath;
 
     std::string certDir;
-    uint64_t certId;
+    uint64_t certId = 1;
 };
 
 class MainApp
@@ -1030,7 +1030,7 @@
     bus.attach_event(event.get(), SD_EVENT_PRIORITY_NORMAL);
     Manager manager(bus, event, objPath.c_str(), type, std::move(unit),
                     std::move(installPath));
-    Status status;
+    Status status = Status::success;
     CSR csr(bus, objPath.c_str(), csrPath.c_str(), status);
     MainApp mainApp(&manager, &csr);
     mainApp.generateCSR(alternativeNames, challengePassword, city, commonName,
@@ -1038,7 +1038,7 @@
                         keyBitLength, keyCurveId, keyPairAlgorithm, keyUsage,
                         organization, organizationalUnit, state, surname,
                         unstructuredName);
-    std::string csrData("");
+    std::string csrData{};
     // generateCSR takes considerable time to create CSR and privateKey Files
     EXPECT_FALSE(fs::exists(csrPath));
     EXPECT_FALSE(fs::exists(privateKeyPath));
@@ -1285,7 +1285,7 @@
     auto event = sdeventplus::Event::get_default();
     Manager manager(bus, event, objPath.c_str(), type, std::move(unit),
                     std::move(installPath));
-    Status status;
+    Status status = Status::success;
     CSR csr(bus, objPath.c_str(), csrPath.c_str(), status);
     MainApp mainApp(&manager, &csr);
     mainApp.generateCSR(alternativeNames, challengePassword, city, commonName,
