diff --git a/tests/integrated/test-basic-interest-read.cpp b/tests/integrated/test-basic-interest-read.cpp
index ed62466..56d1393 100644
--- a/tests/integrated/test-basic-interest-read.cpp
+++ b/tests/integrated/test-basic-interest-read.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-2023, Regents of the University of California.
  *
  * This file is part of NDN repo-ng (Next generation of NDN repository).
  * See AUTHORS.md for complete list of repo-ng authors and contributors.
@@ -24,7 +24,7 @@
 #include "../repo-storage-fixture.hpp"
 #include "../dataset-fixtures.hpp"
 
-#include <boost/asio/io_service.hpp>
+#include <boost/asio/io_context.hpp>
 #include <boost/test/unit_test.hpp>
 
 namespace repo::tests {
diff --git a/tests/unit/tcp-bulk-insert-handle.cpp b/tests/unit/tcp-bulk-insert-handle.cpp
index 9b7b796..2c6a32e 100644
--- a/tests/unit/tcp-bulk-insert-handle.cpp
+++ b/tests/unit/tcp-bulk-insert-handle.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-2023,  Regents of the University of California.
  *
  * This file is part of NDN repo-ng (Next generation of NDN repository).
  * See AUTHORS.md for complete list of repo-ng authors and contributors.
@@ -31,11 +31,6 @@
 class TcpClient
 {
 public:
-  TcpClient()
-    : socket(ioService)
-  {
-  }
-
   virtual
   ~TcpClient() = default;
 
@@ -44,7 +39,7 @@
   {
     using namespace boost::asio;
 
-    ip::tcp::resolver resolver(ioService);
+    ip::tcp::resolver resolver(ioCtx);
     ip::tcp::resolver::query query(host, port);
 
     ip::tcp::resolver::iterator endpoint = resolver.resolve(query);
@@ -69,8 +64,8 @@
   }
 
 public:
-  boost::asio::io_service ioService;
-  boost::asio::ip::tcp::socket socket;
+  boost::asio::io_context ioCtx;
+  boost::asio::ip::tcp::socket socket{ioCtx};
 };
 
 template<class Dataset>
@@ -80,8 +75,8 @@
 {
 public:
   TcpBulkInsertFixture()
-    : scheduler(ioService)
-    , bulkInserter(ioService, *handle)
+    : scheduler(ioCtx)
+    , bulkInserter(ioCtx, *handle)
   {
     guardEvent = scheduler.schedule(2_s, std::bind(&TcpBulkInsertFixture::fail, this, "Test timed out"));
   }
@@ -125,7 +120,7 @@
   void
   fail(const std::string& info)
   {
-    ioService.stop();
+    ioCtx.stop();
     BOOST_FAIL(info);
   }
 
@@ -137,7 +132,7 @@
     socket.close();
 
     bulkInserter.stop();
-    // may be ioService.stop() as well
+    // may be ioCtx.stop() as well
   }
 
 public:
@@ -155,7 +150,7 @@
   this->start("localhost", "17376");
 
   // actually run the test
-  this->ioService.run();
+  this->ioCtx.run();
 
   // Read (all items should exist)
   for (auto i = this->interests.begin(); i != this->interests.end(); ++i) {
