Какие знаешь этапы тестирования?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Какие знаешь этапы тестирования?
Тестирование ПО проходит через несколько последовательных этапов. Каждый этап имеет свои задачи, методы и критерии завершения. Я опишу классическую модель 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
Критерии готовности на каждом этапе
| Этап | Критерии готовности |
|---|---|
| Unit | 80%+ code coverage, все тесты green |
| Integration | Все компоненты взаимодействуют, ошибки обработаны |
| System | Функционал соответствует требованиям, баги найдены |
| UAT | Бизнес согласен, нет блокирующих багов |
| Production | Smoke тесты прошли, мониторинг запущен |
У опытного QA должно быть ясное понимание, на каком этапе что тестировать, какие инструменты использовать и как это встроено в процесс разработки.