← Назад к вопросам

В чем разница между Smoke и Regression?

1.0 Junior🔥 241 комментариев
#Теория тестирования

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Smoke Testing vs Regression Testing: Полное сравнение

Определения

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

Regression Testing — комплексная проверка всей системы для убеждения, что новые изменения не сломали существующий функционал.

Детальное сравнение

1. Цель

Smoke:

  • Проверить, что приложение вообще запускается и основные компоненты работают
  • Ответить на вопрос: «Можно ли переходить к полному тестированию?»
  • Минимизировать время, потраченное на полное тестирование неработающей сборки

Regression:

  • Убедиться, что новый код не сломал старый функционал
  • Проверить все взаимодействия между компонентами
  • Ответить на вопрос: «Всё ли ещё работает, как раньше?»

2. Объём тестирования

Smoke:

  • 5-10% всех тестовых случаев
  • Только критические пути
  • Примеры:
    • Логин в приложение
    • Главная страница открывается
    • Основные кнопки функционируют
    • База данных доступна

Regression:

  • 80-90% всех тестовых случаев
  • Все функции, интеграции, edge cases
  • Примеры:
    • Все сценарии логина (валидные данные, ошибки, двухфакторная аутентификация)
    • Все переходы между страницами
    • Все фильтры и сортировки
    • Граничные значения, специальные символы

3. Время выполнения

Smoke:

  • 10-30 минут
  • Запускается после каждой сборки (несколько раз в день)
  • Блокирует переход в следующий stage если упал

Regression:

  • 4-8 часов (или ночью)
  • Запускается перед релизом, перед merge в main
  • Может быть частичная регрессия (smoke + критичный функционал)

4. Когда запускать

Smoke:

  • Сразу после каждой сборки
  • Перед тем, как отправлять в dev/staging
  • На CI/CD pipeline — первый stage
  • Gate для остального тестирования

Regression:

  • Перед выпуском нового релиза
  • После значительных изменений кода
  • Перед merge в main/develop
  • Ночью (если много тестов)
  • На критичные компоненты

5. Уровень детализации

Smoke:

  • Высокоуровневые проверки
  • Не заходим в детали
  • Не проверяем граничные значения
  • Не проверяем производительность

Regression:

  • Детальная проверка каждого функционала
  • Граничные значения (boundary testing)
  • Комбинации входных параметров
  • Проверка состояния БД после операций
  • Проверка error handling

6. Инструменты и автоматизация

Smoke:

  • Быстрые инструменты: curl, простые API тесты
  • Может быть и ручное тестирование (быстро)
  • API тесты часто быстрее UI тестов
  • Пример: проверка health check эндпоинта

Regression:

  • Полноценные фреймворки: Selenium, Cypress, Playwright
  • Обычно полностью автоматизировано
  • Может включать performance тесты
  • Может включать visual regression

7. Пример из реальной жизни

Наша схема CI/CD:

разработчик push → сборка (3 мин)
                  ↓
           Smoke тесты (15 мин) — API + UI основных функций
                  ↓
           Прошли? → Unit & Integration тесты (20 мин)
                  ↓
           Merge в dev → Partial Regression (1 час)
                  ↓
           Merge в main → Full Regression (4 часа, ночью)
                  ↓
           Production → Smoke тесты (10 мин)

8. Что делать, если упали тесты

Smoke:

  • Сборка отправляется обратно разработчику
  • Срочное исправление (это critical issue)
  • Можно отмечать как blocker

Regression:

  • Анализ: новый баг в коде или баг в самих тестах?
  • Если баг в коде: возвращаемся на этап разработки
  • Если баг в тестах: фиксим тесты и перезапускаем
  • Может быть known issue (документируем)

9. Покрытие

Smoke:

  • Happy path (счастливый путь)
  • Основной функционал
  • Нет edge cases

Regression:

  • Happy path + sad path
  • Edge cases и граничные условия
  • Negative scenarios
  • Error handling

Итог

Smoke — это гейткипер. Если он упадёт, дальше смысла идти нет. Быстро, жёстко, по сути.

Regression — это подушка безопасности. Она проверяет, что ничего не сломалось в процессе развития. Долго, тщательно, по всем фронтам.

В чем разница между Smoke и Regression? | PrepBro