Основная идея написания сценариев (функциональное тестирование)? - PullRequest
0 голосов
/ 07 января 2019

Добрый день,

Я размышлял о сущности описания признаков (синтаксис Gherkin) и не могу найти лучший ответ.

Два примера одного и того же сценария:

Scenario: Creation of a new task
Given I see the button for the creation of a new task
 When I click the button in order to create a new task
 Then I see the task editor

Scenario: Creation of a new task
Given I see the button "Create task"
 When I click the button "Create task"
 Then I see page "Task editor" has been opened

вижу основные отличия:

  1. Первый вариант не зависит от интерфейса. Но вы ДОЛЖНЫ использовать селектор или подобное для поиска точного элемента, но тогда вы можете изменить все в интерфейсе, и эти тесты не пройдут (как второй вариант).

  2. Первый вариант НЕ является декларативным. В общем, вы не можете использовать его для описания ДРУГОГО поведения интерфейса.

  3. На мой вкус, второй вариант гораздо проще понять, что происходит в сценарии.

Я думаю, второй вариант гораздо более гибкий и позволяет писать сценарии НАМНОГО быстрее, но в то же время имеет проблемы:

  • Вы ДОЛЖНЫ включить данные интерфейса в сценарии. Это не хорошая практика. Но с помощью этого (гибкости) вы можете описать что-либо для тестирования (например, видимые данные), поэтому такие тесты намного более точны и обеспечивают более высокое качество.

  • Каждый раз, когда вы меняете интерфейс, вам нужно исправить свои тесты.

Итак, вы можете сказать, что вы думаете об этом?

Я думаю, что гибкость, скорость, качество и удобочитаемость (второй вариант) намного лучше, чем у первого варианта (в котором нет ничего, кроме читабельности и «стабильности»?), Но я не уверен. Да, вы помещаете некоторые данные в сценарии, но вы почти НИКОГДА не меняете их, и даже если вы их измените, они могут быть исправлены в секундах / минутах.

Что вы используете в своих проектах и ​​почему?

И главный вопрос: какой вариант лучше?

Скажите, пожалуйста, свои мысли.

1 Ответ

0 голосов
/ 07 января 2019

В нашей текущей компании (десятки услуг, уровень предприятия, написано в BDD) мы начали с первого варианта.

Scenario: Creation of a new task
Given I see the button for the creation of a new task
 When I click the button in order to create a new task
 Then I see the task editor

Мы решили, что это больше ориентировано на бизнес, более наглядно и более понятно.

Но через несколько месяцев реальная жизнь показывает нам, что вторая версия гораздо более гибкая, и работа с этой версией создает меньше проблем.

Наконец, мы переписали все сценарии для второй версии

Scenario: Creation of a new task
Given I see the button "Create task"
 When I click the button "Create task"
 Then I see page "Task editor" has been opened

и мы рады использовать это до сих пор.

Краткое описание : На основании нескольких месяцев использования обеих версий, написанных в команде, с использованием корпоративного программного обеспечения в стиле BDD (сначала тестирует): вторая версия выиграла . Даже если с теорией BDD первая версия может выглядеть лучше.

...