Раздел 15 · Общие IT-компетенции

Гуру тестирования: непокрытое, инфраструктура, pairwise

senior~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Гуру тестирования: непокрытое, инфраструктура, pairwise

Сеньорский уровень в тестировании это не «пишет больше тестов», а смена позиции: ты отвечаешь не за свои тесты, а за уверенность всей команды. Это значит видеть непокрытые риски, держать тестовую инфраструктуру быстрой и честной, знать специальные виды тестирования и уметь передавать культуру дальше.

Поиск непокрытого

Покрытие строк отвечает на вопрос «какой код выполнялся», но молчит о главном: «какие поломки тесты реально поймают». Сто процентов coverage с пустыми ассертами не ловят ничего.

Инструменты честнее coverage:

  • Mutation testing. Stryker портит код и смотрит, заметят ли тесты. Выжившие мутанты показывают дыры точнее любого отчёта о покрытии.
  • Риск-карта. Список «что может сломаться дорого»: деньги, данные, доступ. Сопоставь его с тестами и увидишь, что платёжный вебхук покрыт хуже, чем форматирование дат.
  • Прод как источник. Каждый инцидент это найденная дыра: регрессия без теста имеет привычку возвращаться.

Глубина в уроках Mutation testing и Метрики тестирования.

Оптимизация тестовой инфраструктуры

Медленные тесты не просто раздражают, они меняют поведение людей: тесты перестают запускать локально, пайплайн обходят флагом, прогон «на всякий случай» исчезает. Время прогона это продукт, у которого ты продакт.

Рычаги, в порядке отдачи:

  1. Профилирование набора. Топ-20 самых медленных тестов почти всегда дают непропорциональный вклад. Сначала измерь, потом чини.
  2. Параллельность с изоляцией. Шардирование по воркерам в CI и данные, не пересекающиеся между тестами. Без изоляции параллельность порождает flaky.
  3. Пирамида на уровне CI. Быстрые юниты на каждый коммит, тяжёлые E2E на merge и по расписанию. Не всё должно бежать всегда.
  4. Карантин для flaky. Нестабильный тест не «перезапустим три раза», а билет в карантин с владельцем и сроком: иначе доверие к красному билду умирает.
  5. Кеши и тёплые окружения. Сборка зависимостей, докер-слои, заранее поднятая база: минуты на каждом прогоне.

Подробности в уроках Параллелизм и изоляция, CI, отчёты и DX и Карантин и flaky.

Performance и security testing

Два специальных вида тестирования, которые на сеньорском уровне нужно уметь хотя бы поставить как задачу:

Нагрузочное. Не «запустим сто запросов», а сценарий с целью: профиль нагрузки (RPS, распределение по эндпоинтам), критерий (p95 < 300ms при 500 RPS), окружение, похожее на прод. Инструменты вроде k6 описывают сценарий кодом и встраиваются в CI. Отдельные жанры: stress (где предел), soak (что течёт за ночь), spike (переживём ли рекламу).

Security. Минимум сеньора: прогнать чек-лист OWASP по своей системе (инъекции, авторизация, секреты в логах), держать зависимости под автоматическим аудитом, понимать, что pentest заказывают у специалистов, а не имитируют сами. База по теме в разделе 12, Security.

дальше после входа

Урок целиком открыт всем, кто вошёл. Войди по своему email, чтобы читать дальше.

Вход пока по приглашению. Если хочешь учиться, напиши Vassiliy.