Как стать автором
Обновить
785.49
OTUS
Цифровые навыки от ведущих экспертов

Дымовое тестирование

Время на прочтение7 мин
Количество просмотров1.9K

В сфере разработки программного обеспечения дымовое тестирование (smoke testing) выступает в качестве важнейшего контрольного пункта, гарантирующего, что новый релиз программное обеспечения прошел базовые проверки и готов к дальнейшему тестированию. Это как предполетный осмотр, проверка на наличие критических проблем, которые могут помешать программному обеспечению еще до того, как оно отправится в полет.

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

В качестве примера рассмотрим дымовое тестирование платформы для интернет‑магазинов. Тесты могут включать в себя:

  • Проверку процессов регистрации и входа пользователей

  • Проверку каталога товаров и функциональности поиска

  • Добавление товаров в корзину и переход к оформлению заказа

  • Завершение покупки с использованием различных способов оплаты

  • Проверку подтверждения заказа и информации о его отслеживании.

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

Важно отметить, что дымовой тест не должен быть слишком долгим, чтобы тестирование не занимало слишком много времени. Как правило, smoke test длится не более часа.

Также важно интегрировать дымовое тестирование в ваш конвейер CI/CD, так как это поможет автоматизировать процесс тестирования и выпуска программного обеспечения.

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

Сценарии smoke testing

Посмотрим из каких основных этапов состоит тестирование. На первом шаге разработчики передают новую сборку программного обеспечения команде QA. Затем команда QA устанавливает сборку в своей тестовой среде. Как правило все это выполняется в автоматическом режиме, с помощью конвейера CI/CD.

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

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

Сборка исправляется или передается на следующие этапы тестирования. Разработчики исправляют сборку, если она не прошла дымовой тест. После исправления сборки команда QA повторно проводит дымовое тестирование, чтобы убедиться, что исправление прошло успешно. Если сборка прошла дымовой тест, она может быть переведена на следующий этап тестирования.

Виды smoke testing

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

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

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

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

Здесь важно понимать, что тестировщики и разработчики должны взаимодействовать между собой, для совместного решения возникающих при тестировании проблем.

Как провести smoke testing

Независимо от того, как мы будем проводить дымовое тестирование, вручную или автоматически, наши основные шаги будут аналогичными.

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

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

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

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

Для проведения тестов нам необходимо подготовить тестовую среду. Здесь важно, чтобы тестовая среда была максимально приближенной к производственной. Лучшие практики DevOps рекомендуют использовать одинаковые среды как для разработки, так и для тестирования и производственной среды. Это позволяет избежать неприятных сюрпризов, когда у разработчиков приложение прекрасно работает, а в средах тестировщиков, а затем в продуктиве начинаются проблемы. На практике лучше всего использовать одинаковый набор конфигурационных параметров при развертывании различных сред. Например, единые конфигурации инфраструктуры как код (IaC) или манифесты Kubernetes.

На следующем шаге мы проводим сами тесты в ручном или автоматическом режиме. Ниже представлена таблица с примерами некоторых тестов и их результатами.

Описание

Шаги

Ожидаемый результат

Актуальный результат

Статус

1

Проверка входа в личный кабинет пользователя

1. Открыть веб ресурс в браузере

2. Перейти на страницу входа в личный кабинет

3. Ввести учетные данные

4. Нажать login

Успешный вход

Успешный вход

pass

2

Проверка статуса заказов в личном кабинете

1. Перейти в раздел с заказами

2. Просмотреть список заказов

Отображаются выполненные заказы

Заказы не отображаются

Fail

Полученные результаты необходимо тщательно проанализировать, чтобы выявить все неудачные тестовые случаи или потенциальные дефекты. Распределите проблемы по категориям и приоритетам в зависимости от их серьезности и влияния. Доведите результаты до сведения команды разработчиков в четкой и лаконичной форме.

Проведите повторное тестирование затронутых областей после того, как команда разработчиков устранит все недочеты. Убедитесь, что исправления устранили выявленные проблемы и не привели к возникновению новых. Обновите тестовую документацию, чтобы отразить изменения и обеспечить согласованность.

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

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

Заключение

Подводя итоги посмотрим, какие преимущества дает smoke testing. С его помощью мы можем находить ошибки на более ранних этапах жизненного цикла продукта. Это экономит время тестировщиков, позволяя избежать тестирования нестабильной или неправильной сборки.

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

Smoke tests должны занимать не более часа, в результате чего мы можем быстро проверить новый релиз на соответствие базовым требованиям, для того, чтобы потом перейти к более сложным проверкам. Таким образом, правильное использование дымовых тестов позволяет существенно повысить качество выпускаемого программного обеспечения.


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

Теги:
Хабы:
+3
Комментарии3

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS