diff --git a/ironic_tempest_plugin/plugin.py b/ironic_tempest_plugin/plugin.py
index e20386b..43b2052 100644
--- a/ironic_tempest_plugin/plugin.py
+++ b/ironic_tempest_plugin/plugin.py
@@ -24,7 +24,7 @@
 _opts = [
     (project_config.baremetal_group, project_config.BaremetalGroup),
     (project_config.baremetal_features_group,
-     project_config.BaremetalFeaturesGroup)
+     project_config.BaremetalFeaturesGroup),
     (project_config.baremetal_introspection_group,
      project_config.BaremetalIntrospectionGroup),
 ]
diff --git a/ironic_tempest_plugin/tests/manager.py b/ironic_tempest_plugin/tests/scenario/introspection_manager.py
similarity index 97%
rename from ironic_tempest_plugin/tests/manager.py
rename to ironic_tempest_plugin/tests/scenario/introspection_manager.py
index e6eb389..b625b42 100644
--- a/ironic_tempest_plugin/tests/manager.py
+++ b/ironic_tempest_plugin/tests/scenario/introspection_manager.py
@@ -13,13 +13,6 @@
 import json
 import os
 import time
-
-from ironic_tempest_plugin.tests.api.admin.api_microversion_fixture import \
-    APIMicroversionFixture as IronicMicroversionFixture
-from ironic_tempest_plugin.tests.scenario.baremetal_manager import \
-    BaremetalProvisionStates
-from ironic_tempest_plugin.tests.scenario.baremetal_manager import \
-    BaremetalScenarioTest
 import six
 import tempest
 from tempest import config
@@ -27,9 +20,16 @@
 from tempest.lib.common.utils import test_utils
 from tempest.lib import exceptions as lib_exc
 
-from ironic_inspector.test.inspector_tempest_plugin import exceptions
-from ironic_inspector.test.inspector_tempest_plugin.services import \
+from ironic_tempest_plugin import exceptions
+from ironic_tempest_plugin.services import \
     introspection_client
+from ironic_tempest_plugin.tests.api.admin.api_microversion_fixture import \
+    APIMicroversionFixture as IronicMicroversionFixture
+from ironic_tempest_plugin.tests.scenario.baremetal_manager import \
+    BaremetalProvisionStates
+from ironic_tempest_plugin.tests.scenario.baremetal_manager import \
+    BaremetalScenarioTest
+
 
 CONF = config.CONF
 
diff --git a/ironic_tempest_plugin/tests/test_basic.py b/ironic_tempest_plugin/tests/scenario/test_introspection_basic.py
similarity index 96%
rename from ironic_tempest_plugin/tests/test_basic.py
rename to ironic_tempest_plugin/tests/scenario/test_introspection_basic.py
index a6087e3..8ae92e9 100644
--- a/ironic_tempest_plugin/tests/test_basic.py
+++ b/ironic_tempest_plugin/tests/scenario/test_introspection_basic.py
@@ -10,15 +10,15 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from ironic_tempest_plugin.tests.scenario import baremetal_manager
 from tempest.common import utils
 from tempest.config import CONF
 from tempest.lib import decorators
 
-from ironic_inspector.test.inspector_tempest_plugin.tests import manager
+from ironic_tempest_plugin.tests.scenario import baremetal_manager
+from ironic_tempest_plugin.tests.scenario import introspection_manager
 
 
-class InspectorBasicTest(manager.InspectorScenarioTest):
+class InspectorBasicTest(introspection_manager.InspectorScenarioTest):
 
     def verify_node_introspection_data(self, node):
         data = self.introspection_data(node['uuid'])
@@ -146,7 +146,7 @@
             self.verify_introspection_aborted(node_id)
 
 
-class InspectorSmokeTest(manager.InspectorScenarioTest):
+class InspectorSmokeTest(introspection_manager.InspectorScenarioTest):
 
     @decorators.idempotent_id('a702d1f1-88e4-42ce-88ef-cba2d9e3312e')
     @decorators.attr(type='smoke')
diff --git a/ironic_tempest_plugin/tests/test_discovery.py b/ironic_tempest_plugin/tests/scenario/test_introspection_discovery.py
similarity index 97%
rename from ironic_tempest_plugin/tests/test_discovery.py
rename to ironic_tempest_plugin/tests/scenario/test_introspection_discovery.py
index f222810..8760dd2 100644
--- a/ironic_tempest_plugin/tests/test_discovery.py
+++ b/ironic_tempest_plugin/tests/scenario/test_introspection_discovery.py
@@ -12,19 +12,19 @@
 
 import six
 
-from ironic_tempest_plugin.tests.scenario import baremetal_manager
 from tempest import config
 from tempest.lib import decorators
 from tempest import test  # noqa
 
-from ironic_inspector.test.inspector_tempest_plugin.tests import manager
+from ironic_tempest_plugin.tests.scenario import baremetal_manager
+from ironic_tempest_plugin.tests.scenario import introspection_manager
 
 CONF = config.CONF
 
 ProvisionStates = baremetal_manager.BaremetalProvisionStates
 
 
-class InspectorDiscoveryTest(manager.InspectorScenarioTest):
+class InspectorDiscoveryTest(introspection_manager.InspectorScenarioTest):
     @classmethod
     def skip_checks(cls):
         super(InspectorDiscoveryTest, cls).skip_checks()
