Middle QA в системном интеграторе: функциональное и интеграционное тестирование, API/SOAP, SQL и Agile-команды на корпоративных и банковских проектах
Фишка: ИЦ АЙ-ТЕКО — системный интегратор с 1997 года, проекты для госсектора, банков и крупного бизнеса. На этой позиции ценят опыт интеграционного тестирования, работу в Scrum-командах со спринтами 1–2 недели и анализ дефектов после промышленной эксплуатации и ПСИ.
| Этап | Длительность | Что проверяют |
|---|---|---|
| HR-скрининг | 30–45 мин | Мотивация, опыт 3+ лет, формат удалённой работы, зарплатные ожидания, готовность к проектам системной интеграции |
| Техническое интервью | 60–90 мин | Теория тестирования, тест-дизайн, SQL, API/SOAP, опыт с Jira/ALM, вопросы по прошлым проектам и Agile-процессу |
| Практическая часть | 45–60 мин | Составление тест-кейса по требованиям, SQL-запрос, тестирование API в Postman или разбор интеграционного сценария |
| Финальное интервью | 30–45 мин | Софт-скиллы, работа в команде, анализ дефектов на проде, соответствие корпоративной культуре |
Обязательный минимум
Плюсом будет
Какие знаешь техники тестирования дизайна?
Эквивалентное разбиение, граничные значения, таблицы решений, попарное (pairwise), диаграммы переходов состояний, предугадывание ошибок. Приведи пример применения на реальном кейсе.
Расскажи про свой опыт работы с техниками тест-дизайна
Опиши конкретный модуль: какие техники выбрал, почему, сколько тест-кейсов получилось, что нашёл.
Как составлял тест-кейс?
Структура: ID, название, предусловия, шаги, ожидаемый результат, приоритет. Упомяни связь с требованиями (трассировка).
Есть ли опыт тестирования требований?
Проверка на полноту, непротиворечивость, тестируемость, однозначность. Вопросы к аналитику/заказчику до начала тестирования.
Что такое приёмочное тестирование?
UAT/ПСИ — проверка соответствия бизнес-требованиям заказчика перед вводом в эксплуатацию. Отличие от функционального и интеграционного.
Фишка: В вакансии явно указан опыт анализа дефектов по итогам ПСИ и промышленной эксплуатации — подготовь 1–2 кейса с разбором инцидента.
Совет: На техсобесе часто дают мини-задание: «составь тест-кейсы для формы перевода» — думай вслух, используй техники тест-дизайна.
Какие знаешь методы интеграционного тестирования?
Big Bang, Top-Down, Bottom-Up, Sandwich. Инкрементальная интеграция vs единовременная. Заглушки (stubs) и драйверы (drivers).
Что такое интеграция?
Взаимодействие модулей/систем через интерфейсы (API, БД, очереди). Проверка корректности обмена данными между компонентами.
В чём разница между функциональным и интеграционным тестированием?
Функциональное — соответствие требованиям отдельного модуля. Интеграционное — корректность взаимодействия между модулями/сервисами.
Что такое жизненный цикл бага?
New → Open → In Progress → Fixed → Retest → Verified → Closed. Возможны Reopen, Rejected, Deferred. Зависит от workflow в Jira/ALM.
Как была устроена документация на прошлом проекте?
Тест-план, тест-кейсы, чек-листы, матрица трассировки, баг-репорты. Где хранились (Jira, Confluence, ALM).
Ловушка: Не путай интеграционное тестирование с E2E: интеграционное фокусируется на стыках компонентов, E2E — на полном пользовательском сценарии.
Фишка: АЙ-ТЕКО — системный интегратор: интеграционное тестирование — ключевой навык, а не «плюс».
Какими пользуешься инструментами для тестирования API?
Postman, SoapUI, curl, Swagger/OpenAPI. Для SOAP — SoapUI, XML-валидация по WSDL/XSD.
Есть ли опыт работы с SOAP?
XML-формат, WSDL-описание, операции (методы), envelope/header/body. Отличия от REST: протокол жёстче, контракт через WSDL.
Что такое GET-запрос?
HTTP-метод для получения данных. Идемпотентный, данные в URL (query params). Не для передачи чувствительных данных.
Как передаются данные в GET?
Query string: ?key=value&key2=value2. Ограничение длины URL. Для больших/секретных данных — POST.
Из чего состоит запрос на сервер?
Request line (метод, URL, версия HTTP), Headers, Body (для POST/PUT/PATCH). Response: status code, headers, body.
В чём разница между JSON и XML?
JSON — легковесный, для REST API. XML — теги, атрибуты, namespaces, для SOAP/legacy. Оба — форматы сериализации данных.
Есть ли опыт работы в Postman с переменными?
Environment/collection/global variables, {{var}}, pre-request scripts, тесты в Tests-tab (pm.test, pm.response).
Что такое Websocket?
Двусторонняя связь поверх TCP, постоянное соединение. Для чатов, уведомлений, real-time. Отличие от HTTP request-response.
Что такое клиент-серверная архитектура?
Клиент отправляет запросы, сервер обрабатывает и отвечает. Роли: frontend, backend, БД. QA тестирует каждый слой и их взаимодействие.
Совет: Для SOAP подготовь: как валидировать XML-ответ, что проверять в WSDL, типичные ошибки (wrong namespace, schema validation).
Ловушка: GET не должен изменять состояние сервера — если меняет, это нарушение REST-контракта.
Как оцениваешь свой уровень знания SQL?
Честно оцени: SELECT/JOIN/подзапросы/агрегации/DDL. Приведи пример сложного запроса из проекта (3+ таблицы).
Расскажи про свой опыт работы с SQL
Как использовал: проверка данных после теста, подготовка тестовых данных, валидация миграций, поиск багов в БД.
Какие знаешь виды баз данных?
Реляционные (PostgreSQL, Oracle, MS SQL) vs NoSQL (MongoDB, Redis). ACID, транзакции, индексы.
Что такое первичный ключ (Primary Key)?
Уникальный идентификатор строки, NOT NULL. Составной PK — из нескольких столбцов. Отличие от UNIQUE и FOREIGN KEY.
Фишка: В вакансии SQL на «хорошем уровне»: JOIN 3+ таблиц, вложенные запросы, работа с датами, DDL. Готовься к live-задаче.
Совет: Повтори: INNER/LEFT/RIGHT JOIN, GROUP BY + HAVING, подзапросы в WHERE и FROM, DATE_TRUNC/TO_CHAR для дат.
Как был устроен рабочий процесс на прошлом проекте?
Scrum: спринты 1–2 недели, daily, planning, review, retro. Как QA участвовал: оценка, тестирование в спринте, демо.
Как получал задачи на прошлом проекте?
Jira/ALM: бэклог → спринт → статусы (To Do → In Progress → Testing → Done). Связь с требованиями.
Какой стек использовал на прошлом проекте?
Инструменты: Jira, Confluence, Postman, SQL-клиент, CI/CD. Языки автотестов если есть.
Какие специалисты были в команде на прошлом проекте?
PO/аналитик, dev, QA, devops, PM/Scrum Master. Роль QA в кросс-функциональной команде.
Какой опыт автоматизации тестирования?
Фреймворк (Selenium, RestAssured, Pytest), что автоматизировал (API/regression), CI-интеграция. Честно если только ручное.
Расскажи про свой опыт работы с автоматизацией
Конкретный пример: что автоматизировал, ROI, поддержка тестов, Page Object если UI.
Что такое Page Object?
Паттерн: каждая страница — класс с локаторами и методами. Уменьшает дублирование, упрощает поддержку UI-тестов.
Фишка: Вакансия требует опыт HP ALM и Jira: кроссировка требований с тестами, ревью тестов, работа с дефектами.
Совет: Расскажи про участие в ретро: какие QA-метрики предлагал (defect leakage, test coverage).
Какие инструменты используешь для тестирования мобильных приложений?
Android Studio Emulator, Xcode Simulator, реальные устройства, Charles/Fiddler для трафика, Firebase Crashlytics.
Что такое ADB?
Android Debug Bridge — CLI для Android: установка APK, логи (logcat), скриншоты, перезагрузка, эмуляция жестов.
Можно ли подменить данные в ответе сервера в Charles?
Да, через Breakpoints или Map Local/Rewrite. Полезно для тестирования edge cases без изменения бэкенда.
Совет: Мобильное тестирование — плюс, не обязательное. Если есть опыт — кратко опиши 1 кейс (краш, сеть, ориентация экрана).
SQL: найти клиентов с просроченными платежами
Есть таблицы: clients(id, name), accounts(id, client_id, balance), payments(id, account_id, amount, payment_date, status). Напиши запрос: найти имена клиентов, у которых есть платежи со статусом 'overdue' за последние 30 дней, и общая сумма просрочки > 10000.
SELECT c.name, SUM(p.amount) AS total_overdue FROM clients c JOIN accounts a ON a.client_id = c.id JOIN payments p ON p.account_id = a.id WHERE p.status = 'overdue' AND p.payment_date >= CURRENT_DATE - INTERVAL '30 days' GROUP BY c.id, c.name HAVING SUM(p.amount) > 10000;
Сложность: O(n) по строкам payments с индексами на account_id, status, payment_date
Тест-дизайн: форма банковского перевода
Модуль «Перевод между своими счетами»: поля «Счёт списания», «Счёт зачисления», «Сумма» (мин 1 руб, макс — баланс счёта), кнопка «Перевести». Счета должны быть разными, в одной валюте. Составь тест-кейсы.
Позитивные: перевод минимальной суммы, максимальной (весь баланс), средней суммы. Негативные: одинаковые счета, сумма 0, сумма > баланса, разные валюты, пустые поля. Граничные: 1 руб, баланс-1 коп, баланс+1 коп. Нефункциональные: двойной клик, таймаут, перевод при нулевом балансе. Техники: эквивалентное разбиение, граничные значения.
Сложность: O(1) — фиксированное число кейсов по техникам тест-дизайна
Тестирование SOAP API
Сервис GetAccountBalance принимает XML-запрос с тегом <accountId> и возвращает <balance> и <currency>. WSDL описывает обязательные поля. Какие проверки выполнишь?
1) Валидный accountId → 200, корректный balance и currency. 2) Несуществующий accountId → ошибка с кодом и описанием. 3) Пустой/отсутствующий accountId → SOAP Fault. 4) Невалидный XML (wrong namespace) → schema validation error. 5) SQL injection в accountId. 6) Сравнение ответа с данными в БД через SQL. 7) Проверка заголовков (Content-Type: text/xml). Инструмент: SoapUI или Postman с raw XML.
Сложность: O(1) на запрос
Анализ дефекта после ПСИ
После приёмо-сдаточных испытаний заказчик нашёл баг: при переводе крупной суммы (>1 млн) система зависает на 30 секунд, но перевод проходит. Как действуешь?
1) Воспроизвести на тестовом стенде с аналогичными данными. 2) Собрать логи (app, DB, integration bus). 3) Проверить SQL-запросы на блокировки/долгие транзакции. 4) Классифицировать: severity (Major — функционал работает, но UX критичен для банка), priority. 5) Оформить баг-репорт: шаги, ожидаемое (<3 сек), фактическое (30 сек), окружение, логи. 6) Root cause analysis: timeout на внешнем сервисе? 7) Предложить regression-тест на граничную сумму.
Сложность: Зависит от системы
3 дня
7 дней
14 дней
| Блок | Готов, если... |
|---|---|
| Тест-дизайн | можешь за 5 минут составить тест-кейсы для формы с 3 полями, используя граничные значения и эквивалентное разбиение |
| SQL | можешь написать JOIN 3 таблиц с GROUP BY, HAVING и фильтром по дате без подсказок |
| API/SOAP | можешь объяснить структуру HTTP-запроса, отличия REST от SOAP и назвать 5 проверок для API |
| Процессы | можешь описать свой Scrum-процесс, роль QA в спринте и жизненный цикл бага в Jira |
| Инциденты | можешь по STAR рассказать кейс анализа дефекта после ПСИ или на проде |
| Инструменты | можешь объяснить как работал с Jira/ALM: тесты, дефекты, трассировка требований |
В день собеседования