Введение
В последние годы все больше команд разработчиков программного обеспечения все чаще применяют методологию Agile в процессе разработки, чтобы адаптироваться к этому быстро меняющемуся рынку. Эта тенденция требует от групп тестирования управления тестовыми наборами и тестовыми сценариями, которые необходимо поддерживать в соответствии с меняющимися требованиями. Поиск подходящего метода тестирования с самого начала — один из ключевых элементов успешного проекта программного обеспечения Agile.
Что такое Cucumber?
Фактически, многие Agile-команды успешно внедрили метод Behavior-Driven Development (BDD) для своего процесса тестирования с помощью инструмента Cucumber. Итак, что такое огурец? И почему эта стратегия рекомендуется для Agile-проектов вместе с BDD?
Cucumber — это инструмент, используемый для запуска автоматических приемочных тестов, созданных в формате BDD. Одной из наиболее выдающихся особенностей инструмента является возможность выполнять функциональные описания в виде простого текста (написанные на языке Gherkin) в виде автоматических тестов. Давайте посмотрим на приведенный ниже пример:
123456 | Функция: обновление пароля Сценарий: пользователь-администратор может обновить пароль пользователя. Если я нахожусь в системе управления персоналом с учетной записью администратора. Когда я обновляю пароль другого пользователя, я получаю сообщение об успешном обновлении пароля, и пароль пользователя обновляется до нового пароля |
< p>Эта невероятная особенность подхода Behavior-Driven Development (BDD) со следующими преимуществами:
- Написание тестов BDD на вездесущем языке, языке, структурированном вокруг модели предметной области и широко используемом всеми членами команды, состоящей из разработчиков, тестировщиков, бизнес-аналитиков и клиентов. команда разработчиков программного обеспечения.
- Разрешено прямое взаимодействие с кодом разработчика, но тесты BDD написаны на языке, который также может быть понят заинтересованными сторонами бизнеса.
- Последний но, что не менее важно, приемочные испытания могут выполняться автоматически, в то время как заинтересованные стороны бизнеса выполняют их вручную.
Cucumber помогает улучшить коммуникацию
Cucumber помогает улучшить общение между техническими и нетехническими участниками одного проекта. Давайте посмотрим на приведенное ниже требование и его тесты автоматизации:
12345678 | Как пользователь-администратор, я хотел бы изменить пароль учетных записей других пользователей. Функция: Обновить пароль Сценарий: Пользователь-администратор может обновить пароль пользователя Учитывая, что я нахожусь в системе управления персоналом с учетной записью администратора Когда я обновляю пароль другого пользователя Тогда я получить сообщение об успешном обновлении пароля И пароль пользователя обновлен до нового пароля |
С помощью TestNG приведенный выше тестовый сценарий может быть реализован следующим образом: размер:4;-webkit-размер вкладки:4;размер вкладки:4;размер шрифта:12px!важно;высота строки:15px!важно>@test public void testAdminUserCanUpdateUserAccountPassword() { //создаем пользователей User userAdmin = new User(UserRole.ADMIN, username, password); Пользователь user = новый пользователь (UserRole.VIEWER, user_username, user_password); //использовать пользователя с правами администратора для обновления пароля другого пользователя String message = userAdmin.updatePassword(user, user_new_password); //проверка смены пароля Assert.assertEquals(message, "Пароль успешно изменен"); Assert.assertEquals(user.getPassword(), user_new_password); }
12345678910111213 | @testpublic void testAdminUserCanUpdateUserAccountPassword() { //создаем пользователей User userAdmin = new User(UserRole.ADMIN, имя пользователя, пароль); Пользователь user = новый пользователь (UserRole.VIEWER, user_username, user_password); //использовать пользователя с правами администратора для обновления пароля другого пользователя String message = userAdmin.updatePassword(user, user_new_password); //проверка смены пароля Assert.assertEquals(message, “Пароль успешно изменен”); Assert.assertEquals(user.getPassword(), user_new_password); |
Тот же тест можно написать с помощью Cucumber:
123456 | Функция: Обновить пароль Сценарий: пользователь-администратор может обновить пароль пользователя Учитывая, что я нахожусь в системе управления персоналом с учетной записью администратора Когда я обновляю пароль другого пользователя Я получаю сообщение об успешном обновлении пароля И пароль пользователя обновляется до нового пароля< /table>
Оба приведенных выше скрипта автоматизированного тестирования хорошо работают для автоматического завершения теста. Но все ли тестировщики вашей команды разбирают эти тесты? Могут ли другие бизнес-аналитики и другие заинтересованные лица снова использовать эти тесты на этапе приемочного тестирования (AT)? Автоматизированное тестирование с помощью TestNG может быть сложным для большинства ручных тестировщиков и бизнес-аналитиков. Более того, повторно использовать этот тест для АТ нельзя. В результате, исходя из упомянутых ранее недостатков, этот метод нельзя считать подходящим. В отличие от этого, автоматизированное тестирование с Cucumber BDD создается на языке бизнес-домена или на естественном языке, который может быть легко понят всеми членами группы разработки программного обеспечения. Коммуникация имеет решающее значение для любой команды разработчиков, особенно в Agile-команде. Обычно между разработчиками и тестировщиками происходит много непрерывных чатов, дискуссий или даже споров, чтобы выяснить, каково правильное поведение функции. Используя Cucumber, одна и та же спецификация функций теперь используется для разработки разработчиками и для тестирования тестировщиками. Он считается мощным инструментом, поскольку помогает снизить риск недопонимания, а также нарушения связи. Cucumber – это автоматизированный инструмент приемочного тестированияПриемочное тестирование обычно проводится бизнес-аналитиками/клиентами, чтобы убедиться, что команда разработчиков создала точные функции. Типичным действием на этом этапе тестирования является проверка системы на соответствие первоначальным требованиям с конкретными реальными данными из производства. Тестирование Cucumber не только следует требованиям в качестве тестовых сценариев, но также помогает бизнес-аналитикам или менеджерам по продуктам легко корректировать тестовые данные. Вот демонстрация с небольшими изменениями:
|