Материал Эйч · Опубликовано 27 октября 2026
Подготовка к отбору в команду тестирования унифицированной СХД: Python/PyTest, Linux на уровне админа, сети, CI/CD и основы enterprise-хранилищ.
Фишка: Продуктовый контекст СХД TATLIN.UNIFIED: тесты ближе к системному уровню (кластеры, сеть, железо), чем к типичному веб-SaaS; часто спрашивают Linux и сети наравне с автоматизацией.
| Этап | Длительность | Что проверяют |
|---|---|---|
| Скрининг / HR | 30–45 мин | Мотивация, опыт автоматизации на Python, готовность к продуктовой разработке СХД, формат работы и сроки выхода. |
| Техническое интервью | 60–90 мин | PyTest и структура автотестов, теория QA, Linux-команды и права, сети (NAT, MAC, OSI), CI/CD, иногда разбор прошлых проектов без углубления в NDA-детали. |
| Углублённое / командное | 60 мин | Сценарии тестирования распределённого хранилища, интеграционные и E2E-тесты, code review, работа с документацией и регрессией. |
Обязательный минимум
Плюсом будет
В какой последовательности должны создаваться тест-кейс, тест-план и требования?
Сначала требования (или их уточнённая версия), затем тест-план (стратегия, scope, риски), затем тест-кейсы на основе требований и техник дизайна.
Какими видами тестирования вы чаще занимались на практике: интеграционным, end-to-end или компонентным?
Назовите уровень, объясните границы: компонент — изолированный модуль; интеграция — связки сервисов/БД/API; E2E — сквозной сценарий пользователя или системы.
Как ты себя оценишь с точки зрения грейда для автотестов непосредственно?
Честная самооценка: что пишете сами (фикстуры, Page Object/слои, моки), что ревьюите, как участвуете в стратегии регрессии.
Фишка: Для СХД акцент на регрессии, длительных сценариях и стабильности стендов — покажите понимание рисков флаки-тестов.
Ловушка: Не путайте тест-план (документ уровня проекта) с набором тест-кейсов в TMS.
Что такое маркеры (marks) в pytest?
@pytest.mark.* — группировка (smoke, regression), skip/skipif, xfail; запуск: pytest -m smoke.
Работали ли вы с CI/CD-пайплайнами: создавали или редактировали job'ы?
Опишите триггеры, артефакты, параллельный запуск тестов, отчёты (JUnit/HTML), ретраи и кэш зависимостей.
Совет: Повторите фикстуры (scope session/module/function), parametrize и структуру conftest.py — типичная база для фреймворка в продуктовой команде.
Как посмотреть список запущенных процессов в Linux? Что показывает команда ps?
ps, ps aux / ps -ef; PID, CPU, MEM, TTY, команда; для интерактива — top/htop.
Что делает команда chown?
Меняет владельца и группу файла/каталога; chown user:group path; -R для рекурсии; нужны права root для чужих объектов.
Для чего обычно используется директория /etc?
Конфигурация системы и сервисов (не бинарники и не пользовательские данные).
Для чего используется утилита grep?
Поиск по содержимому (регулярки, -r по дереву, -i, контекст -A/-B/-C).
В каких ситуациях используются grep и find?
find — поиск файлов по имени/типу/времени; grep — по тексту внутри файлов; часто связка: find . -name '*.log' -exec grep -H error {} +.
Как найти строку error во всех логах в каталоге?
grep -r 'error' /path/to/logs или grep -Rni 'error' .; при необходимости zgrep для .gz.
Какие операции с файлами существуют?
Создание, чтение, запись, удаление, переименование, копирование, права, ссылки; в API — open/read/write/seek и т.д.
Как скопировать файл с одного Linux-сервера на другой?
scp, rsync, sftp; для автотестов — ещё артефакты из CI.
Как посмотреть, сколько места на корневом разделе?
df -h / ; du для детализации по каталогам.
Какие ты знаешь консольные редакторы в Linux?
vim/nano/emacs; для серверов чаще vim или nano.
Опыт установки и администрирования серверных Linux-дистрибутивов
Пакеты (apt/yum/dnf), systemd, сервисы, сеть, диски, пользователи, SSH, базовая безопасность.
Ловушка: На собесе часто дают практические мини-задачи в shell — держите под рукой chmod/chgrp, pipe и перенаправление вывода.
На какие уровни делится модель OSI?
7 уровней: физический, канальный, сетевой, транспортный, сеансовый, представления, прикладной; для ответа достаточно назвать и привязать TCP/IP.
Какие заголовки изменяются, когда домашний роутер пересылает пакет из локальной сети в интернет? Как ответ вернётся при NAT?
Исходящий: подмена src IP (и часто src port) на внешний адрес роутера; обратно — по таблице NAT по порту/сессии.
Сколько MAC-адресов будет у сетевой карты с четырьмя Ethernet-портами?
Обычно один MAC на интерфейс/порт физического уровня — уточняйте модель; часто 4 MAC на 4 порта, не один на всю карту.
Фишка: Для СХД и ЦОД сетевой стек — не «nice to have»: iSCSI/NFS и отказоустойчивость часто всплывают в продуктовых вопросах.
Что такое embedded-разработка (Arduino, Raspberry Pi): I2C-сенсоры, взаимодействие по UART?
Встраиваемые системы, шины I2C/SPI/UART, низкоуровневое взаимодействие с датчиками — полезно для понимания hardware-культуры компании.
Совет: Если опыта нет — честно скажите и покажите интерес к стыку QA и hardware-тестовых стендов.
Маркировка и выборочный прогон тестов
Есть набор автотестов PyTest: часть помечена @pytest.mark.smoke, часть @pytest.mark.regression и @pytest.mark.slow. Нужно в CI на каждый коммит гонять только smoke, а полную регрессию — ночью. Опишите маркеры, команду запуска и что положить в Jenkins job.
pytest -m smoke на PR; pytest -m 'regression and not slow' или полный pytest -m regression по расписанию; в Jenkins — отдельные stage, таймауты для slow, артефакт junit.xml.
Сложность: O(1) по логике организации
Диагностика по логам
В каталоге /var/log/app лежат ротированные логи app.log, app.log.1, app.log.2.gz. Найти все вхождения ERROR за последние сутки и вывести имя файла и строку.
find /var/log/app -type f -mtime -1 -exec grep -Hn 'ERROR' {} + ; для .gz: zgrep -Hn 'ERROR' app.log.*.gz; можно объединить с find по имени.Сложность: O(n) по объёму логов
Тест-дизайн для сценария СХД
Новая фича: создание тома (LUN) и подключение по iSCSI с двух хостов. Составьте краткий набор тест-кейсов: happy path, негативные и регрессионные проверки.
Happy: создать LUN, замаскировать на обоих инициаторах, запись/чтение. Негатив: неверные CHAP/credentials, превышение квоты, отключение одного пути. Регресс: существующие тома, снапшоты, failover при отказе порта (если в scope).
Сложность: Зависит от покрытия
3 дня
7 дней
14 дней
| Блок | Готов, если... |
|---|---|
| Теория тестирования | можешь объяснить порядок требования → план → кейсы и уровни тестирования |
| PyTest | можешь настроить маркеры и объяснить фикстуры разных scope |
| Linux | без подсказки находишь ошибки в логах и объясняешь chown/grep/find |
| Сети | перечисляешь уровни OSI и объясняешь NAT на бытовом примере |
| CI/CD | можешь описать разделение smoke и regression в Jenkins |
| Продукт | в двух предложениях объясняешь, зачем команде QA в TATLIN.UNIFIED |
В день собеседования