Собеседование —  один из самых важных и волнительных этапов для любого специалиста. Независимо от опыта, возраста или других индивидуальных особенностей, каждый из нас так или иначе переживает за результат, но всё же надеется успешно пройти все этапы интервью. Безусловно, самым серьёзным из них является технический блок. Именно здесь у интервьюера больше всего возможностей вас «помучить» :)

Особенно остро это ощущают специалисты из направления QA/SDET, ведь информации действительно очень много. Но не переживайте: SimbirSoft спешит на помощь!

Меня зовут Кирилл, я SDET-специалист в компании SimbirSoft. В этой статье я собрал список вопросов, на которые обязательно стоит обратить внимание при подготовке — как начинающим специалистам, так и закалённым «воинам» в области обеспечения качества — QA Manual, QA Automation и SDET — вне зависимости от грейда.

Скрытый текст

Информации будет много — хватит как минимум на три статьи. Этот цикл можно рассматривать как набор шпаргалок, которые помогут быстро освежить в памяти ключевые темы и вопросы. Поэтому здесь не будет глубокого погружения в тему — только кратко и по делу ?

Для удобства восприятия и лучшей подготовки к собеседованию я разделил вопросы на следующие группы:

• Сети

• Теория тестирования/Процессы разработки и тестирования ПО

• Языки программирования/фреймворки/сопутствующие технологии

• Базы данных

• CI/CD

Сети

Первая часть цикла статей посвящена теории о сетях, клиент-серверном взаимодействии и всему, что к этому относится. На мой взгляд, этому не уделяют должного внимания. Неоднократно наблюдал за тем, как человек отлично отвечал теорию тестирования, однако простой вопрос о разнице между куки и кэшем вызывал трудности. Поэтому мы с моими коллегами собрали основные вопросы, которые часто задают на собеседованиях по данной теме. Мы разделили их на тематические блоки, а в конце каждого добавили полезные ссылки для лучшего закрепления материала.

Вопросы по архитектуре сетей

1) Что такое клиент-серверная архитектура?

Клиент-серверная архитектура — это принцип организации вычислительных процессов, при котором одна программа (клиент) запрашивает услуги или ресурсы у другой программы (сервера).

Клиентское приложение (например, браузер или мобильная программа) формирует и отправляет запрос по сети с использованием стандартных протоколов — HTTP, TCP/IP или WebSocket. Серверная часть (веб-сервер или СУБД) принимает запрос, обрабатывает его и возвращает результат: данные или уведомление об успешном выполнении операции.

Такой подход лежит в основе большинства современных онлайн-сервисов: клиент отвечает за интерфейс и инициирование действий, а сервер — за хранение данных, их обработку и реализацию бизнес-логики.

2) Назовите различия между TCP и UPD

TCP и UDP — это ключевые транспортные протоколы, но они принципиально отличаются по подходу к передаче данных. 

UDP (User Datagram Protocol) работает без установки соединения, не гарантирует доставку, порядок пакетов или их целостность, зато обеспечивает минимальные задержки, что критично для VoIP, стриминга и онлайн-игр. 

TCP (Transmission Control Protocol) устанавливает соединение, контролирует целостность данных, повторно отправляет потерянные пакеты и строго соблюдает порядок доставки, что делает его идеальным для HTTP, SMTP и FTP, где надёжность важнее скорости. 

Выбор между ними зависит от требований приложения: UDP предпочтителен для реального времени, а TCP — для задач, где ошибки недопустимы.

3) Что такое HTTP? Из чего он состоит? Отличие HTTP от HTTPS

HTTP (HyperText Transfer Protocol) — это протокол прикладного уровня, изначально созданный для передачи гипертекстовых документов, но теперь используемый для обмена любыми данными в веб-среде. Он работает по схеме «запрос — ответ» между клиентом (например, браузером) и сервером, используя TCP/IP в качестве транспортного уровня и не сохраняя состояние соединения между запросами (stateless). Структура HTTP-запроса:

  • стартовая строка (метод, URI, версия протокола),

  • заголовки (метаданные),

  • тело сообщения (опционально, например, полезную нагрузку).

Ответ сервера содержит статус-код, заголовки и данные.

HTTPS — это защищённая версия HTTP. Он использует TLS/SSL для шифрования, обеспечивая:

  • конфиденциальность (защита от перехвата),

  • целостность (защита от подмены данных),

  • аутентификацию (проверку подлинности сервера).

В отличие от HTTP, где данные передаются в открытом виде, HTTPS гарантирует безопасный обмен.

4) Что такое Websocket?

WebSocket — это современный протокол поверх TCP, обеспечивающий двусторонний (полнодуплексный) обмен данными между клиентом и сервером в реальном времени.

В отличие от HTTP, где для каждого запроса требуется новое соединение, WebSocket открывает постоянный канал связи. Это позволяет серверу отправлять данные клиенту без ожидания запроса.

Соединение устанавливается через специальный механизм handshake (обычно с помощью заголовка HTTP Upgrade), после чего канал переходит на WebSocket-протокол.

Такой подход идеально подходит для чатов, онлайн-игр, биржевых тикеров и push-уведомлений, где критична минимальная задержка. Например, в трейдинговых платформах WebSocket обеспечивает мгновенное обновление котировок, а в мультиплеерных играх — синхронизацию действий игроков без частых HTTP-запросов.

5) Какие категории ответа сервера существуют?

HTTP-коды состояния сервера разделены на 5 основных классов, каждый из которых отражает определенный тип ответа. 

  • 1xx — информационные. Промежуточные статусы. Пример: 100 Continue — сервер готов принять тело запроса.

  • 2xx — успешные. Подтверждают корректное выполнение. Пример: 200 OK — стандартный успешный ответ, 201 Created — ресурс успешно создан.

  • 3xx — перенаправления. Требуют дополнительных действий клиента. Пример: 301 Moved Permanently — ресурс перемещён навсегда, 302 Found — временный редирект.

  • 4xx — ошибки клиента. Указывают на проблемы в запросе. Пример: 400 Bad Request — синтаксическая ошибка, 403 Forbidden — нет доступа, 404 Not Found — ресурс не найден.

  • 5xx — ошибки сервера. Проблемы на стороне сервера. Пример: 500 Internal Server Error — внутренняя ошибка, 504 Gateway Timeout — превышено время ожидания ответа.

Эти коды особенно важны для диагностики проблем в распределенных системах и микросервисных архитектурах.

6) Модель OSI, TCP/IP

Модель OSI — это эталонная семиуровневая архитектура (физический, канальный, сетевой, транспортный, сеансовый, представления, прикладной), описывающая принципы сетевого взаимодействия, но на практике чаще используется упрощенная модель TCP/IP (4 уровня: сетевой интерфейс, интернет, транспортный, прикладной).

Ключевое отличие в том, что она объединяет верхние уровни OSI (5–7) в один прикладной уровень, а нижние (1–2) — в уровень сетевого интерфейса. Это делает модель более удобной для практической реализации.Примеры распределения протоколов:

  • Прикладной уровень — HTTP

  • Транспортный уровень — TCP, UDP

  • Интернет-уровень — IP

  • Уровень сетевого интерфейса — Ethernet, Wi-Fi

7) Что такое DNS?

DNS (Domain Name System) — это распределенная база данных, которая преобразует удобные для человека доменные имена (например, google.com) в машинно-читаемые IP-адреса (как 172.217.0.46), позволяя браузерам и другим сетевым приложениям находить нужные серверы в интернете. Работая как «телефонная книга интернета», DNS использует иерархическую структуру серверов (корневые, TLD, авторитативные), где запрос клиента последовательно проходит через резолвер, корневой сервер, сервер домена верхнего уровня (.com, .net) и finally авторитативный сервер домена.

Для обеспечения надежности DNS поддерживает несколько типов записей: A (IPv4), AAAA (IPv6), MX (почтовые серверы), CNAME (алиасы) и TXT (произвольные текстовые данные), а также использует кеширование на стороне интернет-провайдеров и локальных устройств для ускорения разрешения имен. 

8) В чем отличие URI/URN/URL?

URI (Uniform Resource Identifier) — это общее понятие для идентификации ресурсов, которое включает две основные подкатегории:

  1. URL (Uniform Resource Locator) — указывает не только на ресурс, но и на его местоположение и способ получения (например, https://example.com/page.html включает протокол, домен и путь)

  2. URN (Uniform Resource Name) — идентифицирует ресурс по постоянному уникальному имени без привязки к местоположению (например, urn:isbn:0451450523 для книги)

Главное отличие в том, что URL всегда содержит информацию о доступе к ресурсу (протокол + адрес), тогда как URN — это постоянный уникальный идентификатор, не зависящий от местоположения.

Вопросы по браузерным технологиям

1) Что такое DevTools?

Chrome DevTools — это набор инструментов для веб-разработки и тестирования, встроенный в браузер Google Chrome. В отличие от простого просмотра исходного кода DevTools позволяет интерактивно исследовать DOM-структуру, профилировать производительность и анализировать сетевые запросы, что делает его незаменимым инструментом для комплексного тестирования.

Ключевые вкладки DevTools:

  • Elements — инспектирование и изменение DOM и CSS.

  • Console — выполнение JavaScript-кода и логирование ошибок.

  • Network — мониторинг HTTP-запросов и анализ WebSocket-соединений.

  • Performance — запись метрик производительности и поиск «узких мест» рендеринга.

  • Application — работа с Local/Session Storage и проверка Cookies.

2) Различие между куки и кэшем?

 Различие между cookies и кэшем
Куки (cookies) и кэш служат различным целям в веб-экосистеме:

  • Куки (cookies) — это небольшие текстовые файлы, которые хранят персонализированные данные: идентификаторы сессий, настройки и предпочтения пользователя. Они автоматически отправляются на сервер с каждым HTTP-запросом (через Cookie header).

  • Кэш — это локальное хранилище браузера для статических ресурсов (CSS, JS, изображения), которое позволяет ускорять повторные загрузки страниц. В отличие от куки, кэш не передаётся серверу, а используется только браузером.

3) Какие есть виды/методы авторизации?

В современных системах чаще всего применяются три основные модели авторизации: ролевая (RBAC), избирательная (ABAC) и мандатная (MAC).

  1. Ролевая модель (RBAC) — пользователям назначаются предопределённые роли (администратор, модератор, гость), каждая из которых имеет фиксированный набор прав. Подходит для стандартных корпоративных систем, где структура доступа устойчива и заранее определена.

  2. Избирательная модель (ABAC) — более гибкий подход, позволяющий настраивать доступ на основе атрибутов пользователя и ресурса. Например, можно разрешить редактирование конкретного документа только определённым сотрудникам. Такой метод хорошо подходит для облачных сервисов (например, Google Drive).

  3. Мандатная модель (MAC) — строгая система, применяемая в госсекторах и банках. Данные классифицируются по уровням секретности: если у пользователя есть доступ к более высокому уровню, он автоматически получает доступ и ко всем нижестоящим.

4) Отличия аутентификации, авторизации и идентификации?

Идентификация — процесс распознавания пользователя по уникальным данным (логин, email, ID). Отвечает на вопрос: «Кто вы?». Пример: ввод email при входе.

Аутентификация — проверка подлинности пользователя, подтверждение, что именно он, а не кто-то другой. Отвечает на вопрос: «Вы действительно тот, за кого себя выдаёте?». Методы: пароль, одноразовый код (OTP), биометрия, токены (JWT).

Авторизация — определение прав доступа. Отвечает на вопрос: «Что вам разрешено?». Пример: администратор имеет доступ к панели управления, а гость может только просматривать контент без права редактирования.

Этап

Процесс

Как происходит

Цель

Первый

Идентификация

Пользователь предоставляет имя или логин, которые дают системе понять, кто именно пытается получить доступ к ресурсам.

Узнать, кто хочет получить доступ к системе.

Второй

Аутентификация

Пользователь подтверждает свою личность — вводит пароль, который сравнивается с информацией в базе данных.

Проверить подлинность пользователя.

Третий

Авторизация

После проверки пользователя система определяет, какие ресурсы и действия ему доступны.

Предоставить доступ к информации только определенным пользователям.

5) Что такое JWT (JSON Web Token)?

JWT представляет собой компактный и самодостаточный стандарт для безопасной передачи данных между сторонами в формате JSON, где токен состоит из трех частей: заголовка (алгоритм шифрования), полезной нагрузки (данные пользователя) и цифровой подписи (верификация подлинности). Особенность JWT в том, что он позволяет серверу не хранить состояние сессии — вся необходимая информация содержится в самом токене, который подписывается секретным ключом (HMAC) или парой ключей (RSA).

Полезные ссылки

Клиент-сервер

1) Клиент-серверная архитектура. Веб-сайт, веб-приложение и веб-сервис

Клиент-сервер архитектура простыми словами. Что такое клиент-сервер?

2) TCP и UDP/ В чем отличия протоколов

Отличия TCP- и UDP-протоколов — определяем разницу на примерах

3) Что такое HTTP и зачем он нужен

HTTP-запросы: структура, методы, строка статуса и коды состояния

4) WebSocket

5) Про модель OSI и стек TCP/IP простыми словами. Как оно работает?

Модели OSI и TCP/IP

6) Основы DNS: понятие, иерархия, записи

Браузеры

1) Devtools для тестировщика | devtools QA | применение на практике

Chrome DevTools

DevTools: инструменты разработчика в браузере

2) Кэш VS куки

HTTP-куки

Кэш

3) Сессии

Авторизация: все, что вам нужно знать

Вы кто такие, я вас не знаю, или Как мы делаем JWT-аутентификацию

4) Что такое AJAX

Заключение

Надеюсь, эта статья была для вас полезной и помогла немного освежить в памяти вопросы, о которых мы говорили выше. В следующей части мы разберём все необходимое по теме теории тестирования и процессах. 

До выхода продолжения ЗАПРЕЩАЮ вам ходить на собеседования — ещё накосячите, потом придётся срочно бежать на курсы и отдавать за них 200+ тысяч ?

Поэтому следите за нашим блогом, ждите новые статьи, экономьте деньги и время, и конечно же, пишите комментарии!

Больше авторских материалов для SDET-специалистов от моих коллег читайте в соцсетях SimbirSoft – ВКонтакте и Telegram.

Комментарии (0)