Какие виды тестирования вы используете: юнит или функциональные тесты и с какими инструментами
Что проверяют
Понимаете ли вы уровни тестирования и умеете ли объяснить, что каким уровнем проверяете. Ответ «пишу юнит-тесты» без деталей слабый.
Как отвечать
Разложите по уровням и назовите инструменты.
> «Основная масса это модульные тесты на pytest: чистая логика, расчёты, разбор данных, без базы и сети. Быстрые, гоняются на каждое изменение. > > Интеграционные проверяют стыки: репозиторий с настоящей базой в контейнере через testcontainers, клиент внешнего API с поднятым заглушечным сервером. Их меньше, но именно они ловят ошибки схемы и запросов. > > Функциональные на уровне API: поднимаю приложение и дёргаю ручки через httpx, проверяю коды, тело, права доступа. Отдельно негативные сценарии: чужой идентификатор, невалидное тело, истёкший токен. > > Сквозные держу минимально, только критичный путь: они дороги и нестабильны».
Инструменты стоит назвать точно: pytest с фикстурами и параметризацией, pytest-cov для покрытия, unittest.mock и responses для подмены, factory_boy для данных, hypothesis для проверки свойств, testcontainers для зависимостей.
Полезно добавить принцип: тест проверяет поведение, а не реализацию. Тест, который ломается от переименования приватного метода, стоит дороже, чем приносит.
Где спотыкаются
Называют все свои тесты юнит-тестами, хотя половина ходит в базу.
Гонятся за процентом покрытия вместо проверки важных путей.
Мокают всё подряд, из-за чего тест проверяет моки, а не код.
Не пишут негативные сценарии, а именно там живут дефекты доступа.