Что такое тестирование огурцов?

Cucumber – это программный инструмент, который программисты используют для тестирования другого программного обеспечения. Он запускает автоматические приемочные тесты, написанные в стиле разработки, ориентированной на поведение (BDD). Cucumber Training написана на языке программирования Ruby. Проекты Cucumber доступны для других платформ, помимо Ruby.

Знакомство с огурцом

Прежде чем мы узнаем о Cucumber, давайте разберемся с BDD.

Что такое развитие, управляемое поведением?

Предположим, вам поручили создать модуль «Перевод средств» в приложении Net Banking.

Есть несколько способов проверить это

  1. Перевод средств должен осуществляться при наличии достаточного баланса на исходном счете.
  2. Денежный перевод должен быть осуществлен, если информация о пункте назначения верна.
  3. Перевод средств должен происходить, если пароль транзакции / код rsa / аутентификация безопасности для транзакции, введенной пользователем, верны.
  4. Перевод средств должен осуществляться, даже если это выходной день
  5. Перевод средств должен осуществляться в будущую дату, установленную владельцем счета.

Сценарий тестирования становится более сложным и сложным, поскольку мы рассматриваем дополнительные функции, такие как сумма перевода X за интервал Y дней/месяцев, остановка запланированного перевода, когда общая сумма достигает Z и т. д.

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

Чтобы преодолеть эту проблему (разработка, управляемая поведением), был задуман BDD. Это упрощает весь процесс тестирования для разработчика

В BDD все, что вы пишете, должно состоять из шагов Дано-Когда-Тогда. Давайте рассмотрим тот же пример выше в BDD

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

Когда я переведу деньги при достаточном балансе на исходном счете
Или я переведу в выходной день
Или я переведу в будущем
И Данные пункта назначения верны
И пароль транзакции/код rsa/проверка безопасности для транзакции верны
И нажмите или нажмите кнопку отправки

Затем должна быть переведена сумма
И событие будет зарегистрировано в лог-файле

Разве не легко писать, читать и понимать? Он охватывает все возможные тестовые случаи для модуля перевода средств и может быть легко изменен для включения большего количества. Кроме того, это больше похоже на написание документации для модуля перевода средств.

Огуречный тренинг

Инструменты Cucumber также поддерживают разработку, управляемую поведением (BDD). Она предлагает способ написания тестов, понятных любому, независимо от его технических знаний.

В BDD пользователи (бизнес-аналитики, владельцы продуктов) сначала пишут сценарии или приемочные тесты, которые описывают поведение системы с точки зрения клиента, для проверки и утверждения владельцами продукта, прежде чем разработчики напишут свои коды.

Cucumber использует язык программирования Ruby.

Каковы преимущества?

  1. Полезно привлекать заинтересованные стороны бизнеса, которые не могут легко читать код
  2. Cucumber фокусируется на опыте конечного пользователя
  3. Стиль написания тестов позволяет упростить повторное использование кода в тестах.
  4. Быстрая и простая настройка и выполнение
  5. Эффективный инструмент для тестирования

Основы огурцов

Для каждого проекта огурца в корне проекта есть один каталог с именем «features». Здесь будут находиться все ваши функции огурца. В этом каталоге вы найдете дополнительные каталоги, а именно step_definition и каталоги поддержки.

Что такое «файл функций»?

Feature File состоит из следующих компонентов:

  • Функция: функция будет описывать текущий тестовый сценарий, который необходимо выполнить.
  • Сценарий. Сценарий описывает шаги и ожидаемый результат для конкретного теста.
  • Схема сценария. Один и тот же сценарий можно выполнить для нескольких наборов данных, используя структуру сценария. Данные представлены в табличной структуре, разделенной символом (I I).
  • Дано: указывает контекст текста, который должен быть выполнен. Используя таблицы данных «Данные», шаг также может быть параметризован.
  • Когда: «Когда» указывает тестовое действие, которое должно быть выполнено.
  • Затем: ожидаемый результат теста может быть представлен словом «Затем».