Как выполнить Smoke (дымовое)-тестирование

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

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

Как выполнить Smoke (дымовое)-тестирование

Общие сведения

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

В основном, смоук-тесты выполняются в начале цикла тестирования, чтобы дать команде разработчиков и Q&A предварительную оценку того, будет ли приложение функционировать корректно. Этот процесс включает в себя проведение небольшого набора тестовых сценариев, которые выполняются для каждой новой сборки программы.

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

Этот вид проверки работоспособности продукта часто используется для оценки стабильности приложения перед проведением более подробного и обширного тестирования.

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

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

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

Происхождение термина

Происхождение термина «smoke testing» имеет две разные версии.

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

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

В обоих случаях «smoke testing» означает проверку работоспособности, при которой основное внимание уделяется первичным признакам нормальной работы, какими являются выход дыма из печи или его отсутствие после пайки.

Цели

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

Обычно дымовое тестирование выполняется разработчиками, но иногда это может быть и Q&A. Кроме того, Smoke test иногда включается в состав регрессионной методики, чтобы удостовериться, что основные функции продукта остаются работоспособными после внесения изменений.

Что проверяют при помощи Smoke Testing

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

Для социальных сетей или электронной почты важно проверить следующие аспекты:

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

В случае мобильного фоторедактора, в первую очередь, проверяются следующие функции:

  • Установка и запуск приложения.
  • Возможность обращения к хранилищу файлов на устройстве.
  • Отмена внесенных изменений в фотографии и другие редакторские функции.

В мобильных играх дымовое тестирование включает проверку следующих аспектов:

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

Дымовое тестирование может быть применено как к новым продуктам, так и к обновленным версиям уже существующих продуктов.

Как выполнить Smoke (дымовое)-тестирование

Виды

Смоук-тестирование может быть выполнено как вручную, так и с использованием автоматизации.

  • Ручное
  • Автоматизированное
  • Гибридное

Конкретные этапы смок-тестирования могут различаться в зависимости от конкретных особенностей приложения.

Ручное

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

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

Автоматическое

Смоук-тестирование можно также проводить автоматически, используя специальные инструменты или сценарии для выполнения тестов.

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

Некоторые организации используют автоматизированные средства тестирования для проведения дымового тестирования.

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

Гибридное

Гибридное дымовое тестирование представляет собой сочетание как ручного, так и автоматизированного дымового тестирования. В зависимости от конкретной сборки и её особенностей, команды QA могут решить, какие тесты следует выполнять вручную, а какие автоматически. Этот выбор может различаться от одной команды к другой и от одной сборки к другой.

Как выполнить Smoke (дымовое)-тестирование

Когда необходимо проводить smoke-тестирование

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

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

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

Как проводят Smoke Testing

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

Планирование

Планирование Smoke-тестирования обычно проводится в начале проекта совместно командой инженеров по качеству (QA), менеджером проекта, разработчиками, клиентами и пользователями. Процесс планирования включает в себя следующие шаги:

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

Таким образом, планирование Smoke-тестирования включает в себя детальное определение того, что будет проверено, как это будет проверено и какие критерии будут использоваться для оценки результатов.

Выполнение

Выполнение Smoke-тестирования представляет собой непосредственный этап самой проверки. В процессе этого этапа тестируемая сборка подвергается тестированию с использованием заранее разработанных тест-кейсов. Этот процесс включает следующие шаги:

  • В тестируемый продукт вводятся определенные исходные данные, которые были определены на этапе планирования тестирования.
  • Записываются выходные данные, полученные в результате выполнения тест-кейсов. Эти данные будут использоваться для дальнейшей оценки.

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

Анализ и оценка

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

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

  1. Регистрация пользователя.
  2. Авторизация в системе.
  3. Личная страница пользователя.
  4. Редактирование личных данных.

Для проверки этого функционала в ходе дымового тестирования тестировщик должен выполнить основные пользовательские сценарии, такие как:

  • Успешное создание аккаунта при вводе правильных данных (телефон, электронная почта, имя, фамилия и так далее) в форму регистрации.
  • Успешный вход с использованием корректных учетных данных (логин и пароль), полученных или заданных при регистрации.
  • Неудачная авторизация с неверными учетными данными.
  • Просмотр личной страницы пользователя после успешной авторизации.
  • Успешное изменение регистрационных данных, таких как имя или адрес электронной почты.

Как выполнить Smoke (дымовое)-тестирование

Инструменты для Smoke Testing

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

Среди наиболее популярных инструментов для дымового тестирования можно выделить такие, как Selenium, Katalon и многие другие.

Примеры использования

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

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

Давайте рассмотрим грубые дефекты, которые дымовое тестирование обязательно должно выявить:

  1. Пример 1: Пользователь не может выйти из приложения.
  2. Пример 2: На странице входа кнопка «Отправить» для перехода на следующую страницу не работает, даже при введенных корректных логине и пароле.

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

Отличия между санитарной и дымовой методикой

В таблице ниже мы собрали основные отличия между двумя популярными принципами проверки работоспособности продукта:

ПараметрSmoke-методикаSanity-методика
ЦельПроверка устойчивости системыПроверка «здравомыслия» системы
ВыполняетсяРазработчиками и Q&AQ&A
ДокументацияОбычно документируется или проводится по сценариюНе документируется и не имеет сценариев
Отношение к другим видам тестированияПодмножество Acceptance-тестированияПодмножество регрессионного тестирования
Объект проверкиПроверяет всю систему полностьюПроверяет конкретный компонент системы

Для более лучшего понимания отличий и сходство этих двух методик предлагаем ознакомиться со следующим списком тезисов:

  • Smoke и Sanity-методики позволяют быстро выявлять ошибки в приложении и экономить время на более подробном тестировании.
  • Эта методика также иногда называется Acceptance-тестированием.
  • Ежедневная сборка программного обеспечения и проведение Smoke-методики полезны для больших проектов.
  • Как Smoke, так и Sanity-тесты могут выполняться вручную или автоматически. Автоматические тесты часто включаются в процесс сборки программного обеспечения.
  • В некоторых случаях Smoke и Sanity-тестирование выполняются последовательно: сначала Smoke, а затем Sanity. Эти тесты иногда объединяют вместе, что может вызвать путаницу в терминологии.

Преимущества smoke-тестирования

Преимущества дымового тестирования:

  • Экономия времени и ресурсов: Дымовые тесты являются относительно простыми и не требуют значительных затрат на их проведение. Они могут быть выполнены разработчиками или ограниченной командой QA-инженеров. Тем не менее, они способны выявить даже основные проблемы в текущей сборке, что делает более глубокое и ресурсозатратная проверка работоспособности продукта нецелесообразным до тех пор, пока основная функциональность продукта не стабилизируется.
  • Автоматизация: Дымовые тесты часто представляют собой стандартные и повторяющиеся проверки для каждой сборки продукта или для различных проектов с аналогичным функционалом. В результате этого их можно автоматизировать для ускорения и упрощения процесса тестирования. Однако следует помнить, что автоматизация может быть сложной, особенно для более сложных проектов, и требует соответствующих усилий.
  • Стабильность сборки: В случае частых выпусков сборок, регулярное проведение smoke-тестов обеспечивает уверенность разработчикам и другим участникам процесса разработки в том, что продукт будет работать стабильно, по крайней мере, в отношении его основных функций. Это позволяет сэкономить ресурсы на более глубоких проверках, особенно если текущая сборка отличается от предыдущей незначительными изменениями.
  • Обнаружение проблем на ранних этапах: Дымовая методика особенно полезна в методологиях непрерывной интеграции, где происходит частая итеративная разработка продукта. Это позволяет выявлять и устранять потенциальные проблемы на ранних этапах, что способствует улучшению качества продукта и предотвращает накопление большого количества ошибок в финальной версии.

Недостатки

Как и у любого другого метода, у него существуют и свои недостатки:

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

Как выполнить Smoke (дымовое)-тестирование

Заключение

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

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

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

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
IaaS SaaS PaaS
Добавить комментарий

Больше новостей — на нашем Telegram-канале