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

Какие знаешь этапы тестирования?

1.3 Junior🔥 221 комментариев
#Процессы и методологии разработки#Теория тестирования

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

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

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

Какие знаешь этапы тестирования?

Тестирование ПО проходит через несколько последовательных этапов. Каждый этап имеет свои задачи, методы и критерии завершения. Я опишу классическую модель SDLC и как тестирование встроено в каждый этап.

1. Unit Testing (Модульное тестирование)

Ответственность: разработчики

Цель: проверить функциональность отдельных компонентов кода (функции, методы, классы) в изоляции.

Инструменты: JUnit, pytest, Jest, NUnit, xUnit

Особенности:

  • Тесты пишут сами разработчики
  • Использование mock-объектов для изоляции
  • Должно быть покрытие минимум 70-90% кода
  • Выполняются на локальной машине разработчика
  • Быстрые и независимые друг от друга

Пример:

def test_calculate_discount():
    result = calculate_discount(100, 0.1)
    assert result == 90

2. Integration Testing (Интеграционное тестирование)

Ответственность: QA и разработчики

Цель: проверить взаимодействие между компонентами, модулями, микросервисами и внешними системами.

Уровни интеграции:

  • Component Integration — взаимодействие компонентов одного модуля
  • System Integration — взаимодействие модулей системы
  • API Integration — взаимодействие с внешними API
  • Database Integration — корректность работы с БД

Инструменты: pytest, Postman, REST Assured, Docker Compose для окружения

Особенности:

  • Требует реального окружения или контейнеризации
  • Проверяет обработку ошибок при взаимодействии
  • Тестируют потоки данных между компонентами

Пример:

Тест: при создании заказа должна отправиться квитанция на email
1. Вызвать API создания заказа
2. Проверить, что запись появилась в БД
3. Проверить, что было задание в queue на отправку email
4. Проверить, что email отправлен (mock SMTP)

3. System Testing (Системное тестирование)

Ответственность: QA team

Цель: проверить систему целиком в её реальном окружении как единое целое.

Типы системного тестирования:

  • Функциональное тестирование — все ли требования работают
  • Performance Testing — нагрузочное и стресс-тестирование
  • Security Testing — найти уязвимости (SQL injection, XSS, CSRF)
  • Usability Testing — удобство использования
  • Compatibility Testing — работает ли на разных браузерах, ОС, устройствах
  • Reliability Testing — стабильность при длительной работе

Инструменты: Selenium, Cypress, Playwright, OWASP ZAP, LoadRunner, JMeter, Burp Suite

Особенности:

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

4. User Acceptance Testing (UAT) / Acceptance Testing

Ответственность: бизнес, клиенты, конечные пользователи (под руководством QA)

Цель: проверить, что система соответствует бизнес-требованиям и готова к использованию пользователями.

Особенности:

  • Проводится на production-like окружении
  • Тесты основаны на бизнес-сценариях, а не техническом функционале
  • Проверяется удовлетворение требований stakeholders
  • Может включать нагрузочное тестирование реальным трафиком

Сценарий UAT:

1. Пользователь создает аккаунт
2. Загружает фото профиля
3. Подписывается на рассылку
4. Проверяет, что письма приходят вовремя
5. Подтверждает, что система работает как описано в требованиях

5. Smoke Testing (Дымовое тестирование)

Ответственность: QA team

Цель: быстрая проверка критического функционала после deploy на новое окружение.

Характеристики:

  • Выполняется перед более глубоким тестированием
  • Проверяет только основные потоки (happy path)
  • Результат: система работает достаточно стабильно для дальнейшего тестирования
  • Обычно автоматизировано

Примеры smoke тестов:

  • Приложение запускается
  • Можно залогиниться
  • Главная страница грузится
  • Критические кнопки работают

6. Regression Testing (Регрессионное тестирование)

Ответственность: QA team, CI/CD

Цель: убедиться, что новые изменения не сломали старый функционал.

Подход:

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

Инструменты: Selenium, Cypress, Playwright, запускаемые в CI/CD (Jenkins, GitHub Actions)

Практика:

Разработчик исправил баг в модуле авторизации
→ Запущены все регрессионные тесты, связанные с авторизацией
→ Проверяются login, logout, 2FA, session management
→ Если тесты прошли → merge PR

7. Exploratory Testing (Исследовательское тестирование)

Ответственность: опытный QA engineer

Цель: найти баги, которые сложно предусмотреть в запланированных тестах.

Методология:

  • Тестер самостоятельно исследует приложение
  • Использует интуицию и знание домена
  • Документирует найденные проблемы
  • Нет заранее написанных сценариев
  • Обычно time-boxed (1-4 часа)

Примеры исследовательского тестирования:

  • Попробовать вводить некорректные данные
  • Быстро кликать по кнопкам
  • Работать с приложением на слабом интернете
  • Открыть 50 браузерных вкладок и переключаться

8. Load/Performance Testing (Нагрузочное тестирование)

Ответственность: Performance QA specialist или DevOps

Цель: проверить, как система ведет себя под нагрузкой.

Виды:

  • Load Testing — система работает при ожидаемой нагрузке
  • Stress Testing — система работает при превышении нагрузки
  • Soak Testing — система стабильна при постоянной нагрузке долгое время
  • Spike Testing — внезапные скачки трафика

Инструменты: JMeter, LoadRunner, Gatling, k6

Метрики:

  • Response time
  • Throughput (requests/sec)
  • Error rate
  • CPU, Memory usage
  • Database connections

9. Security Testing (Тестирование безопасности)

Ответственность: Security QA или специализированный penetration tester

Проверки:

  • OWASP Top 10 уязвимости (SQL Injection, XSS, CSRF, Authentication flaws)
  • Data encryption — передача по HTTPS, хранение паролей
  • Authorization — правила доступа
  • Input validation — обработка некорректного ввода
  • API security — rate limiting, API key validation

Инструменты: OWASP ZAP, Burp Suite, Acunetix, Nessus

Цикл тестирования в Agile

В современных проектах все эти этапы встроены в каждый sprint:

День 1-3: Разработка + Unit Testing
→ Code Review + Integration Testing (CI)
→ Dev окружение: System Testing
→ Staging: UAT + Performance Testing
→ Production: Smoke Testing + Monitoring

Критерии готовности на каждом этапе

ЭтапКритерии готовности
Unit80%+ code coverage, все тесты green
IntegrationВсе компоненты взаимодействуют, ошибки обработаны
SystemФункционал соответствует требованиям, баги найдены
UATБизнес согласен, нет блокирующих багов
ProductionSmoke тесты прошли, мониторинг запущен

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

Какие знаешь этапы тестирования? | PrepBro