diff --git a/tests/daemon/fw/retx-suppression.t.cpp b/tests/daemon/fw/retx-suppression.t.cpp
index 7013aef..604dfb1 100644
--- a/tests/daemon/fw/retx-suppression.t.cpp
+++ b/tests/daemon/fw/retx-suppression.t.cpp
@@ -36,7 +36,8 @@
 
 using namespace nfd::tests;
 
-BOOST_FIXTURE_TEST_SUITE(FwRetxSuppression, UnitTestTimeFixture)
+BOOST_AUTO_TEST_SUITE(Fw)
+BOOST_FIXTURE_TEST_SUITE(TestRetxSuppression, UnitTestTimeFixture)
 
 BOOST_AUTO_TEST_CASE(Fixed)
 {
@@ -155,7 +156,8 @@
   // suppression interval is 100ms, until 304ms
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestRetxSuppression
+BOOST_AUTO_TEST_SUITE_END() // Fw
 
 } // namespace tests
 } // namespace fw
diff --git a/tests/daemon/fw/rtt-estimator.t.cpp b/tests/daemon/fw/rtt-estimator.t.cpp
index 1a19443..b2c3fb6 100644
--- a/tests/daemon/fw/rtt-estimator.t.cpp
+++ b/tests/daemon/fw/rtt-estimator.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,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,7 +30,8 @@
 namespace nfd {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(FwRttEstimator, BaseFixture)
+BOOST_AUTO_TEST_SUITE(Fw)
+BOOST_FIXTURE_TEST_SUITE(TestRttEstimator, BaseFixture)
 
 static inline double
 computeRtoAsFloatSeconds(RttEstimator& rtt)
@@ -74,7 +75,8 @@
   BOOST_CHECK_GT(rto6, rto1);
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestRttEstimator
+BOOST_AUTO_TEST_SUITE_END() // Fw
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/daemon/fw/strategy-tester.hpp b/tests/daemon/fw/strategy-tester.hpp
index 3c4ef9b..f9d5de8 100644
--- a/tests/daemon/fw/strategy-tester.hpp
+++ b/tests/daemon/fw/strategy-tester.hpp
@@ -23,8 +23,8 @@
  * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef NFD_TESTS_NFD_FW_STRATEGY_TESTER_HPP
-#define NFD_TESTS_NFD_FW_STRATEGY_TESTER_HPP
+#ifndef NFD_TESTS_DAEMON_FW_STRATEGY_TESTER_HPP
+#define NFD_TESTS_DAEMON_FW_STRATEGY_TESTER_HPP
 
 #include <boost/tuple/tuple_comparison.hpp>
 #include "fw/strategy.hpp"
@@ -105,4 +105,4 @@
 } // namespace fw
 } // namespace nfd
 
-#endif // NFD_TESTS_NFD_FW_STRATEGY_TESTER_HPP
+#endif // NFD_TESTS_DAEMON_FW_STRATEGY_TESTER_HPP
diff --git a/tests/daemon/fw/topology-tester.cpp b/tests/daemon/fw/topology-tester.cpp
index d934e35..5742592 100644
--- a/tests/daemon/fw/topology-tester.cpp
+++ b/tests/daemon/fw/topology-tester.cpp
@@ -75,7 +75,7 @@
     return;
   }
 
-  for (auto&& p : m_transports) {
+  for (const auto& p : m_transports) {
     if (p.first == i) {
       continue;
     }
diff --git a/tests/daemon/fw/topology-tester.hpp b/tests/daemon/fw/topology-tester.hpp
index 329244b..e5b21da 100644
--- a/tests/daemon/fw/topology-tester.hpp
+++ b/tests/daemon/fw/topology-tester.hpp
@@ -27,16 +27,17 @@
  *  \brief allows testing forwarding in a network topology
  */
 
-#ifndef NFD_TESTS_NFD_FW_TOPOLOGY_TESTER_HPP
-#define NFD_TESTS_NFD_FW_TOPOLOGY_TESTER_HPP
+#ifndef NFD_TESTS_DAEMON_FW_TOPOLOGY_TESTER_HPP
+#define NFD_TESTS_DAEMON_FW_TOPOLOGY_TESTER_HPP
 
-#include <ndn-cxx/face.hpp>
 #include "face/internal-transport.hpp"
 #include "face/face.hpp"
 #include "fw/strategy.hpp"
 #include "install-strategy.hpp"
 #include "tests/test-common.hpp"
 
+#include <ndn-cxx/face.hpp>
+
 namespace nfd {
 namespace fw {
 namespace tests {
@@ -236,4 +237,4 @@
 } // namespace fw
 } // namespace nfd
 
-#endif // NFD_TESTS_NFD_FW_TOPOLOGY_TESTER_HPP
+#endif // NFD_TESTS_DAEMON_FW_TOPOLOGY_TESTER_HPP
