diff --git a/dubbot.module b/dubbot.module
index 5c977ef..b2fa064 100644
--- a/dubbot.module
+++ b/dubbot.module
@@ -4,48 +4,24 @@
  * @file
  * Primary module hooks for DubBot module.
  */
-
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\dubbot\Hook\DubbotHooks;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl;
 
 /**
  * Implements hook_theme().
  */
+#[LegacyHook]
 function dubbot_theme(): array {
-  return [
-    'dubbot_svg_icon' => [
-      'variables' => [
-        'color' => '#000000',
-      ],
-    ],
-  ];
+  return \Drupal::service(DubbotHooks::class)->theme();
 }
 
 /**
  * Implements hook_dubbot_domains_alter().
  */
-function dubbot_dubbot_domains_alter(&$domains): void {
-  if (!\Drupal::moduleHandler()->moduleExists('language')) {
-    return;
-  }
-
-  $negotiator = \Drupal::service('language_negotiator');
-  if (!$negotiator->isNegotiationMethodEnabled('language-url', LanguageInterface::TYPE_INTERFACE)) {
-    return;
-  }
-
-  $config = \Drupal::config('language.negotiation')->get('url');
-  if ($config['source'] !== LanguageNegotiationUrl::CONFIG_DOMAIN) {
-    return;
-  }
-
-  $scheme = \Drupal::request()->getScheme();
-
-  array_walk($config['domains'], function ($domain) use (&$domains, $scheme) {
-    $new_domain = $scheme . '://' . $domain;
-
-    if (!in_array($new_domain, $domains)) {
-      $domains[] = $new_domain;
-    }
-  });
+#[LegacyHook]
+function dubbot_dubbot_domains_alter(&$domains): void
+{
+    \Drupal::service(DubbotHooks::class)->dubbotDomainsAlter($domains);
 }
diff --git a/dubbot.services.yml b/dubbot.services.yml
index 6a7fc9f..fd6ed99 100644
--- a/dubbot.services.yml
+++ b/dubbot.services.yml
@@ -10,3 +10,7 @@ services:
   dubbot.domain_negotiator:
     class: Drupal\dubbot\DomainNegotiator
     arguments: ['@request_stack', '@module_handler']
+
+  Drupal\dubbot\Hook\DubbotHooks:
+    class: Drupal\dubbot\Hook\DubbotHooks
+    autowire: true
diff --git a/modules/dubbot_toolbar/dubbot_toolbar.module b/modules/dubbot_toolbar/dubbot_toolbar.module
index 04abfe9..93ab955 100644
--- a/modules/dubbot_toolbar/dubbot_toolbar.module
+++ b/modules/dubbot_toolbar/dubbot_toolbar.module
@@ -4,13 +4,14 @@
  * @file
  * Primary module hooks for DubBot Toolbar module.
  */
-
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\dubbot_toolbar\Hook\DubbotToolbarHooks;
 use Drupal\dubbot_toolbar\ToolbarHandler;
 
 /**
  * Implements hook_toolbar().
  */
+#[LegacyHook]
 function dubbot_toolbar_toolbar() {
-  return \Drupal::classResolver(ToolbarHandler::class)
-    ->toolbar();
+  return \Drupal::service(DubbotToolbarHooks::class)->toolbar();
 }
diff --git a/modules/dubbot_toolbar/dubbot_toolbar.services.yml b/modules/dubbot_toolbar/dubbot_toolbar.services.yml
new file mode 100644
index 0000000..e8c444f
--- /dev/null
+++ b/modules/dubbot_toolbar/dubbot_toolbar.services.yml
@@ -0,0 +1,5 @@
+
+services:
+  Drupal\dubbot_toolbar\Hook\DubbotToolbarHooks:
+    class: Drupal\dubbot_toolbar\Hook\DubbotToolbarHooks
+    autowire: true
diff --git a/modules/dubbot_toolbar/src/Hook/DubbotToolbarHooks.php b/modules/dubbot_toolbar/src/Hook/DubbotToolbarHooks.php
new file mode 100644
index 0000000..34dd6de
--- /dev/null
+++ b/modules/dubbot_toolbar/src/Hook/DubbotToolbarHooks.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace Drupal\dubbot_toolbar\Hook;
+
+use Drupal\dubbot_toolbar\ToolbarHandler;
+use Drupal\Core\Hook\Attribute\Hook;
+/**
+ * Hook implementations for dubbot_toolbar.
+ */
+class DubbotToolbarHooks
+{
+    /**
+     * Implements hook_toolbar().
+     */
+    #[Hook('toolbar')]
+    public static function toolbar()
+    {
+        return \Drupal::classResolver(\Drupal\dubbot_toolbar\ToolbarHandler::class)->toolbar();
+    }
+}
diff --git a/modules/dubbot_toolbar/tests/src/Unit/ToolbarHandlerTest.php b/modules/dubbot_toolbar/tests/src/Unit/ToolbarHandlerTest.php
index 93bc949..86a97b1 100644
--- a/modules/dubbot_toolbar/tests/src/Unit/ToolbarHandlerTest.php
+++ b/modules/dubbot_toolbar/tests/src/Unit/ToolbarHandlerTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\dubbot_toolbar\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
 use Drupal\Core\Link;
 use Drupal\Core\Url;
 use Drupal\dubbot_toolbar\ToolbarHandler;
@@ -11,6 +12,7 @@ use Drupal\Tests\UnitTestCase;
  * @covers \Drupal\dubbot_toolbar\ToolbarHandler
  * @group dubbot
  */
+#[Group('dubbot')]
 class ToolbarHandlerTest extends UnitTestCase {
 
   /**
diff --git a/src/Client.php b/src/Client.php
index 71dbb39..db43be0 100644
--- a/src/Client.php
+++ b/src/Client.php
@@ -129,7 +129,7 @@ class Client implements ClientInterface {
    * @return string|null
    *   The endpoint URL for the given path. NULL if unable to build it.
    */
-  protected function buildUrl(string $path, array $query = [], string $embed_key = NULL): ?string {
+  protected function buildUrl(string $path, array $query = [], ?string $embed_key = NULL): ?string {
     if (!isset($embed_key)) {
       $embed_key = $this->dubbotEmbedKey();
       if (empty($embed_key)) {
diff --git a/src/DubBotEmbedJsonResponse.php b/src/DubBotEmbedJsonResponse.php
index dec7a38..420e2b8 100644
--- a/src/DubBotEmbedJsonResponse.php
+++ b/src/DubBotEmbedJsonResponse.php
@@ -59,7 +59,7 @@ final class DubBotEmbedJsonResponse {
    * @param string|null $error
    *   (Optional) The error message.
    */
-  public function __construct(int $code, string $page_id = NULL, int $issues_count = NULL, \DateTime $crawled_at = NULL, string $error = NULL) {
+  public function __construct(int $code, ?string $page_id = NULL, ?int $issues_count = NULL, ?\DateTime $crawled_at = NULL, ?string $error = NULL) {
     $this->code = $code;
     $this->pageId = $page_id;
     $this->issuesCount = $issues_count;
diff --git a/src/Hook/DubbotHooks.php b/src/Hook/DubbotHooks.php
new file mode 100644
index 0000000..eea6ab6
--- /dev/null
+++ b/src/Hook/DubbotHooks.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace Drupal\dubbot\Hook;
+
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl;
+use Drupal\Core\Hook\Attribute\Hook;
+/**
+ * Hook implementations for dubbot.
+ */
+class DubbotHooks
+{
+    /**
+     * Implements hook_theme().
+     */
+    #[Hook('theme')]
+    public static function theme(): array
+    {
+        return [
+            'dubbot_svg_icon' => [
+                'variables' => [
+                    'color' => '#000000',
+                ],
+            ],
+        ];
+    }
+    /**
+     * Implements hook_dubbot_domains_alter().
+     */
+    #[Hook('dubbot_domains_alter')]
+    public static function dubbotDomainsAlter(&$domains): void
+    {
+        if (!\Drupal::moduleHandler()->moduleExists('language')) {
+            return;
+        }
+        $negotiator = \Drupal::service('language_negotiator');
+        if (!$negotiator->isNegotiationMethodEnabled('language-url', \Drupal\Core\Language\LanguageInterface::TYPE_INTERFACE)) {
+            return;
+        }
+        $config = \Drupal::config('language.negotiation')->get('url');
+        if ($config['source'] !== \Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl::CONFIG_DOMAIN) {
+            return;
+        }
+        $scheme = \Drupal::request()->getScheme();
+        array_walk($config['domains'], function ($domain) use (&$domains, $scheme) {
+            $new_domain = $scheme . '://' . $domain;
+            if (!in_array($new_domain, $domains)) {
+                $domains[] = $new_domain;
+            }
+        });
+    }
+}
diff --git a/src/RequirementsHandler.php b/src/RequirementsHandler.php
index babaaca..2c85cd0 100644
--- a/src/RequirementsHandler.php
+++ b/src/RequirementsHandler.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\dubbot;
 
+use Drupal\Component\Utility\DeprecationHelper;
+use Drupal\Core\Extension\Requirement\RequirementSeverity;
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Link;
@@ -60,7 +62,7 @@ class RequirementsHandler implements ContainerInjectionInterface {
     }
 
     $description = $this->t('DubBot Embed key can be set from the @link.', ['@link' => Link::createFromRoute('DubBot settings page', 'dubbot.settings')->toString()]);
-    $severity = REQUIREMENT_INFO;
+    $severity = DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '11.2.0', fn() => RequirementSeverity::Info, fn() => REQUIREMENT_INFO);
     $key = $this->dubbotEmbedKey();
 
     if (!$key) {
@@ -70,16 +72,16 @@ class RequirementsHandler implements ContainerInjectionInterface {
       try {
         if ($this->dubbotClient->isValidEmbedKey($key)) {
           $value = $this->t('Valid DubBot Embed key set.');
-          $severity = REQUIREMENT_OK;
+          $severity = DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '11.2.0', fn() => RequirementSeverity::OK, fn() => REQUIREMENT_OK);
         }
         else {
           $value = $this->t('Invalid DubBot Embed key set.');
-          $severity = REQUIREMENT_ERROR;
+          $severity = DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '11.2.0', fn() => RequirementSeverity::Error, fn() => REQUIREMENT_ERROR);
         }
       }
       catch (\Exception $e) {
         $value = $this->t('Unable to validate the embed key. Please try again or contact the site administrator.');
-        $severity = REQUIREMENT_WARNING;
+        $severity = DeprecationHelper::backwardsCompatibleCall(\Drupal::VERSION, '11.2.0', fn() => RequirementSeverity::Warning, fn() => REQUIREMENT_WARNING);
       }
     }
 
diff --git a/tests/dubbot_test/dubbot_test.module b/tests/dubbot_test/dubbot_test.module
index 3fad070..0323c2e 100644
--- a/tests/dubbot_test/dubbot_test.module
+++ b/tests/dubbot_test/dubbot_test.module
@@ -1,14 +1,17 @@
 <?php
 
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\dubbot_test\Hook\DubbotTestHooks;
+
 /**
  * @file
  * Primary module hooks for DubBot test module.
  */
-
 /**
  * Implements hook_dubbot_domains_alter().
  */
-function dubbot_test_dubbot_domains_alter(&$domains): void {
-  $domains[] = 'http://foo.com';
-  $domains[] = 'https://bar.com';
+#[LegacyHook]
+function dubbot_test_dubbot_domains_alter(&$domains): void
+{
+    \Drupal::service(DubbotTestHooks::class)->dubbotDomainsAlter($domains);
 }
diff --git a/tests/dubbot_test/dubbot_test.services.yml b/tests/dubbot_test/dubbot_test.services.yml
index cb6625f..e92c8b3 100644
--- a/tests/dubbot_test/dubbot_test.services.yml
+++ b/tests/dubbot_test/dubbot_test.services.yml
@@ -2,3 +2,7 @@ services:
   dubbot_test.http_client:
     decorates: 'http_client'
     class: 'Drupal\dubbot_test\MockHttpClient'
+
+  Drupal\dubbot_test\Hook\DubbotTestHooks:
+    class: Drupal\dubbot_test\Hook\DubbotTestHooks
+    autowire: true
diff --git a/tests/dubbot_test/src/Hook/DubbotTestHooks.php b/tests/dubbot_test/src/Hook/DubbotTestHooks.php
new file mode 100644
index 0000000..942ef03
--- /dev/null
+++ b/tests/dubbot_test/src/Hook/DubbotTestHooks.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Drupal\dubbot_test\Hook;
+
+use Drupal\Core\Hook\Attribute\Hook;
+/**
+ * Hook implementations for dubbot_test.
+ */
+class DubbotTestHooks
+{
+    /**
+     * @file
+     * Primary module hooks for DubBot test module.
+     */
+    /**
+     * Implements hook_dubbot_domains_alter().
+     */
+    #[Hook('dubbot_domains_alter')]
+    public static function dubbotDomainsAlter(&$domains): void
+    {
+        $domains[] = 'http://foo.com';
+        $domains[] = 'https://bar.com';
+    }
+}
diff --git a/tests/src/Functional/DomainNegotiatorAlterTest.php b/tests/src/Functional/DomainNegotiatorAlterTest.php
index 51be482..e4be791 100644
--- a/tests/src/Functional/DomainNegotiatorAlterTest.php
+++ b/tests/src/Functional/DomainNegotiatorAlterTest.php
@@ -2,12 +2,16 @@
 
 namespace Drupal\Tests\dubbot\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\Tests\BrowserTestBase;
 
 /**
  * @covers \Drupal\dubbot\DomainNegotiator
  * @group dubbot
  */
+#[Group('dubbot')]
+#[RunTestsInSeparateProcesses]
 class DomainNegotiatorAlterTest extends BrowserTestBase {
 
   /**
diff --git a/tests/src/Functional/DubBotOverviewControllerTest.php b/tests/src/Functional/DubBotOverviewControllerTest.php
index 6b586cf..79bb391 100644
--- a/tests/src/Functional/DubBotOverviewControllerTest.php
+++ b/tests/src/Functional/DubBotOverviewControllerTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\dubbot\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Messenger\MessengerInterface;
 use Drupal\dubbot\ClientInterface;
@@ -12,6 +14,8 @@ use Drupal\Tests\BrowserTestBase;
  * @covers \Drupal\dubbot\Controller\DubBotOverviewController
  * @group dubbot
  */
+#[Group('dubbot')]
+#[RunTestsInSeparateProcesses]
 class DubBotOverviewControllerTest extends BrowserTestBase {
 
   /**
diff --git a/tests/src/Functional/DubBotReportBlockTest.php b/tests/src/Functional/DubBotReportBlockTest.php
index fc0dda0..28ef0ec 100644
--- a/tests/src/Functional/DubBotReportBlockTest.php
+++ b/tests/src/Functional/DubBotReportBlockTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\dubbot\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\Core\Messenger\MessengerInterface;
 use Drupal\dubbot\ClientInterface;
 use Drupal\dubbot_test\MockHttpClient;
@@ -11,6 +13,8 @@ use Drupal\Tests\BrowserTestBase;
  * @covers \Drupal\dubbot\Plugin\Block\DubBotReportBlock
  * @group dubbot
  */
+#[Group('dubbot')]
+#[RunTestsInSeparateProcesses]
 class DubBotReportBlockTest extends BrowserTestBase {
 
   /**
diff --git a/tests/src/Functional/SettingsFormTest.php b/tests/src/Functional/SettingsFormTest.php
index 6588f42..5a72110 100644
--- a/tests/src/Functional/SettingsFormTest.php
+++ b/tests/src/Functional/SettingsFormTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\dubbot\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\dubbot_test\MockHttpClient;
 use Drupal\Tests\BrowserTestBase;
 use GuzzleHttp\Psr7\Response;
@@ -10,6 +12,8 @@ use GuzzleHttp\Psr7\Response;
  * @covers \Drupal\dubbot\Form\SettingsForm
  * @group dubbot
  */
+#[Group('dubbot')]
+#[RunTestsInSeparateProcesses]
 class SettingsFormTest extends BrowserTestBase {
 
   /**
diff --git a/tests/src/Kernel/DubBotIconControllerTest.php b/tests/src/Kernel/DubBotIconControllerTest.php
index 511ddf2..40d8796 100644
--- a/tests/src/Kernel/DubBotIconControllerTest.php
+++ b/tests/src/Kernel/DubBotIconControllerTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\dubbot\Kernel;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\Core\Cache\Cache;
 use Drupal\dubbot\Controller\DubBotIconController;
 use Drupal\KernelTests\KernelTestBase;
@@ -10,6 +12,8 @@ use Drupal\KernelTests\KernelTestBase;
  * @covers \Drupal\dubbot\Controller\DubBotIconController
  * @group dubbot
  */
+#[Group('dubbot')]
+#[RunTestsInSeparateProcesses]
 class DubBotIconControllerTest extends KernelTestBase {
 
   /**
diff --git a/tests/src/Unit/DomainNegotiatorTest.php b/tests/src/Unit/DomainNegotiatorTest.php
index 7ac5395..e569559 100644
--- a/tests/src/Unit/DomainNegotiatorTest.php
+++ b/tests/src/Unit/DomainNegotiatorTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\dubbot\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
 use Drupal\dubbot\DomainNegotiator;
 use Drupal\Tests\UnitTestCase;
 
@@ -9,6 +10,7 @@ use Drupal\Tests\UnitTestCase;
  * @covers \Drupal\dubbot\DomainNegotiator
  * @group dubbot
  */
+#[Group('dubbot')]
 class DomainNegotiatorTest extends UnitTestCase {
 
   /**
diff --git a/tests/src/Unit/DubBotClientTest.php b/tests/src/Unit/DubBotClientTest.php
index 24bdd2d..7834ee5 100644
--- a/tests/src/Unit/DubBotClientTest.php
+++ b/tests/src/Unit/DubBotClientTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\dubbot\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\DataProvider;
 use Drupal\dubbot\Client;
 use Drupal\Tests\UnitTestCase;
 use GuzzleHttp\Client as HttpClient;
@@ -16,6 +18,7 @@ use Prophecy\Argument;
  * @covers \Drupal\dubbot\Client
  * @group dubbot
  */
+#[Group('dubbot')]
 class DubBotClientTest extends UnitTestCase {
 
   /**
@@ -106,6 +109,7 @@ class DubBotClientTest extends UnitTestCase {
    *
    * @dataProvider dataProviderTestIsEnabled
    */
+  #[DataProvider('dataProviderTestIsEnabled')]
   public function testIsEnabled($values, $responses, $expected): void {
     $this->cacheBackend->expects($this->exactly(count($values)))
       ->method('get')
diff --git a/tests/src/Unit/DubBotEmbedJsonResponseTest.php b/tests/src/Unit/DubBotEmbedJsonResponseTest.php
index 08a40e6..d600f2f 100644
--- a/tests/src/Unit/DubBotEmbedJsonResponseTest.php
+++ b/tests/src/Unit/DubBotEmbedJsonResponseTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\dubbot\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
 use Drupal\Component\Serialization\Json;
 use Drupal\dubbot\DubBotEmbedJsonResponse;
 use Drupal\Tests\UnitTestCase;
@@ -11,6 +12,7 @@ use GuzzleHttp\Psr7\Response;
  * @covers \Drupal\dubbot\DubBotEmbedJsonResponse
  * @group dubbot
  */
+#[Group('dubbot')]
 class DubBotEmbedJsonResponseTest extends UnitTestCase {
 
   /**
diff --git a/tests/src/Unit/DubBotPageJsonResponseTest.php b/tests/src/Unit/DubBotPageJsonResponseTest.php
index aed9143..17a463b 100644
--- a/tests/src/Unit/DubBotPageJsonResponseTest.php
+++ b/tests/src/Unit/DubBotPageJsonResponseTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\dubbot\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
 use Drupal\dubbot\DubBotPageJsonResponse;
 use Drupal\Tests\UnitTestCase;
 
@@ -9,6 +10,7 @@ use Drupal\Tests\UnitTestCase;
  * @covers \Drupal\dubbot\DubBotPageJsonResponse
  * @group dubbot
  */
+#[Group('dubbot')]
 class DubBotPageJsonResponseTest extends UnitTestCase {
 
   /**
diff --git a/tests/src/Unit/DubBotPagesJsonResponseTest.php b/tests/src/Unit/DubBotPagesJsonResponseTest.php
index 67984ba..5cd317d 100644
--- a/tests/src/Unit/DubBotPagesJsonResponseTest.php
+++ b/tests/src/Unit/DubBotPagesJsonResponseTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\dubbot\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
 use Drupal\Component\Serialization\Json;
 use Drupal\dubbot\DubBotPageJsonResponse;
 use Drupal\dubbot\DubBotPagesJsonResponse;
@@ -12,6 +13,7 @@ use GuzzleHttp\Psr7\Response;
  * @covers \Drupal\dubbot\DubBotPagesJsonResponse
  * @group dubbot
  */
+#[Group('dubbot')]
 class DubBotPagesJsonResponseTest extends UnitTestCase {
 
   /**
diff --git a/tests/src/Unit/DubBotReportControllerTest.php b/tests/src/Unit/DubBotReportControllerTest.php
index 58f1842..95df083 100644
--- a/tests/src/Unit/DubBotReportControllerTest.php
+++ b/tests/src/Unit/DubBotReportControllerTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\dubbot\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\DataProvider;
 use Drupal\Component\Utility\UrlHelper;
 use Drupal\dubbot\ClientInterface;
 use Drupal\dubbot\Controller\DubBotReportController;
@@ -13,6 +15,7 @@ use Symfony\Component\DependencyInjection\ContainerBuilder;
  * @covers \Drupal\dubbot\Controller\DubBotReportController
  * @group dubbot
  */
+#[Group('dubbot')]
 class DubBotReportControllerTest extends UnitTestCase {
 
   /**
@@ -97,6 +100,7 @@ class DubBotReportControllerTest extends UnitTestCase {
    *
    * @dataProvider dataProviderTestAccess
    */
+  #[DataProvider('dataProviderTestAccess')]
   public function testAccess($enabled, $permission, $page_id, $allowed): void {
     $this->dubbotClient->expects($this->once())
       ->method('isEnabled')
diff --git a/tests/src/Unit/LikGeneratorTest.php b/tests/src/Unit/LikGeneratorTest.php
index 599c098..899514b 100644
--- a/tests/src/Unit/LikGeneratorTest.php
+++ b/tests/src/Unit/LikGeneratorTest.php
@@ -2,6 +2,7 @@
 
 namespace src\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
 use Drupal\dubbot\DubBotEmbedJsonResponse;
 use Drupal\dubbot\LinkGenerator;
 use Drupal\Tests\UnitTestCase;
@@ -11,6 +12,7 @@ use Symfony\Component\HttpFoundation\Request;
  * @covers \Drupal\dubbot\LinkGenerator
  * @group dubbot
  */
+#[Group('dubbot')]
 class LikGeneratorTest extends UnitTestCase {
 
   /**
@@ -56,7 +58,7 @@ class LikGeneratorTest extends UnitTestCase {
 
     $this->dubbotClient->expects($this->any())
       ->method('reportByUrl')
-      ->will($this->returnValueMap([
+      ->willReturnMap([
         [
           'https://example.com',
           new DubBotEmbedJsonResponse(200, $this->randomMachineName(), 0),
@@ -69,7 +71,7 @@ class LikGeneratorTest extends UnitTestCase {
           'https://invalid-example.com',
           new DubBotEmbedJsonResponse(404),
         ],
-      ]));
+      ]);
 
     $this->configFactory = $this->getConfigFactoryStub([
       'dubbot.settings' => [
diff --git a/tests/src/Unit/RequirementsHandlerTest.php b/tests/src/Unit/RequirementsHandlerTest.php
index 16189b6..a1e5cdf 100644
--- a/tests/src/Unit/RequirementsHandlerTest.php
+++ b/tests/src/Unit/RequirementsHandlerTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\dubbot\Unit;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\DataProvider;
 use Drupal\Component\Utility\Html;
 use Drupal\Core\Link;
 use Drupal\Core\StringTranslation\TranslatableMarkup;
@@ -16,6 +18,7 @@ use Symfony\Component\DependencyInjection\ContainerBuilder;
  * @covers \Drupal\dubbot\RequirementsHandler
  * @group dubbot
  */
+#[Group('dubbot')]
 class RequirementsHandlerTest extends UnitTestCase {
 
   /**
@@ -79,6 +82,7 @@ class RequirementsHandlerTest extends UnitTestCase {
    *
    * @dataProvider providerTestValidEmbedKey
    */
+  #[DataProvider('providerTestValidEmbedKey')]
   public function testValidEmbedKey($value, $severity, $client_response): void {
     $this->assertTrue(TRUE);
     $expected = [
