Виды тестирования: полная классификация с примерами

Видов тестирования много, но они не свалены в кучу: это несколько независимых классификаций, наложенных друг на друга. Один и тот же тест одновременно относится к нескольким.

Главное, что стоит понять сразу: виды тестирования не исключают друг друга. Один прогон бывает одновременно системным, чёрного ящика, функциональным и ручным. Это как описывать человека: рост, возраст и профессия — независимые характеристики.

По уровням: насколько крупный кусок проверяем

УровеньЧто проверяемКто обычно делает
Модульное (unit)Отдельную функцию в отрыве от остальногоРазработчик
ИнтеграционноеСовместную работу модулей и сервисовРазработчик или тестировщик
СистемноеПродукт целиком со стороны пользователяТестировщик
ПриёмочноеСоответствие тому, ради чего всё делалосьЗаказчик, бизнес, иногда пользователи

Чем ниже уровень, тем дешевле и быстрее тест и тем точнее он показывает место поломки. Чем выше — тем ближе к реальному использованию. Отсюда идея пирамиды: много быстрых модульных тестов внизу, немного медленных сквозных наверху.

По знанию внутреннего устройства

По цели: функциональное и всё остальное

Функциональное отвечает на вопрос «делает ли система то, что должна». Всё остальное принято называть нефункциональным — оно про то, как она это делает.

ВидВопрос, на который отвечает
ПроизводительностьВыдержит ли нагрузку и как быстро отвечает
НагрузочноеЧто будет при ожидаемом числе пользователей
СтрессовоеГде ломается и как восстанавливается после
БезопасностьМожно ли получить чужие данные или права
Удобство (UX)Поймёт ли человек, что делать, без инструкции
ДоступностьСможет ли пользоваться человек с ограничениями
СовместимостьРаботает ли в разных браузерах, ОС, на разных экранах
ЛокализацияНе ломается ли вёрстка и смысл на другом языке

По времени и поводу для запуска

💡 Частая путаница

Ретест и регресс — не синонимы. Ретест отвечает «починили ли этот баг», регресс — «не сломалось ли рядом». После исправления нужны оба.

По способу исполнения и по подходу

Ручное — человек проходит сценарий сам. Автоматизированное — тот же сценарий выполняет программа. Автоматизация окупается на том, что повторяется часто и стабильно; на редких и постоянно меняющихся сценариях она дороже, чем польза от неё.

Отдельно стоит исследовательское тестирование: тестировщик изучает продукт и одновременно придумывает проверки, а не идёт по готовому списку. Именно так находят то, чего нет ни в одном чек-листе, — и именно это ИИ пока не умеет.

Как это выглядит на реальном проекте

Классификации полезны для понимания, но в работе никто не говорит «сейчас проведу системное функциональное тестирование методом чёрного ящика». Говорят проще: «прогоню смоук», «проверю регресс по оплате», «посмотрю на мобилке».

Обычный цикл вокруг одной задачи выглядит так:

  1. Разработчик выкатил сборку на тестовый стенд — тестировщик прогоняет смоук, чтобы понять, есть ли смысл продолжать.
  2. Проверяет новую функцию по чек-листу — это функциональное системное тестирование, хотя так его никто не называет.
  3. Заводит дефекты, разработчик чинит — тестировщик делает ретест каждого исправления.
  4. Перед релизом гоняется регресс: то, что раньше работало, должно работать и сейчас.
  5. После выката на прод — короткая проверка ключевых сценариев уже на боевом.

Нефункциональные виды подключаются точечно: нагрузочное — перед распродажей, безопасность — когда появляются платежи или персональные данные, доступность — если этого требует заказчик или закон.

Как выбрать, что применять на своей задаче

Полный список видов бесполезен, пока не понятно, что взять сегодня. Ориентируйтесь на риск: чем дороже ошибка в этом месте, тем больше видов подключается.

Что менялиЧто применить
Текст на кнопкеПроверка соответствия макету, локализация если языков несколько
Логика расчёта скидкиФункциональное, границы, проверка данных в базе
Форма оплатыФункциональное, негативное, безопасность, проверка на мобильных
Переезд на новый серверSmoke, регресс, производительность, совместимость
Новый раздел целикомВсё перечисленное плюс исследовательское — там больше всего неизвестного

Что чаще всего путают

Нужно ли новичку знать нефункциональные виды?

На уровне «что это и когда применяют» — да, про них спрашивают. Проводить нагрузочное или тестирование безопасности от junior обычно не ждут: это отдельные специализации со своими инструментами.

Сколько всего видов тестирования?

Закрытого списка нет: классификации пересекаются, и разные источники дробят их по-разному. Практический минимум — уметь объяснить уровни, чёрный и белый ящик, функциональное и нефункциональное, smoke, регресс и ретест.

Какие виды спрашивают на собеседовании?

Чаще всего разницу между smoke, регрессом и ретестом; уровни тестирования; чёрный и белый ящик. Другие вопросы — в подборке с собеседований.

С чего начинать изучение?

С уровней и с пары smoke/регресс — они встречаются в работе каждый день. Остальное укладывается само, когда появляется практика.