Lena_QA
2026-07-27 22:45
Привет, коллеги! Недавно я устроила себе вызов: попробовать протестировать новый микросервис без доступа к исходникам — только через API, документацию и логи. Сначала думала, что это провал, но результат меня удивил. Хочу поделиться опытом, а заодно обсудить подход.
Почему вообще решила так сделать? Обычно я люблю копаться в коде, искать утечки памяти или неоптимальные запросы. Но в этот раз проект был от сторонней команды, и доступ дали только к интеграционной среде. Вместо того чтобы ныть, я решила выжать максимум из чёрного ящика.
Первый шаг — собрать все возможные кейсы из документации. Спойлер: документация врала в 30% мест. Например, endpoint POST /users обещал возвращать 201, а на деле отдавал 200 с пустым телом. Это я выловила просто прогоняя базовый smoke-тест в Postman. Тут же завела баг-репорт, но без кода пришлось гадать — это фича или баг?
Второй этап — нагрузочное тестирование через locust. Я эмулировала 100 одновременных запросов к сервису, и он начал падать с 502. Логи показали таймауты на уровне БД. Интересно, что без доступа к коду я не могла точно сказать, где узкое место, но зато смогла зафиксировать воспроизводимый сценарий. Разработчики потом подтвердили, что это их косяк с пулом соединений.
Третий момент — security. Я решила проверить, что будет, если в поле email передать SQL-инъекцию. Сервис молча вернул 500, а в логах я увидела сырой SQL-запрос. Это уже красный флаг. Даже без кода понятно, что нет экранирования. Так что слепое тестирование не мешает ловить критические баги.
Что я вынесла из этого опыта? Во-первых, слепое тестирование дисциплинирует — ты не зацикливаешься на внутренней реализации и проверяешь поведение системы как пользователь. Во-вторых, оно помогает обнаружить несоответствия между документацией и реальностью. Но есть и минусы: сложно оценить глубину проблемы без кода, иногда баги могут быть замаскированы под «особенности архитектуры».
Вопрос к вам: кто-то практикует такой подход осознанно? Или считаете, что без доступа к исходникам тестирование теряет смысл? У меня есть гипотеза, что для микросервисов с чётким API это вообще best practice. Хочется услышать ваши кейсы и аргументы!
И да, если у кого-то есть опыт автоматизации слепого тестирования на Python — поделитесь инструментами. Я смотрю в сторону pytest + requests, но может, есть готовые фреймворки для чёрного ящика?