Что такое синтаксис Gherkin и зачем он нужен
Что проверяют
Умеете ли вы формулировать критерии приёмки примерами так, чтобы один и тот же текст читали заказчик, тестировщик и автоматизатор. Аналитика проверяют не на знание ключевых слов, а на способность отделить поведение системы от способа его вызвать.
Как отвечать
Это язык описания поведения примерами, а не язык тестов: сам по себе он ничего не исполняет, исполняются привязанные к шагам функции в инструменте вроде Cucumber и его портов под разные платформы. Ценность в одном тексте, который служит и требованием, и критерием приёмки, и сценарием проверки.
Структура: Feature с целью и выгодой, при необходимости Background с общей предпосылкой, дальше Scenario из шагов Given (состояние до), When (одно действие), Then (проверяемый результат), плюс связки And и But. Повторяющиеся проверки с разными данными выносятся в Scenario Outline с таблицей Examples, что удобно для граничных значений. Есть теги для отбора прогонов и есть русские ключевые слова при указании языка в начале файла.
Функция: Отклик на вакансию
Сценарий: Без резюме отклик не отправляется
Дано пользователь авторизован и резюме не заполнено
Когда он отправляет отклик
Тогда отклик не создан и предложено заполнить резюмеПравило письма одно: описывать намерение, а не клики.
Где спотыкаются
Пишут сценарий как инструкцию по интерфейсу: ввести в поле, нажать кнопку, увидеть надпись. Такой текст бесполезен заказчику и переписывается при первом же изменении вёрстки, хотя поведение системы не менялось.
Складывают в один сценарий несколько действий и проверок. При падении непонятно, какое именно правило нарушено, и сценарий перестаёт быть примером одного поведения, превращаясь в сквозной прогон.
Считают такой текст живой документацией по умолчанию. Живым он становится только когда шаги привязаны к коду и прогоняются на каждой сборке; иначе это обычный документ, который тихо расходится с системой.