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