Какие есть виды тестирования
Виды тестирования — это классификация проверок программного обеспечения по целям, уровню доступа к коду, глубине проверки и моменту проведения. На практике все виды тестирования можно разделить на три основные группы: функциональное, нефункциональное и тестирование, связанное с изменениями. Такая группировка помогает команде выбирать нужные проверки на каждом этапе разработки и эффективно распределять ресурсы.
Функциональное тестирование
Функциональное тестирование проверяет, что ПО выполняет функции, ради которых оно создано. Оно отвечает на вопрос «что делает система?» и включает несколько подгрупп:
- По доступу к коду: черный ящик (без знания кода), белый ящик (с полным знанием кода), серый ящик (частичное знание).
- По уровню глубины: верхний уровень — тестирование пользовательского интерфейса; средний — тестирование API и бэкенда; нижний — тестирование баз данных; интеграционное — проверка взаимодействия между компонентами.
- По инструменту: ручное и автоматизированное тестирование.
Пример функционального теста: проверка, что при вводе корректных данных в форму авторизации пользователь попадает в личный кабинет.
Нефункциональное тестирование
Нефункциональное тестирование проверяет характеристики системы, не связанные с её функциональностью, но влияющие на качество продукта. К нему относятся:
- Нагрузочное тестирование — проверка поведения системы под ожидаемой нагрузкой.
- Стресс-тестирование — проверка работы системы при нагрузке, превышающей нормальные значения.
- Тестирование надежности — проверка стабильности работы в течение длительного времени.
- Тестирование безопасности — проверка защиты от несанкционированного доступа.
- Тестирование удобства использования (юзабилити) — оценка того, насколько интерфейс понятен и удобен.
- Тестирование локализации — проверка корректности перевода и адаптации к региональным особенностям.
- Тестирование масштабируемости — проверка способности системы расширяться при росте нагрузки.
Пример нефункционального теста: проверка, что время ответа сервера не превышает 2 секунд при 1000 одновременных пользователей.
Тестирование, связанное с изменениями
Эти виды тестирования проводятся после внесения изменений в продукт и направлены на проверку того, что изменения не сломали существующую функциональность:
- Смоук-тестирование — быстрая проверка критически важного функционала после сборки, чтобы убедиться, что система запускается и основные сценарии работают.
- Ретест — повторная проверка конкретного дефекта после его исправления.
- Регрессионное тестирование — проверка того, что изменения не повлияли на уже работающие функции.
- Санитарное тестирование — узкая проверка после внесения изменений, направленная на конкретный компонент.
Пример: после исправления ошибки в модуле оплаты проводится ретест этого модуля, а затем регрессионное тестирование всего процесса оформления заказа.
Коротко
- Основные группы видов тестирования: функциональное, нефункциональное и связанное с изменениями.
- Функциональное тестирование проверяет, что система делает то, что должна, и делится по доступу к коду, уровню глубины и инструменту.
- Нефункциональное тестирование охватывает нагрузку, безопасность, удобство использования, надежность и другие характеристики.
- Тестирование изменений включает смоук, ретест, регрессионное и санитарное тестирование.
