Что такое сервис?
Что проверяют
Вопрос звучит нарочито широко, и это часть проверки: заметите ли вы неоднозначность и уточните ли, о чём речь. Дальше интервьюер смотрит, умеете ли вы тестировать систему не через интерфейс пользователя, а на уровне того, что этот интерфейс вызывает.
Как отвечать
Определение своими словами: сервис это самостоятельно разворачиваемая единица, которая решает отдельную задачу и доступна другим только через явный контракт, чаще всего по сети. Полезно сразу уточнить, какой смысл имеется в виду: веб-сервис, микросервис в архитектуре продукта или системная служба.
Для тестировщика главное, что у сервиса есть точка входа без интерфейса, а значит его можно проверять напрямую. Что смотреть:
- контракт: коды ответов, структура и типы полей, обязательность, поведение на граничных и некорректных значениях;
- идемпотентность: что будет, если повторить тот же запрос дважды, особенно после таймаута;
- права: видит ли пользователь чужие данные, проверяется ли доступ на каждой операции, а не только в интерфейсе;
- зависимости: как сервис ведёт себя, когда соседний не отвечает или отвечает медленно, есть ли таймаут и понятная деградация;
- совместимость: не ломает ли новая версия уже существующих потребителей.
Сильный ответ заканчивается уровнями проверки: основное закрывается тестами самого сервиса и контрактными тестами между потребителем и поставщиком, а сквозные сценарии остаются для немногих ключевых путей.
Где спотыкаются
Сводят сервис к набору запросов и проверяют только успешные ответы. За рамками остаются отказы зависимостей, таймауты и повторная отправка, а именно там живут самые дорогие дефекты.
Проверяют всё через интерфейс. Такие тесты медленные и нестабильные, а падение показывает лишь то, что где-то сломалось, без указания на слой, и локализовать дефект приходится вручную.
Полагаются на заглушки и не сверяют их с реальностью. Заглушка отвечает по устаревшей схеме, тесты зелёные, а на общем стенде интеграция не работает. Спасают контрактные тесты и проверка заглушек против актуальной спецификации.