diff --git a/quiche/common/platform/api/quiche_test.h b/quiche/common/platform/api/quiche_test.h
index b707385..2fbb81d 100644
--- a/quiche/common/platform/api/quiche_test.h
+++ b/quiche/common/platform/api/quiche_test.h
@@ -7,10 +7,12 @@
 
 #include "quiche_platform_impl/quiche_test_impl.h"
 
-using QuicheTest = quiche::test::QuicheTestImpl;
+namespace quiche::test {
+
+using QuicheTest = QuicheTestImpl;
 
 template <class T>
-using QuicheTestWithParam = quiche::test::QuicheTestWithParamImpl<T>;
+using QuicheTestWithParam = QuicheTestWithParamImpl<T>;
 
 using QuicheFlagSaver = QuicheFlagSaverImpl;
 
@@ -21,17 +23,13 @@
   return QuicheGetTestMemoryCachePathImpl();
 }
 
-namespace quiche {
-namespace test {
-
 // Returns the path to quiche/common directory where the test data could be
 // located.
 inline std::string QuicheGetCommonSourcePath() {
   return QuicheGetCommonSourcePathImpl();
 }
 
-}  // namespace test
-}  // namespace quiche
+}  // namespace quiche::test
 
 #define EXPECT_QUICHE_DEBUG_DEATH(condition, message) \
   EXPECT_QUICHE_DEBUG_DEATH_IMPL(condition, message)
diff --git a/quiche/http2/adapter/nghttp2_session_test.cc b/quiche/http2/adapter/nghttp2_session_test.cc
index 5c6d00f..61500bb 100644
--- a/quiche/http2/adapter/nghttp2_session_test.cc
+++ b/quiche/http2/adapter/nghttp2_session_test.cc
@@ -27,7 +27,7 @@
   WINDOW_UPDATE,
 };
 
-class NgHttp2SessionTest : public QuicheTest {
+class NgHttp2SessionTest : public quiche::test::QuicheTest {
  public:
   void SetUp() override {
     nghttp2_option_new(&options_);
diff --git a/quiche/http2/adapter/nghttp2_test.cc b/quiche/http2/adapter/nghttp2_test.cc
index ec510ec..39770ff 100644
--- a/quiche/http2/adapter/nghttp2_test.cc
+++ b/quiche/http2/adapter/nghttp2_test.cc
@@ -38,7 +38,7 @@
   return options;
 }
 
-class Nghttp2Test : public QuicheTest {
+class Nghttp2Test : public quiche::test::QuicheTest {
  public:
   Nghttp2Test() : session_(MakeSessionPtr(nullptr)) {}
 
diff --git a/quiche/http2/adapter/window_manager_test.cc b/quiche/http2/adapter/window_manager_test.cc
index 5e9ef52..0e05b85 100644
--- a/quiche/http2/adapter/window_manager_test.cc
+++ b/quiche/http2/adapter/window_manager_test.cc
@@ -24,7 +24,7 @@
 
 namespace {
 
-class WindowManagerTest : public QuicheTest {
+class WindowManagerTest : public quiche::test::QuicheTest {
  protected:
   WindowManagerTest()
       : wm_(kDefaultLimit, absl::bind_front(&WindowManagerTest::OnCall, this)),
diff --git a/quiche/http2/core/priority_write_scheduler_test.cc b/quiche/http2/core/priority_write_scheduler_test.cc
index 422a587..9be325f 100644
--- a/quiche/http2/core/priority_write_scheduler_test.cc
+++ b/quiche/http2/core/priority_write_scheduler_test.cc
@@ -35,7 +35,7 @@
 
 namespace {
 
-class PriorityWriteSchedulerTest : public QuicheTest {
+class PriorityWriteSchedulerTest : public quiche::test::QuicheTest {
  public:
   PriorityWriteSchedulerTest() : peer_(&scheduler_) {}
 
diff --git a/quiche/http2/decoder/decode_buffer_test.cc b/quiche/http2/decoder/decode_buffer_test.cc
index 0149062..6e5eb9c 100644
--- a/quiche/http2/decoder/decode_buffer_test.cc
+++ b/quiche/http2/decoder/decode_buffer_test.cc
@@ -43,7 +43,7 @@
   TestEnum8 f8;
 };
 
-class DecodeBufferTest : public QuicheTest {
+class DecodeBufferTest : public quiche::test::QuicheTest {
  protected:
   Http2Random random_;
   uint32_t decode_offset_;
diff --git a/quiche/http2/decoder/decode_http2_structures_test.cc b/quiche/http2/decoder/decode_http2_structures_test.cc
index 6ace3a6..61413f3 100644
--- a/quiche/http2/decoder/decode_http2_structures_test.cc
+++ b/quiche/http2/decoder/decode_http2_structures_test.cc
@@ -39,7 +39,7 @@
 }
 
 template <class S>
-class StructureDecoderTest : public QuicheTest {
+class StructureDecoderTest : public quiche::test::QuicheTest {
  protected:
   typedef S Structure;
 
diff --git a/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc b/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc
index d5b375c..46872aa 100644
--- a/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc
+++ b/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc
@@ -45,7 +45,7 @@
 
 enum StringBacking { STATIC, UNBUFFERED, BUFFERED };
 
-class HpackDecoderStateTest : public QuicheTest {
+class HpackDecoderStateTest : public quiche::test::QuicheTest {
  protected:
   HpackDecoderStateTest() : decoder_state_(&listener_) {}
 
diff --git a/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc b/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc
index 758dfce..299391f 100644
--- a/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc
+++ b/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc
@@ -22,7 +22,7 @@
 namespace test {
 namespace {
 
-class HpackDecoderStringBufferTest : public QuicheTest {
+class HpackDecoderStringBufferTest : public quiche::test::QuicheTest {
  protected:
   typedef HpackDecoderStringBuffer::State State;
   typedef HpackDecoderStringBuffer::Backing Backing;
diff --git a/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc b/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc
index 18c666f..10917da 100644
--- a/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc
+++ b/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc
@@ -54,7 +54,7 @@
   std::shuffle(collection->begin(), collection->end(), *r);
 }
 
-class HpackDecoderStaticTableTest : public QuicheTest {
+class HpackDecoderStaticTableTest : public quiche::test::QuicheTest {
  protected:
   HpackDecoderStaticTableTest() = default;
 
diff --git a/quiche/http2/hpack/decoder/hpack_decoder_test.cc b/quiche/http2/hpack/decoder/hpack_decoder_test.cc
index 8aa4c46..0840203 100644
--- a/quiche/http2/hpack/decoder/hpack_decoder_test.cc
+++ b/quiche/http2/hpack/decoder/hpack_decoder_test.cc
@@ -69,7 +69,7 @@
               (override));
 };
 
-class HpackDecoderTest : public QuicheTestWithParam<bool>,
+class HpackDecoderTest : public quiche::test::QuicheTestWithParam<bool>,
                          public HpackDecoderListener {
  protected:
   // Note that we initialize the random number generator with the same seed
diff --git a/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc b/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc
index 4064d29..d2bb81c 100644
--- a/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc
+++ b/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc
@@ -40,7 +40,7 @@
               (override));
 };
 
-class HpackWholeEntryBufferTest : public QuicheTest {
+class HpackWholeEntryBufferTest : public quiche::test::QuicheTest {
  protected:
   HpackWholeEntryBufferTest() : entry_buffer_(&listener_, kMaxStringSize) {}
   ~HpackWholeEntryBufferTest() override = default;
diff --git a/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc b/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc
index 4155466..0c4f5a4 100644
--- a/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc
+++ b/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc
@@ -11,7 +11,7 @@
 namespace http2 {
 namespace {
 
-class HuffmanEncoderTest : public QuicheTestWithParam<bool> {
+class HuffmanEncoderTest : public quiche::test::QuicheTestWithParam<bool> {
  protected:
   HuffmanEncoderTest() : use_fast_encoder_(GetParam()) {}
   virtual ~HuffmanEncoderTest() = default;
diff --git a/quiche/http2/http2_constants_test.cc b/quiche/http2/http2_constants_test.cc
index 1044b80..8478ae6 100644
--- a/quiche/http2/http2_constants_test.cc
+++ b/quiche/http2/http2_constants_test.cc
@@ -10,7 +10,7 @@
 namespace test {
 namespace {
 
-class Http2ConstantsTest : public QuicheTest {};
+class Http2ConstantsTest : public quiche::test::QuicheTest {};
 
 TEST(Http2ConstantsTest, Http2FrameType) {
   EXPECT_EQ(Http2FrameType::DATA, static_cast<Http2FrameType>(0));
diff --git a/quiche/http2/http2_structures_test.cc b/quiche/http2/http2_structures_test.cc
index 5f63e4c..5907733 100644
--- a/quiche/http2/http2_structures_test.cc
+++ b/quiche/http2/http2_structures_test.cc
@@ -161,7 +161,8 @@
 
 // The tests of the valid frame types include EXPECT_QUICHE_DEBUG_DEATH, which
 // is quite slow, so using value parameterized tests in order to allow sharding.
-class Http2FrameHeaderTypeAndFlagTest : public QuicheTestWithParam<TestParams> {
+class Http2FrameHeaderTypeAndFlagTest
+    : public quiche::test::QuicheTestWithParam<TestParams> {
  protected:
   Http2FrameHeaderTypeAndFlagTest()
       : type_(std::get<0>(GetParam())), flags_(std::get<1>(GetParam())) {
diff --git a/quiche/http2/test_tools/random_decoder_test_base.h b/quiche/http2/test_tools/random_decoder_test_base.h
index ba137b3..a01ea8d 100644
--- a/quiche/http2/test_tools/random_decoder_test_base.h
+++ b/quiche/http2/test_tools/random_decoder_test_base.h
@@ -55,7 +55,7 @@
 
 // Base class for tests of the ability to decode a sequence of bytes with
 // various boundaries between the DecodeBuffers provided to the decoder.
-class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
+class QUICHE_NO_EXPORT RandomDecoderTest : public quiche::test::QuicheTest {
  public:
   // SelectSize returns the size of the next DecodeBuffer to be passed to the
   // decoder. Note that RandomDecoderTest allows that size to be zero, though
diff --git a/quiche/quic/core/http/end_to_end_test.cc b/quiche/quic/core/http/end_to_end_test.cc
index 562b032..25a3af7 100644
--- a/quiche/quic/core/http/end_to_end_test.cc
+++ b/quiche/quic/core/http/end_to_end_test.cc
@@ -822,7 +822,7 @@
     }
   }
 
-  ScopedEnvironmentForThreads environment_;
+  quiche::test::ScopedEnvironmentForThreads environment_;
   bool initialized_;
   // If true, the Initialize() function will create |client_| and starts to
   // connect to the server.
diff --git a/quiche/quic/platform/api/quic_test.h b/quiche/quic/platform/api/quic_test.h
index 9a60af3..0d1d2b0 100644
--- a/quiche/quic/platform/api/quic_test.h
+++ b/quiche/quic/platform/api/quic_test.h
@@ -8,15 +8,16 @@
 #include "quiche/quic/platform/api/quic_logging.h"
 #include "quiche/common/platform/api/quiche_test.h"
 
-using QuicFlagSaver = QuicheFlagSaver;
+namespace quic::test {
+
+using QuicFlagSaver = quiche::test::QuicheFlagSaver;
 
 // Defines the base classes to be used in QUIC tests.
-using QuicTest = QuicheTest;
+using QuicTest = quiche::test::QuicheTest;
 template <class T>
-using QuicTestWithParam = QuicheTestWithParam<T>;
+using QuicTestWithParam = quiche::test::QuicheTestWithParam<T>;
 
-// Class which needs to be instantiated in tests which use threads.
-using ScopedEnvironmentForThreads = ScopedEnvironmentForThreadsImpl;
+}  // namespace quic::test
 
 #define QUIC_TEST_DISABLED_IN_CHROME(name) QUICHE_TEST_DISABLED_IN_CHROME(name)
 
diff --git a/quiche/quic/test_tools/simulator/quic_endpoint_test.cc b/quiche/quic/test_tools/simulator/quic_endpoint_test.cc
index 823c190..5850a8b 100644
--- a/quiche/quic/test_tools/simulator/quic_endpoint_test.cc
+++ b/quiche/quic/test_tools/simulator/quic_endpoint_test.cc
@@ -28,7 +28,7 @@
 
 // A simple test harness where all hosts are connected to a switch with
 // identical links.
-class QuicEndpointTest : public QuicTest {
+class QuicEndpointTest : public quic::test::QuicTest {
  public:
   QuicEndpointTest()
       : simulator_(), switch_(&simulator_, "Switch", 8, kDefaultBdp * 2) {}
diff --git a/quiche/quic/test_tools/simulator/simulator_test.cc b/quiche/quic/test_tools/simulator/simulator_test.cc
index d348a8a..4ae04a7 100644
--- a/quiche/quic/test_tools/simulator/simulator_test.cc
+++ b/quiche/quic/test_tools/simulator/simulator_test.cc
@@ -47,7 +47,7 @@
   QuicTime::Delta period_;
 };
 
-class SimulatorTest : public QuicTest {};
+class SimulatorTest : public quic::test::QuicTest {};
 
 // Test that the basic event handling works, and that Actors can be created and
 // destroyed mid-simulation.
diff --git a/quiche/quic/tools/quic_memory_cache_backend_test.cc b/quiche/quic/tools/quic_memory_cache_backend_test.cc
index 040f04b..a75b46e 100644
--- a/quiche/quic/tools/quic_memory_cache_backend_test.cc
+++ b/quiche/quic/tools/quic_memory_cache_backend_test.cc
@@ -31,7 +31,9 @@
     (*headers)[":scheme"] = "https";
   }
 
-  std::string CacheDirectory() { return QuicheGetTestMemoryCachePath(); }
+  std::string CacheDirectory() {
+    return quiche::test::QuicheGetTestMemoryCachePath();
+  }
 
   QuicMemoryCacheBackend cache_;
 };
diff --git a/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc b/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc
index f8af2f4..5df9d82 100644
--- a/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc
+++ b/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc
@@ -112,7 +112,7 @@
 enum StartChoice { START_WITH_HANDLER, START_WITHOUT_HANDLER, NO_START };
 
 class HpackDecoderAdapterTest
-    : public QuicheTestWithParam<std::tuple<StartChoice, bool>> {
+    : public quiche::test::QuicheTestWithParam<std::tuple<StartChoice, bool>> {
  protected:
   HpackDecoderAdapterTest() : decoder_(), decoder_peer_(&decoder_) {}
 
diff --git a/quiche/spdy/core/hpack/hpack_encoder_test.cc b/quiche/spdy/core/hpack/hpack_encoder_test.cc
index 886b9ed..9402512 100644
--- a/quiche/spdy/core/hpack/hpack_encoder_test.cc
+++ b/quiche/spdy/core/hpack/hpack_encoder_test.cc
@@ -127,7 +127,8 @@
   kRepresentations,
 };
 
-class HpackEncoderTest : public QuicheTestWithParam<EncodeStrategy> {
+class HpackEncoderTest
+    : public quiche::test::QuicheTestWithParam<EncodeStrategy> {
  protected:
   typedef test::HpackEncoderPeer::Representations Representations;
 
diff --git a/quiche/spdy/core/hpack/hpack_header_table_test.cc b/quiche/spdy/core/hpack/hpack_header_table_test.cc
index 51bd7ed..7886b2d 100644
--- a/quiche/spdy/core/hpack/hpack_header_table_test.cc
+++ b/quiche/spdy/core/hpack/hpack_header_table_test.cc
@@ -67,7 +67,7 @@
 
 namespace {
 
-class HpackHeaderTableTest : public QuicheTest {
+class HpackHeaderTableTest : public quiche::test::QuicheTest {
  protected:
   typedef std::vector<HpackEntry> HpackEntryVector;
 
diff --git a/quiche/spdy/core/hpack/hpack_round_trip_test.cc b/quiche/spdy/core/hpack/hpack_round_trip_test.cc
index 702e5fa..27e1bcc 100644
--- a/quiche/spdy/core/hpack/hpack_round_trip_test.cc
+++ b/quiche/spdy/core/hpack/hpack_round_trip_test.cc
@@ -22,7 +22,8 @@
 // Supports testing with the input split at every byte boundary.
 enum InputSizeParam { ALL_INPUT, ONE_BYTE, ZERO_THEN_ONE_BYTE };
 
-class HpackRoundTripTest : public QuicheTestWithParam<InputSizeParam> {
+class HpackRoundTripTest
+    : public quiche::test::QuicheTestWithParam<InputSizeParam> {
  protected:
   void SetUp() override {
     // Use a small table size to tickle eviction handling.
diff --git a/quiche/spdy/core/hpack/hpack_static_table_test.cc b/quiche/spdy/core/hpack/hpack_static_table_test.cc
index e0577a0..b781aaf 100644
--- a/quiche/spdy/core/hpack/hpack_static_table_test.cc
+++ b/quiche/spdy/core/hpack/hpack_static_table_test.cc
@@ -17,7 +17,7 @@
 
 namespace {
 
-class HpackStaticTableTest : public QuicheTest {
+class HpackStaticTableTest : public quiche::test::QuicheTest {
  protected:
   HpackStaticTableTest() : table_() {}
 
diff --git a/quiche/spdy/core/metadata_extension_test.cc b/quiche/spdy/core/metadata_extension_test.cc
index 258f646..26f98f4 100644
--- a/quiche/spdy/core/metadata_extension_test.cc
+++ b/quiche/spdy/core/metadata_extension_test.cc
@@ -27,7 +27,7 @@
 const size_t kBufferSize = 64 * 1024;
 char kBuffer[kBufferSize];
 
-class MetadataExtensionTest : public QuicheTest {
+class MetadataExtensionTest : public quiche::test::QuicheTest {
  protected:
   MetadataExtensionTest() : test_buffer_(kBuffer, kBufferSize) {}
 
diff --git a/quiche/spdy/core/spdy_framer_test.cc b/quiche/spdy/core/spdy_framer_test.cc
index eb6a9a3..bdea70c 100644
--- a/quiche/spdy/core/spdy_framer_test.cc
+++ b/quiche/spdy/core/spdy_framer_test.cc
@@ -568,7 +568,7 @@
 
 enum Output { USE, NOT_USE };
 
-class SpdyFramerTest : public QuicheTestWithParam<Output> {
+class SpdyFramerTest : public quiche::test::QuicheTestWithParam<Output> {
  public:
   SpdyFramerTest()
       : output_(output_buffer, kSize),
@@ -2935,7 +2935,7 @@
   EXPECT_FALSE(frame_it.HasNextFrame());
 }
 
-class SpdyControlFrameIteratorTest : public QuicheTest {
+class SpdyControlFrameIteratorTest : public quiche::test::QuicheTest {
  public:
   SpdyControlFrameIteratorTest() : output_(output_buffer, kSize) {}
 
diff --git a/quiche/spdy/core/spdy_intrusive_list_test.cc b/quiche/spdy/core/spdy_intrusive_list_test.cc
index 507c707..ad91625 100644
--- a/quiche/spdy/core/spdy_intrusive_list_test.cc
+++ b/quiche/spdy/core/spdy_intrusive_list_test.cc
@@ -29,11 +29,11 @@
   swap(a.n, b.n);
 }
 
-class IntrusiveListTest : public QuicheTest {
+class IntrusiveListTest : public quiche::test::QuicheTest {
  protected:
   void CheckLists() {
     CheckLists(l1, ll1);
-    if (QuicheTest::HasFailure()) return;
+    if (quiche::test::QuicheTest::HasFailure()) return;
     CheckLists(l2, ll2);
   }
 
@@ -402,7 +402,7 @@
   }
 }
 
-class IntrusiveListTagTypeTest : public QuicheTest {
+class IntrusiveListTagTypeTest : public quiche::test::QuicheTest {
  protected:
   struct Tag {};
   class Element : public SpdyIntrusiveLink<Element, Tag> {};
diff --git a/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc b/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc
index f35f9b0..984be68 100644
--- a/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc
+++ b/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc
@@ -13,7 +13,7 @@
 
 namespace test {
 
-class SpdyPinnableBufferPieceTest : public QuicheTest {
+class SpdyPinnableBufferPieceTest : public quiche::test::QuicheTest {
  protected:
   SpdyPrefixedBufferReader Build(const std::string& prefix,
                                  const std::string& suffix) {
diff --git a/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc b/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc
index c2bf25c..c013c4c 100644
--- a/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc
+++ b/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc
@@ -15,7 +15,7 @@
 
 using testing::ElementsAreArray;
 
-class SpdyPrefixedBufferReaderTest : public QuicheTest {
+class SpdyPrefixedBufferReaderTest : public quiche::test::QuicheTest {
  protected:
   SpdyPrefixedBufferReader Build(const std::string& prefix,
                                  const std::string& suffix) {
