Было ли много внешних интеграций на проекте
Что проверяют
Интервьюер хочет понять, тестировали ли вы то, что вам не принадлежит и может сломаться в любой момент: платёжные шлюзы, банковские API, доставку, SMS, CRM. Следом обычно спрашивают, как вы тестировали интеграцию, когда у партнёра лежит песочница, и какие дефекты находили чаще всего.
Как отвечать
Начните с масштаба: сколько было интеграций, какие протоколы (REST, SOAP, вебхуки, обмен файлами), какие из них завязаны на деньги. Потом опишите подход:
- песочницы партнёров: тестовые карты и тестовые магазины у платёжных провайдеров, отдельные ключи, ограничения песочницы и её отличия от боевой среды;
- заглушки: WireMock или MockServer, чтобы воспроизводить ответы, которых в песочнице не добиться: таймаут, 500, битый JSON, медленный ответ;
- API-тесты: Postman с Newman в CI, REST Assured или pytest с
requests, проверка схемы ответа; - контрактные тесты: Pact или хотя бы сверка ответа с OpenAPI-схемой, чтобы узнать об изменении формата у партнёра раньше пользователей;
- негативные сценарии: повторная отправка запроса и идемпотентность, дубли и неверный порядок вебхуков, проверка подписи вебхука, поведение при недоступности партнёра и повторные попытки;
- сверка: для денег обязательна проверка, что статус платежа у нас совпадает со статусом у провайдера.
Приводите свои примеры: какая интеграция, какой найденный баг, как его воспроизвели. Если интеграций было мало, скажите об этом прямо и подробно расскажите про ту, что была. Если не было вовсе, опишите, как построили бы тестирование, и сошлитесь на похожий опыт с внутренними сервисами.
Где спотыкаются
Называют Selenium инструментом для тестирования API. Это автоматизация браузера, для API есть другие средства, и такая оговорка сразу снижает доверие.
Тестируют только позитивный сценарий в песочнице. Основные дефекты интеграций живут в таймаутах, повторах и дублях, а песочница их почти не воспроизводит.
Приводят круглые проценты вроде «ошибок стало на 30% меньше» без источника. Сильнее конкретный случай: двойное списание при повторном вебхуке, пойманное до релиза.