Top.Mail.Ru
Заказать консультацию
специалиста 1С
Отправить заявку

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

Gherkin. Технологии разработки TDD и BDD

Воякин Данил Посмотреть все статьи >> Старший программист 1С франчайзинговой сети "ИнфоСофт".
14.11.2022
1635
Время прочтения - 5 мин.
Заказать консультацию

В этой статье пойдет речь о языке сценариев Gherkin и соответствующих техниках тестирования. Говоря о языке, в первую очередь необходимо обозначить методологии тестирования, частью которых Gherkin является.

Эта тема актуальна для разработчиков конфигураций, не знакомых с описанными в материале технологиями. В процессе разработки и сопровождения конфигураций "1С:Предприятия" применение BDD не так распространено, как за его пределами. Однако существуют данные, подтверждающие позитивное влияние методологии на цикл разработки ПО. Статья будет полезна, в том числе разработчикам, не планирующим применять BDD в работе — технология, помимо написания тестов, предлагает иначе взглянуть на архитектуру разрабатываемого проекта.


Технология "Разработки через тестирование" также известна как TDD (англ. Test-driven development). Основной принцип техники заключается в повторяющемся цикле разработки.

1.png

При разработке через тестирование добавление каждой новой функциональности начинается с написание текста. Выполнение написанного теста будет возвращать ошибку, поскольку функциональность ещё не реализована, соответствующий код не написан. Если на данном этапе тест успешно выполняется, этап считается незавершенным. Далее следует написание программного кода для описанного в тесте модуля. Согласно правилам рассматриваемой технологии, код следует писать исключительно до того момента, пока написанный заранее тест успешно не выполнится. Важно писать код, предназначенный именно для прохождения теста. Дальнейшая доработка кода на данном этапе считается излишней.

Только после реализации достаточного для прохождения теста кода начинается следующий этап TDD – рефакторинг, код дорабатывается и оптимизируется.

Далее следует повторение всех этапов для каждого нового программного модуля или изменения до полного выполнения технического задания. На выходе разработчик получает программный код, в котором он полностью уверен, множество тестов для отладки, которые дополнительно могут выступать в качестве технической документации. Также сильной стороной TDD является влияние на архитектуру разрабатываемого по технологии проекта. Чтобы написать тест разработчик должен заранее грамотно сформулировать требования, предъявляемые к новой функциональности .

Главным недостатком технологии TDD принято считать время и объем работ, затрачиваемых на написание тестов. Однако на дальнейших этапах разработки написанные тесты, напротив, экономят время и ресурсы разработчика.


Технология "Разработки через поведение" далее BDD (англ. Behavior-driven development) — расширение методологии TDD, основной идеей которой является совмещение в процессе разработки технических интересов и интересов бизнеса, позволяя персоналу и программистам говорить на одном языке. Для общения между этими группами персонала используется предметно-ориентированный язык, который основывается на конструкциях из естественного языка, понятных неспециалисту. BDD требует, чтобы шаги тестов были целыми предложениями, которые начинаются с глагола в сослагательном наклонении и следовали бизнес целям.

BDD как технология не содержит каких-либо формальный требований к языку сценариев, кроме использование стандартного набора фраз, который описывал бы все спецификации поведения. Однако унификация языка сценариев все же произошла: в 2007 году был предложен шаблон для спецификации, который впоследствии стал известен как язык Gherkin.

Поскольку для платформы «1С:Предприятие» существует решение, использующее Gherkin и реализующее BDD (Vanessa Automation: Автоматическое написание тестов и другие возможности), рассмотрим диалект Gherkin, используемый в Vanessa-Automation.

2.png

  1. Структура документа задается отступами;
  2. Каждый шаг начинается с ключевого слова;
  3. Новый шаг — новая строка.
Подпишитесь на дайджест!
Подпишитесь на дайджест, и получайте ежемесячно подборку полезных статей.

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

Проект языка имеет русскую локализацию. Дополнительно к этому репозиторий Vanessa-Automation на GitHub содержит примеры сценариев как на английском, так и на русском языке.

3.png

Согласно документации проекта Vanessa-Automation:

  • Контекст сценария выполняется всегда перед каждым сценарием;

  • Каждый сценарий состоит из последовательных связанных шагов.

Ключевое слово на английском языке

Русскоязычная адаптация

Описание

Story
(Feature)

История (Функционал)

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

As a

Как (в роли)

Роль того лица в бизнес-модели, которому данная функциональность интересна.

In order to

Чтобы достичь

В краткой форме какие цели преследует лицо.

I want to

Я хочу, чтобы

В краткой форме описывается конечный результат.

Scenario

Сценарий

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

Given

Дано

Начальное условие. Если начальных условий несколько, то каждое новое условие добавляется с новой строки с помощью ключевого слова «И».

When

Когда

Событие, которое инициирует данный сценарий. Если событие нельзя раскрыть одним предложением, то все последующие детали раскрываются через ключевые слова «И» и «Но».

Then

Тогда

Результат, который пользователь должен наблюдать в конечном итоге. Если результат нельзя раскрыть одним предложением, то все последующие детали раскрываются через ключевые слова «И» и «Но».

And

И

Вспомогательное ключевое слово, аналог конъюнкции.

But

Но

Вспомогательное ключевое слово, аналог отрицания.

4.png

Демонстрация созданного Vanessa-Automation сценария, синтаксические конструкции легко читаются не только техническим специалистом, но и любым другим сотрудником.

Технология BDD в совокупности с языком Gherkin имеет как преимущества, так и недостатки. Из-за ресурса, выделяемого на разработку тестов, метод требует согласования всех сторон, что не позволит применять BDD повсеместно. Однако разработчику будет полезно ознакомление с принципами методологии. BDD дает возможность иначе выстраивать архитектуру ПО, что важно в том числе вне контекста BDD.


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Отправить заявку

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

Рассказать друзьям
Для разработчиков 1С
Вам может быть интересно: