diff --git a/tests/pib/cert-publicher.t.cpp b/tests/pib/cert-publisher.t.cpp
similarity index 94%
rename from tests/pib/cert-publicher.t.cpp
rename to tests/pib/cert-publisher.t.cpp
index ca71e4c..dfcfef6 100644
--- a/tests/pib/cert-publicher.t.cpp
+++ b/tests/pib/cert-publisher.t.cpp
@@ -20,13 +20,12 @@
  */
 
 #include "tools/pib/cert-publisher.hpp"
-#include "../identity-management-time-fixture.hpp"
+
+#include "tests/identity-management-fixture.hpp"
+
 #include <ndn-cxx/util/dummy-client-face.hpp>
-
 #include <boost/filesystem.hpp>
 
-#include "tests/test-common.hpp"
-
 namespace ndn {
 namespace pib {
 namespace tests {
@@ -52,7 +51,8 @@
   util::DummyClientFace face;
 };
 
-BOOST_FIXTURE_TEST_SUITE(PibCertPublisher, CertPublisherFixture)
+BOOST_AUTO_TEST_SUITE(Pib)
+BOOST_FIXTURE_TEST_SUITE(TestCertPublisher, CertPublisherFixture)
 
 BOOST_AUTO_TEST_CASE(Basic)
 {
@@ -125,7 +125,8 @@
   BOOST_REQUIRE_EQUAL(face.sentData.size(), 0);
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestPibPublisher
+BOOST_AUTO_TEST_SUITE_END() // Pib
 
 } // namespace tests
 } // namespace pib
diff --git a/tests/pib/key-cache.t.cpp b/tests/pib/key-cache.t.cpp
index 0b88410..ab245c4 100644
--- a/tests/pib/key-cache.t.cpp
+++ b/tests/pib/key-cache.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California.
+ * Copyright (c) 2014-2016,  Regents of the University of California.
  *
  * This file is part of ndn-tools (Named Data Networking Essential Tools).
  * See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -27,7 +27,8 @@
 namespace pib {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(PibKeyCache)
+BOOST_AUTO_TEST_SUITE(Pib)
+BOOST_AUTO_TEST_SUITE(TestKeyCache)
 
 BOOST_AUTO_TEST_CASE(Basic)
 {
@@ -68,7 +69,8 @@
   BOOST_CHECK(static_cast<bool>(keyCache.find(name4)));
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestKeyCache
+BOOST_AUTO_TEST_SUITE_END() // Pib
 
 } // namespace tests
 } // namespace pib
diff --git a/tests/pib/pib-db.t.cpp b/tests/pib/pib-db.t.cpp
index ac20f89..49e7e2c 100644
--- a/tests/pib/pib-db.t.cpp
+++ b/tests/pib/pib-db.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California.
+ * Copyright (c) 2014-2016,  Regents of the University of California.
  *
  * This file is part of ndn-tools (Named Data Networking Essential Tools).
  * See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -20,12 +20,11 @@
  */
 
 #include "tools/pib/pib-db.hpp"
-#include "../identity-management-time-fixture.hpp"
+
+#include "tests/identity-management-fixture.hpp"
 
 #include <boost/filesystem.hpp>
 
-#include "tests/test-common.hpp"
-
 namespace ndn {
 namespace pib {
 namespace tests {
@@ -54,7 +53,8 @@
 };
 
 
-BOOST_FIXTURE_TEST_SUITE(PibPibDb, PibDbTestFixture)
+BOOST_AUTO_TEST_SUITE(Pib)
+BOOST_FIXTURE_TEST_SUITE(TestPibDb, PibDbTestFixture)
 
 BOOST_AUTO_TEST_CASE(MgmtTest)
 {
@@ -467,7 +467,8 @@
   BOOST_CHECK_EQUAL(deletedIds[0], id1);
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestPibDb
+BOOST_AUTO_TEST_SUITE_END() // Pib
 
 } // namespace tests
 } // namespace pib
diff --git a/tests/pib/pib-validator.t.cpp b/tests/pib/pib-validator.t.cpp
index c00761b..dc83f2a 100644
--- a/tests/pib/pib-validator.t.cpp
+++ b/tests/pib/pib-validator.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California.
+ * Copyright (c) 2014-2016,  Regents of the University of California.
  *
  * This file is part of ndn-tools (Named Data Networking Essential Tools).
  * See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -22,11 +22,11 @@
 #include "tools/pib/pib-validator.hpp"
 #include "tools/pib/encoding/update-param.hpp"
 #include "tools/pib/encoding/delete-param.hpp"
-#include <ndn-cxx/security/key-chain.hpp>
 
-#include "../identity-management-time-fixture.hpp"
+#include "tests/identity-management-fixture.hpp"
+
+#include <ndn-cxx/security/key-chain.hpp>
 #include <boost/filesystem.hpp>
-#include "tests/test-common.hpp"
 
 namespace ndn {
 namespace pib {
@@ -52,7 +52,8 @@
   bool isProcessed;
 };
 
-BOOST_FIXTURE_TEST_SUITE(PibPibValidator, PibValidatorFixture)
+BOOST_AUTO_TEST_SUITE(Pib)
+BOOST_FIXTURE_TEST_SUITE(TestPibValidator, PibValidatorFixture)
 
 BOOST_AUTO_TEST_CASE(Basic)
 {
@@ -130,7 +131,8 @@
 
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestPibValidator
+BOOST_AUTO_TEST_SUITE_END() // Pib
 
 } // namespace tests
 } // namespace pib
diff --git a/tests/pib/pib.t.cpp b/tests/pib/pib.t.cpp
index f797d3c..8c9b920 100644
--- a/tests/pib/pib.t.cpp
+++ b/tests/pib/pib.t.cpp
@@ -20,16 +20,15 @@
  */
 
 #include "tools/pib/pib.hpp"
-#include "../identity-management-time-fixture.hpp"
-#include <ndn-cxx/security/sec-tpm-file.hpp>
 #include "tools/pib/encoding/pib-encoding.hpp"
+
+#include "tests/identity-management-fixture.hpp"
+
+#include <ndn-cxx/security/sec-tpm-file.hpp>
 #include <ndn-cxx/util/io.hpp>
 #include <ndn-cxx/util/dummy-client-face.hpp>
-
 #include <boost/filesystem.hpp>
 
-#include "tests/test-common.hpp"
-
 namespace ndn {
 namespace pib {
 namespace tests {
@@ -75,7 +74,10 @@
   util::DummyClientFace face;
 };
 
-BOOST_FIXTURE_TEST_SUITE(PibPib, PibTestFixture)
+BOOST_AUTO_TEST_SUITE(Pib)
+BOOST_FIXTURE_TEST_SUITE(TestPib, PibTestFixture)
+
+using ndn::pib::Pib;
 
 BOOST_AUTO_TEST_CASE(InitCertTest1)
 {
@@ -1382,7 +1384,8 @@
   BOOST_REQUIRE_EQUAL(face.sentData.size(), 0);
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestPib
+BOOST_AUTO_TEST_SUITE_END() // Pib
 
 } // namespace tests
 } // namespace pib
diff --git a/tests/pib/response-cache.t.cpp b/tests/pib/response-cache.t.cpp
index 782a9f2..0a6caaf 100644
--- a/tests/pib/response-cache.t.cpp
+++ b/tests/pib/response-cache.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California.
+ * Copyright (c) 2014-2016,  Regents of the University of California.
  *
  * This file is part of ndn-tools (Named Data Networking Essential Tools).
  * See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -27,7 +27,8 @@
 namespace pib {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(PibResponseCache)
+BOOST_AUTO_TEST_SUITE(Pib)
+BOOST_AUTO_TEST_SUITE(TestResponseCache)
 
 BOOST_AUTO_TEST_CASE(Basic)
 {
@@ -57,7 +58,8 @@
 }
 
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestResponseCache
+BOOST_AUTO_TEST_SUITE_END() // Pib
 
 } // namespace tests
 } // namespace pib
