Канареечное тестирование

09 июля 2024
Дата публикации
Канареечное тестирование
  • Тестирование ПО
  • Обеспечение качества
Представим: компания выпустила качественный ИТ-продукт, который нравится пользователям. Однако чтобы он оставался современным, в него нужно внести изменения. Как специалисты могут убедиться, что эти изменения не испортили ПО? Что новая функциональность работает так, как задумано, а старая – не пострадала?

В этой статье мы рассмотрим один из таких способов – канареечное тестирование. Узнаем, почему оно так называется, разберём его преимущества и особенности.

Предыстория

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

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

Так и канареечное тестирование проверяет новую версию ПО перед её выпуском.

Что такое канареечное тестирование

Канареечное тестирование — это способ проверки новых версий ПО при реальном использовании. Вместо того, чтобы выпускать версию сразу для всех пользователей, её сначала запускают для небольшого числа людей, которые проверяют работу ИТ-продукта.

Если ПО исправно, то эту версию можно предоставить остальным пользователям.

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

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

Некоторые путают канареечное тестирование, канареечный релиз и канареечное развёртывание:
  • Канареечное тестирование — это проверка обновлённой версии ИТ-продукта на небольшом числе пользователей.
  • Канареечный релиз — это выпуск новой версии ПО для небольшого процента людей. Это понятие подробнее мы рассмотрим далее в блоге.
  • Канареечное развёртывание — это процесс поэтапного развёртывания новой версии ПО для всех пользователей.
Канареечное тестирование — это часть канареечного релиза и канареечного развёртывания. То есть канареечный релиз и канареечное развёртывание включают в себя канареечное тестирование, но не наоборот.

Кто и как выполняет

Этот вид тестирования проводят пользователи. Процесс может выглядеть так:

1. Подготовка

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

2. Запуск «канареек»

Новая версия развёртывается для небольшого числа людей, которые становятся «канарейками».

3. Мониторинг

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

4. Анализ результатов

Если в работе «канареек» обнаружены проблемы, релиз откладывается, а новая версия дорабатывается.

5. Расширение доступа

Если у «канареек» не возникло проблем при использовании ПО, то доступ к новой версии расширяется для остальных пользователей.


Основная цель: канареечное тестирование помогает выявлять проблемы в работе новой версии ПО перед её полным релизом, что позволяет сократить риски и избежать проблем для пользователей.

Что важно сделать перед канареечным тестированием

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

Когда необходимо канареечное тестирование:

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

Feature Flags

Feature Flags (флаги функций) — это инструмент, который часто используют при канареечном тестировании. Feature Flags помогают разработчикам активировать обновлённую функциональность только для небольшой группы пользователей

Процесс использования Feature Flags похож на канареечное тестирование:
  1. Определение новой функциональности: специалисты решают, какую новую функцию нужно протестировать на ограниченной группе пользователей.
  2. Внедрение: создаётся Feature Flag, который активирует новую функцию только для определённой группы пользователей.
  3. Тестирование: после внедрения новой функциональности с использованием флагов функций, команда проводит тестирование на группе «канареек».
  4. Мониторинг: во время тестирования новой функциональности важно активно мониторить работоспособность системы и отклик пользователей.
  5. Оценка результатов: после проведения канареечного тестирования команда анализирует результаты, собранные с «канареек», и принимает решение о дальнейших шагах.
  6. Принятие решения: в зависимости от результатов тестирования, специалисты могут решить оставить новую функциональность активной для всех пользователей, внести изменения перед широким внедрением или откатить изменения.

Преимущества Feature Flags:

  • Гибкость и контроль: позволяют включать и отключать функции в любое время, что делает разработку более гибкой и управляемой.
  • Эксперименты и итерации: с помощью Feature Flags можно быстро вводить изменения и проводить эксперименты с различными вариантами функций, что ускоряет процесс разработки и улучшает качество продукта.

Что можно отслеживать с помощью Feature Flags:

  • Использование функции: количество клиентов, которые используют новую функцию.
  • Успешность нововведения: процент пользователей, которые успешно используют новую функцию.
  • Отзывы пользователей: обратная связь о новой функции, что помогает оценить её полезность и качество.
  • Возникновение ошибок: количество и тип дефектов, которые возникают при использовании ПО.

Преимущества использования канареечного тестирования

  1. Снижение рисков: канареечное тестирование помогает выявлять ошибки на ранней стадии релиза, что минимизирует риск сбоя ПО для всех пользователей.
  2. Ускорение процесса разработки: этот вид тестирования позволяет быстрее выпускать новые версии ИТ-продукта, благодаря чему компания может быстрее реагировать на изменения на рынке.
  3. Низкая стоимость: канареечное тестирование значительно дешевле бета-тестирования из-за ограниченного количества привлекаемых пользователей.
  4. Более гибкий релиз: при канареечном тестировании можно выпускать новые функции поэтапно, что делает процесс релиза более гибким и управляемым.
  5. Стабильность и надёжность: это тестирование способствует стабильности и надёжности работы ПО, что улучшает лояльность пользователей.
  6. Доступ к новым функциям: канареечное тестирование позволяет компании более свободно вносить новые функции и улучшения, что делает использование ПО более интересным и полезным.
  7. Улучшенный пользовательский опыт: канареечное тестирование помогает создать более качественный и стабильный продукт, что улучшает пользовательский опыт.

Недостатки использования канареечного тестирования

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

Что такой канареечный релиз

Сравним ниже более подробно понятия канареечного релиза и тестирования.

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

Пример канареечного релиза: представим, что команда разработчиков работает над обновлением мобильного приложения для онлайн-магазина. Вместо того, чтобы одновременно выпустить обновление всем пользователям, команда решает сначала предоставить доступ к новой версии приложения только 5% пользователей. После того как они убедятся, что новая версия работает стабильно и без ошибок, они могут увеличить доступность обновления до 25%, затем до 50% и в конце до всех пользователей.

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

Больше о тестировании ПО вы можете узнать на бесплатной консультации с нашими QA-специалистами.