diff --git a/src/Form/FormsStepsEditForm.php b/src/Form/FormsStepsEditForm.php
index 102d14e..8797752 100644
--- a/src/Form/FormsStepsEditForm.php
+++ b/src/Form/FormsStepsEditForm.php
@@ -260,11 +260,11 @@ class FormsStepsEditForm extends EntityForm {
         }
 
         // Defines link.
-        if (empty($progress_step->link())) {
+        if (empty($progress_step->toLink()->toString())) {
           $link = $this->t('No link defined');
         }
         else {
-          $step_id = $progress_step->link();
+          $step_id = $progress_step->toLink()->toString();
           $link = $forms_steps->getStep($step_id)->label();
         }
 
diff --git a/src/Form/FormsStepsProgressStepEditForm.php b/src/Form/FormsStepsProgressStepEditForm.php
index 3736a4c..423f415 100644
--- a/src/Form/FormsStepsProgressStepEditForm.php
+++ b/src/Form/FormsStepsProgressStepEditForm.php
@@ -100,7 +100,7 @@ class FormsStepsProgressStepEditForm extends EntityForm {
         '#description' => $this->t('Select the step for which the current progress step should redirect on click. Leave empty for no link on this progress step.'),
         '#empty_option' => $this->t('- None -'),
         '#options' => $options,
-        '#default_value' => $progress_step->link(),
+        '#default_value' => $progress_step->toLink()->toString(),
       ];
 
       $form['link_visibility'] = [
diff --git a/src/Plugin/Block/FormsStepsProgressBarBlock.php b/src/Plugin/Block/FormsStepsProgressBarBlock.php
index 63534ab..1829423 100644
--- a/src/Plugin/Block/FormsStepsProgressBarBlock.php
+++ b/src/Plugin/Block/FormsStepsProgressBarBlock.php
@@ -145,7 +145,7 @@ class FormsStepsProgressBarBlock extends BlockBase implements ContainerFactoryPl
                 $saved_steps_flat[$saved_step_next->id()] = $saved_step_next->id();
               }
             }
-            $link_visibility_check = !in_array($progress_step->link(), $saved_steps_flat);
+            $link_visibility_check = !in_array($progress_step->toLink()->toString(), $saved_steps_flat);
           }
           else {
             $link_visibility_check = !in_array($step->id(), $link_visibility);
@@ -154,11 +154,11 @@ class FormsStepsProgressBarBlock extends BlockBase implements ContainerFactoryPl
           // Display a simple label or the link.
           // @todo Manage the specific case of "No workflow instance id" for
           // the first step to avoid having no links at all on this step.
-          if (empty($progress_step->link()) || $link_visibility_check || empty($instanceId)) {
+          if (empty($progress_step->toLink()->toString()) || $link_visibility_check || empty($instanceId)) {
             $item['#markup'] = $this->t($progress_step->label());
           }
           else {
-            $link_step = $forms_steps->getStep($progress_step->link());
+            $link_step = $forms_steps->getStep($progress_step->toLink()->toString());
             $options = [];
             if ($instanceId) {
               $options['instance_id'] = $instanceId;
diff --git a/tests/src/Functional/FormsStepsNavigationTest.php b/tests/src/Functional/FormsStepsNavigationTest.php
index d504622..e6ef25b 100644
--- a/tests/src/Functional/FormsStepsNavigationTest.php
+++ b/tests/src/Functional/FormsStepsNavigationTest.php
@@ -29,7 +29,7 @@ class FormsStepsNavigationTest extends BrowserTestBase {
    *
    * @var array
    */
-  public static $modules = [
+  protected static $modules = [
     'node',
     'entity_test',
     'field',
@@ -40,7 +40,7 @@ class FormsStepsNavigationTest extends BrowserTestBase {
   /**
    * Setup the env for current test using trait methods.
    */
-  protected function setUp() {
+  protected function setUp(): void {
     parent::setUp();
 
     $this->formsStepsSetup();
@@ -65,7 +65,7 @@ class FormsStepsNavigationTest extends BrowserTestBase {
       ->pageTextContains($this->data['forms_steps']['steps'][1]['label']);
 
     $value = 'This is an article Test Titre content';
-    $this->drupalPostForm(NULL, [
+    $this->submitForm([
       'title[0][value]' => $value,
     ], t('Save'));
 
@@ -76,7 +76,7 @@ class FormsStepsNavigationTest extends BrowserTestBase {
     $this->assertSession()->pageTextContains($value);
 
     $value2 = 'This is an article Test Titre content 2';
-    $this->drupalPostForm(NULL, [
+    $this->submitForm([
       'title[0][value]' => $value2,
     ], t('Save'));
 
@@ -86,7 +86,7 @@ class FormsStepsNavigationTest extends BrowserTestBase {
     $this->assertStringContainsStringIgnoringCase($this->data['forms_steps']['steps'][3]['url'], $this->getUrl());
 
     $value3 = 'This is a page Test Titre content';
-    $this->drupalPostForm(NULL, [
+    $this->submitForm([
       'title[0][value]' => $value3,
     ], t('Save'));
 
@@ -99,19 +99,19 @@ class FormsStepsNavigationTest extends BrowserTestBase {
     $this->assertSession()->fieldValueEquals('title[0][value]', $value2);
 
     // Access step 3.
-    $this->drupalPostForm(NULL, [], 'Previous');
+    $this->submitForm([], 'Previous');
     $this->assertSession()
       ->pageTextContains($this->data['forms_steps']['steps'][3]['label']);
     $this->assertSession()->fieldValueEquals('title[0][value]', $value3);
 
     // Access step 2.
-    $this->drupalPostForm(NULL, [], 'Previous');
+    $this->submitForm([], 'Previous');
     $this->assertSession()
       ->pageTextContains($this->data['forms_steps']['steps'][2]['label']);
     $this->assertSession()->fieldValueEquals('title[0][value]', $value2);
 
     // Access step 1.
-    $this->drupalPostForm(NULL, [], 'Previous');
+    $this->submitForm([], 'Previous');
     $this->assertSession()
       ->pageTextContains($this->data['forms_steps']['steps'][1]['label']);
     $this->assertSession()->fieldValueEquals('title[0][value]', $value2);
diff --git a/tests/src/Functional/FormsStepsTest.php b/tests/src/Functional/FormsStepsTest.php
index 271dfef..89e4881 100644
--- a/tests/src/Functional/FormsStepsTest.php
+++ b/tests/src/Functional/FormsStepsTest.php
@@ -29,7 +29,7 @@ class FormsStepsTest extends BrowserTestBase {
    *
    * @var array
    */
-  public static $modules = [
+  protected static $modules = [
     'node',
     'field',
     'field_ui',
@@ -39,7 +39,7 @@ class FormsStepsTest extends BrowserTestBase {
   /**
    * Perform initial setup tasks that run before every test method.
    */
-  public function setUp() {
+  public function setUp(): void {
     parent::setUp();
 
     $this->formsStepsSetup();
@@ -65,7 +65,7 @@ class FormsStepsTest extends BrowserTestBase {
       );
       $this->assertSession()->statusCodeEquals(200);
       // Add a form mode.
-      $this->drupalPostForm(NULL, [
+      $this->submitForm([
         'label' => $form_display_mode['label'],
         'id' => $form_display_mode['id'],
       ], t('Save'));
@@ -103,7 +103,7 @@ class FormsStepsTest extends BrowserTestBase {
 
     // Activate Test Form Modes as a custom display mode.
     foreach ($this->data['form_display_modes'] as $form_display_mode) {
-      $this->drupalPostForm(NULL, [
+      $this->submitForm([
         "display_modes_custom[${form_display_mode['id']}]" => $form_display_mode['id'],
       ], t('Save'));
 
@@ -122,7 +122,7 @@ class FormsStepsTest extends BrowserTestBase {
       'form_mode_name' => $form_display_mode['id'],
     ]));
     $this->assertSession()->statusCodeEquals(200);
-    $this->drupalPostForm(NULL, [
+    $this->submitForm([
       'fields[title][region]' => 'content',
       'fields[body][region]' => 'hidden',
       'fields[status][region]' => 'hidden',
@@ -136,7 +136,7 @@ class FormsStepsTest extends BrowserTestBase {
     $this->drupalGet(Url::fromRoute('entity.forms_steps.add_form'));
     $this->assertSession()->statusCodeEquals(200);
     // Test the creation of a form step.
-    $this->drupalPostForm(NULL, [
+    $this->submitForm([
       'label' => $this->data['forms_steps']['label'],
       'id' => $this->data['forms_steps']['id'],
       'description' => $this->data['forms_steps']['description'],
@@ -157,7 +157,7 @@ class FormsStepsTest extends BrowserTestBase {
       $this->assertSession()->statusCodeEquals(200);
 
       // Test the creation of an add step.
-      $this->drupalPostForm(NULL, [
+      $this->submitForm([
         'label' => $step['label'],
         'id' => $step['id'],
         'target_form_mode' => $step['target_form_mode'],
@@ -186,7 +186,7 @@ class FormsStepsTest extends BrowserTestBase {
       ->pageTextContains($this->data['forms_steps']['steps'][1]['label']);
 
     $value = 'This is a Test Titre content';
-    $this->drupalPostForm(NULL, [
+    $this->submitForm([
       'title[0][value]' => $value,
     ], t('Save'));
 
diff --git a/tests/src/Kernel/KernelTestBase.php b/tests/src/Kernel/KernelTestBase.php
index 8237219..addb062 100644
--- a/tests/src/Kernel/KernelTestBase.php
+++ b/tests/src/Kernel/KernelTestBase.php
@@ -16,7 +16,7 @@ abstract class KernelTestBase {
    *
    * @var array
    */
-  public static $modules = ['forms_steps', 'user'];
+  protected static $modules = ['forms_steps', 'user'];
 
   /**
    * Setup the env for current test using trait methods.
diff --git a/tests/src/Traits/FormsStepsTestTrait.php b/tests/src/Traits/FormsStepsTestTrait.php
index 037adc9..0761151 100644
--- a/tests/src/Traits/FormsStepsTestTrait.php
+++ b/tests/src/Traits/FormsStepsTestTrait.php
@@ -123,14 +123,10 @@ trait FormsStepsTestTrait {
       );
 
       // Add a form mode.
-      $this->drupalPostForm(
-        NULL,
-        [
-          'label' => $form_display_mode['label'],
-          'id' => $form_display_mode['id'],
-        ],
-        t('Save')
-      );
+      $this->submitForm([
+        'label' => $form_display_mode['label'],
+        'id' => $form_display_mode['id'],
+      ], t('Save'));
 
       Role::load($this->user->getRoles()[1])
         ->grantPermission('use node.' . $form_display_mode['id'] . ' form mode')
@@ -162,13 +158,9 @@ trait FormsStepsTestTrait {
 
     // Activate Test Form Modes as a custom display mode.
     foreach ($this->data['form_display_modes'] as $form_display_mode) {
-      $this->drupalPostForm(
-        NULL,
-        [
-          "display_modes_custom[${form_display_mode['id']}]" => $form_display_mode['id'],
-        ],
-        t('Save')
-      );
+      $this->submitForm([
+        "display_modes_custom[${form_display_mode['id']}]" => $form_display_mode['id'],
+      ], t('Save'));
     }
 
     // Configure the visible fields.
@@ -182,33 +174,25 @@ trait FormsStepsTestTrait {
       )
     );
 
-    $this->drupalPostForm(
-      NULL,
-      [
-        'fields[title][region]' => 'content',
-        'fields[body][region]' => 'hidden',
-        'fields[status][region]' => 'hidden',
-        'fields[uid][region]' => 'hidden',
-        'fields[created][region]' => 'hidden',
-        'fields[promote][region]' => 'hidden',
-        'fields[sticky][region]' => 'hidden',
-      ],
-      t('Save')
-    );
+    $this->submitForm([
+      'fields[title][region]' => 'content',
+      'fields[body][region]' => 'hidden',
+      'fields[status][region]' => 'hidden',
+      'fields[uid][region]' => 'hidden',
+      'fields[created][region]' => 'hidden',
+      'fields[promote][region]' => 'hidden',
+      'fields[sticky][region]' => 'hidden',
+    ], t('Save'));
 
     // Access forms steps add page.
     $this->drupalGet(Url::fromRoute('entity.forms_steps.add_form'));
 
     // Test the creation of a form step.
-    $this->drupalPostForm(
-      NULL,
-      [
-        'label' => $this->data['forms_steps']['label'],
-        'id' => $this->data['forms_steps']['id'],
-        'description' => $this->data['forms_steps']['description'],
-      ],
-      t('Save')
-    );
+    $this->submitForm([
+      'label' => $this->data['forms_steps']['label'],
+      'id' => $this->data['forms_steps']['id'],
+      'description' => $this->data['forms_steps']['description'],
+    ], t('Save'));
 
     // Perform steps creation.
     foreach ($this->data['forms_steps']['steps'] as $step) {
@@ -223,35 +207,28 @@ trait FormsStepsTestTrait {
       );
 
       // Test the creation of an add step.
-      $this->drupalPostForm(
-        NULL,
-        [
-          'label' => $step['label'],
-          'id' => $step['id'],
-          'target_form_mode' => $step['target_form_mode'],
-          'target_entity_bundle' => $step['target_entity_bundle'],
-          'target_entity_type' => $step['target_entity_type'],
-          'url' => $step['url'],
-        ],
-        t('Save')
-      );
+      $this->submitForm([
+        'label' => $step['label'],
+        'id' => $step['id'],
+        'target_form_mode' => $step['target_form_mode'],
+        'target_entity_bundle' => $step['target_entity_bundle'],
+        'target_entity_type' => $step['target_entity_type'],
+        'url' => $step['url'],
+      ], t('Save'));
 
       if (!is_null($step['previous'])) {
-        // Update step with previous label.
-        $this->drupalPostForm(
-          Url::fromRoute(
-            'entity.forms_steps.edit_step_form',
-            [
-              'forms_steps' => $this->data['forms_steps']['id'],
-              'forms_steps_step' => $step['id'],
-            ]
-          ),
+        $this->drupalGet(Url::fromRoute(
+          'entity.forms_steps.edit_step_form',
           [
-            'display_previous' => TRUE,
-            'previous_label' => $step['previous'],
-          ],
-          t('Save')
-        );
+            'forms_steps' => $this->data['forms_steps']['id'],
+            'forms_steps_step' => $step['id'],
+          ]
+        ));
+        // Update step with previous label.
+        $this->submitForm([
+          'display_previous' => TRUE,
+          'previous_label' => $step['previous'],
+        ], t('Save'));
       }
     }
   }
