Представим: компания выпустила качественный ИТ-продукт, который нравится пользователям. Однако чтобы он оставался современным, в него нужно внести изменения. Как специалисты могут убедиться, что эти изменения не испортили ПО? Что новая функциональность работает так, как задумано, а старая – не пострадала?
В этой статье мы рассмотрим один из таких способов – канареечное тестирование. Узнаем, почему оно так называется, разберём его преимущества и особенности.
Предыстория
Канареечное тестирование так называется из-за старой традиции, при которой шахтёры использовали канареек для обнаружения опасных газов в шахтах.
Рабочие брали с собой в шахту птиц, и если они начинали петь слабее или переставали, то это служило сигналом присутствия в воздухе опасных газов, поэтому шахтёрам нужно эвакуироваться.
Так и канареечное тестирование проверяет новую версию ПО перед её выпуском.
Что такое канареечное тестирование
Канареечное тестирование — это способ проверки новых версий ПО при реальном использовании. Вместо того, чтобы выпускать версию сразу для всех пользователей, её сначала запускают для небольшого числа людей, которые проверяют работу ИТ-продукта.
Если ПО исправно, то эту версию можно предоставить остальным пользователям.
Данный подход отличается от
регрессионного тестирования, которое проводится не пользователями, а профессиональными тестировщиками. Канареечное тестирование менее затратно по сравнении с бета-тестированием, при котором надо привлекать хоть и не большое, но значительное количество пользователей.
Приведём пример: человек меняет освещение в квартире. Чтобы убедиться в исправности проводки, он сначала включает новый светильник только в одной комнате, а не во всей квартире. Если он работает нормально, то можно заменить светильники и в других комнатах.
Некоторые путают канареечное тестирование, канареечный релиз и канареечное развёртывание:
- Канареечное тестирование — это проверка обновлённой версии ИТ-продукта на небольшом числе пользователей.
- Канареечный релиз — это выпуск новой версии ПО для небольшого процента людей. Это понятие подробнее мы рассмотрим далее в блоге.
- Канареечное развёртывание — это процесс поэтапного развёртывания новой версии ПО для всех пользователей.
Канареечное тестирование — это часть канареечного релиза и канареечного развёртывания. То есть канареечный релиз и канареечное развёртывание включают в себя канареечное тестирование, но не наоборот.
Кто и как выполняет
Этот вид тестирования проводят пользователи. Процесс может выглядеть так:
1. Подготовка
Перед выходом новой версии ПО проводится ряд автоматизированных тестов, чтобы убедиться в её корректной работе и в отсутствии очевидных регрессионных дефектов.
2. Запуск «канареек»
Новая версия развёртывается для небольшого числа людей, которые становятся «канарейками».
3. Мониторинг
Специалисты следят за поведением «канареек» и анализируют данные, чтобы выяснить, как новая версия влияет на работу ИТ-продукта.
4. Анализ результатов
Если в работе «канареек» обнаружены проблемы, релиз откладывается, а новая версия дорабатывается.
5. Расширение доступа
Если у «канареек» не возникло проблем при использовании ПО, то доступ к новой версии расширяется для остальных пользователей.
Основная цель: канареечное тестирование помогает выявлять проблемы в работе новой версии ПО перед её полным релизом, что позволяет сократить риски и избежать проблем для пользователей.
Что важно сделать перед канареечным тестированием
Необходимо провести автоматизированное или ручное регрессионное тестирование, чтобы убедиться в корректности работы новой версии ПО на базовом уровне. Это позволяет исключить грубые ошибки и сократить риск их появления у «канареек».
Когда необходимо канареечное тестирование:
- При релизе новых функций: так можно убедиться, что новая функциональность работает правильно и не влияет на работу остальных компонентов ПО.
- При внесении изменений в существующую функциональность: специалисты проверяют, что изменения не привели к дефектам и не ухудшили работу ИТ-продукта.
- При переходе на новую версию платформы: можно проверить, что ПО совместимо с новой платформой.
Feature Flags
Feature Flags (флаги функций) — это инструмент, который часто используют при канареечном тестировании. Feature Flags помогают разработчикам активировать обновлённую функциональность только для небольшой группы пользователей
Процесс использования Feature Flags похож на канареечное тестирование:
- Определение новой функциональности: специалисты решают, какую новую функцию нужно протестировать на ограниченной группе пользователей.
- Внедрение: создаётся Feature Flag, который активирует новую функцию только для определённой группы пользователей.
- Тестирование: после внедрения новой функциональности с использованием флагов функций, команда проводит тестирование на группе «канареек».
- Мониторинг: во время тестирования новой функциональности важно активно мониторить работоспособность системы и отклик пользователей.
- Оценка результатов: после проведения канареечного тестирования команда анализирует результаты, собранные с «канареек», и принимает решение о дальнейших шагах.
- Принятие решения: в зависимости от результатов тестирования, специалисты могут решить оставить новую функциональность активной для всех пользователей, внести изменения перед широким внедрением или откатить изменения.
Преимущества Feature Flags:
- Гибкость и контроль: позволяют включать и отключать функции в любое время, что делает разработку более гибкой и управляемой.
- Эксперименты и итерации: с помощью Feature Flags можно быстро вводить изменения и проводить эксперименты с различными вариантами функций, что ускоряет процесс разработки и улучшает качество продукта.
Что можно отслеживать с помощью Feature Flags:
- Использование функции: количество клиентов, которые используют новую функцию.
- Успешность нововведения: процент пользователей, которые успешно используют новую функцию.
- Отзывы пользователей: обратная связь о новой функции, что помогает оценить её полезность и качество.
- Возникновение ошибок: количество и тип дефектов, которые возникают при использовании ПО.
Преимущества использования канареечного тестирования
- Снижение рисков: канареечное тестирование помогает выявлять ошибки на ранней стадии релиза, что минимизирует риск сбоя ПО для всех пользователей.
- Ускорение процесса разработки: этот вид тестирования позволяет быстрее выпускать новые версии ИТ-продукта, благодаря чему компания может быстрее реагировать на изменения на рынке.
- Низкая стоимость: канареечное тестирование значительно дешевле бета-тестирования из-за ограниченного количества привлекаемых пользователей.
- Более гибкий релиз: при канареечном тестировании можно выпускать новые функции поэтапно, что делает процесс релиза более гибким и управляемым.
- Стабильность и надёжность: это тестирование способствует стабильности и надёжности работы ПО, что улучшает лояльность пользователей.
- Доступ к новым функциям: канареечное тестирование позволяет компании более свободно вносить новые функции и улучшения, что делает использование ПО более интересным и полезным.
- Улучшенный пользовательский опыт: канареечное тестирование помогает создать более качественный и стабильный продукт, что улучшает пользовательский опыт.
Недостатки использования канареечного тестирования
- Сложность внедрения: использование канареечного тестирования требует дополнительных ресурсов на разработку и настройку системы Feature Flags.
- Нерепрезентативная выборка: если «канарейки» не являются репрезентативной выборкой пользователей, результаты тестирования могут быть неточными.
- Сложность анализа: изучение данных от «канареек» может быть сложным, особенно если новая функциональность влияет на работу других частей ПО.
Что такой канареечный релиз
Сравним ниже более подробно понятия канареечного релиза и тестирования.
Канареечный релиз — это
метод пошагового
внедрения новой функциональности ПО, который начинается с ограниченного количества пользователей. Канареечное тестирование — это
проверка новой версии или функции ПО. Оба процесса помогают убедиться в стабильности и качестве изменений перед их полным запуском.
Пример канареечного релиза: представим, что команда разработчиков работает над обновлением мобильного приложения для онлайн-магазина. Вместо того, чтобы одновременно выпустить обновление всем пользователям, команда решает сначала предоставить доступ к новой версии приложения только 5% пользователей. После того как они убедятся, что новая версия работает стабильно и без ошибок, они могут увеличить доступность обновления до 25%, затем до 50% и в конце до всех пользователей.
Канареечное тестирование проверяет новые функции ПО на ограниченном количестве пользователей. Оно позволяет выявлять ошибки на ранних стадиях, улучшать качество ИТ-продукта и увеличивать вероятность успешного релиза. Процесс выпуска ПО становится более гибким и управляемым, позволяя компании быстро реагировать на изменения и вовремя вносить необходимые исправления.
Больше о тестировании ПО вы можете узнать на
бесплатной консультации с нашими QA-специалистами.