diff --git a/tests/other/cs-benchmark.cpp b/tests/other/cs-benchmark.cpp
index 4446d31..f642d14 100644
--- a/tests/other/cs-benchmark.cpp
+++ b/tests/other/cs-benchmark.cpp
@@ -26,6 +26,7 @@
 #include "benchmark-helpers.hpp"
 #include "table/cs.hpp"
 
+#include <functional>
 #include <iostream>
 
 #ifdef NFD_HAVE_VALGRIND
diff --git a/tests/other/face-benchmark.cpp b/tests/other/face-benchmark.cpp
index 4c1ac6a..17ce4ef 100644
--- a/tests/other/face-benchmark.cpp
+++ b/tests/other/face-benchmark.cpp
@@ -162,7 +162,7 @@
   [[noreturn]] static void
   onFaceCreationFailed(uint32_t status, const std::string& reason)
   {
-    NDN_THROW(std::runtime_error("Failed to create face: [" + to_string(status) + "] " + reason));
+    NDN_THROW(std::runtime_error("Failed to create face: [" + std::to_string(status) + "] " + reason));
   }
 
 private:
diff --git a/tests/other/fw/congestion-mark-strategy.cpp b/tests/other/fw/congestion-mark-strategy.cpp
index 078799b..da8e352 100644
--- a/tests/other/fw/congestion-mark-strategy.cpp
+++ b/tests/other/fw/congestion-mark-strategy.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -25,6 +25,8 @@
 
 #include "congestion-mark-strategy.hpp"
 
+#include <boost/lexical_cast.hpp>
+
 namespace nfd::fw {
 
 NFD_REGISTER_STRATEGY(CongestionMarkStrategy);
@@ -62,8 +64,8 @@
   }
 
   if (parsed.version && *parsed.version != getStrategyName()[-1].toVersion()) {
-    NDN_THROW(std::invalid_argument(
-      "CongestionMarkStrategy does not support version " + to_string(*parsed.version)));
+    NDN_THROW(std::invalid_argument("CongestionMarkStrategy does not support version " +
+                                    std::to_string(*parsed.version)));
   }
   this->setInstanceName(makeInstanceName(name, getStrategyName()));
 }
diff --git a/tests/other/pit-fib-benchmark.cpp b/tests/other/pit-fib-benchmark.cpp
index f750f90..0b6dd86 100644
--- a/tests/other/pit-fib-benchmark.cpp
+++ b/tests/other/pit-fib-benchmark.cpp
@@ -59,13 +59,13 @@
     BOOST_ASSERT(interestNameLength <= dataNameLength);
 
     for (size_t i = 0; i < nPackets; i++) {
-      Name prefix(to_string(i / nFibEntries));
+      Name prefix(std::to_string(i / nFibEntries));
       extendName(prefix, fibPrefixLength);
       m_fib.insert(prefix);
 
       Name interestName = prefix;
       if (nPackets > nFibEntries) {
-        interestName.append(to_string(i));
+        interestName.append(std::to_string(i));
       }
       extendName(interestName, interestNameLength);
       interests.push_back(make_shared<Interest>(interestName));
