Раздел подготовки

Системный анализ: вопросы для собеседования QA

Системный анализ помогает QA находить пробелы до разработки: неполные состояния, спорные правила, интеграционные риски и edge cases.

27 вопросов 12 базовых 3 уровня: Junior, Middle, Senior

Что закрывает этот раздел

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

  • уточнять требования
  • видеть состояния системы
  • разбирать интеграции

С чего начать

Если времени мало, начни с базовых вопросов: они чаще всего помогают пройти первый технический фильтр и показать структуру мышления.

  1. Что такое артефакт работы аналитика? Какие артефакты ты создаёшь?
  2. Что должно включать описание интеграции между системами?
  3. Что такое impact-анализ и когда его применять?
  4. Какие нотации моделирования ты знаешь и для чего применяешь каждую?
  5. Какие основные элементы BPMN? Назови категории.
  6. Какие типы шлюзов есть в BPMN (XOR, AND, OR, Event-based, Complex)?
  7. В чём разница между Pool и Lane в BPMN?
  8. Какие виды диаграмм есть в UML? На какие категории они делятся?

Вопросы и ответы

Что такое артефакт работы аналитика? Какие артефакты ты создаёшь?

Junior

Артефакт — любой документ или модель, который остаётся как результат работы и используется другими ролями: BRD, SRS, user stories с AC, BPMN-диаграммы, Sequence, ERD, контракты API (OpenAPI), глоссарий, decision log.

Какие именно — зависит от методологии и проекта. В Agile-команде продукта чаще всего: user stories с AC, sequence-диаграммы интеграций, OpenAPI, краткие тех. спецификации. В госпроекте — полный комплект по ГОСТ.

Из практики: артефакт без потребителя — мусор. Перед тем как заводить новый документ, спрашиваю, кто и зачем будет его читать.

Частые ошибки

  • Делают артефакты ради процесса, а не ради потребителя.
  • Не версионируют и не следят за актуальностью.

Дополнительные вопросы

  • Какой инструмент используешь для хранения (Confluence, Notion, Git)?
  • Что делать с устаревшими артефактами?

Кто является потребителем артефактов аналитика?

Junior

Разные артефакты — разные потребители. BRD — спонсор и бизнес. SRS/user stories — разработчики и тестировщики. Sequence/OpenAPI — backend/интегратор. UI-спеки — дизайнер и фронт. Глоссарий — все. Decision log — будущие участники проекта.

Хороший аналитик пишет каждый артефакт для конкретной аудитории и в нужном для неё языке. Универсальный документ часто не нужен никому.

Из практики: перед написанием нового документа спрашиваю «кто его прочитает в течение месяца?». Если ответа нет — не пишу.

Частые ошибки

  • Пишут один документ «для всех» — слишком сложный для бизнеса и слишком общий для дева.
  • Делают артефакты для отчёта, а не для использования.

Дополнительные вопросы

  • Как ты собираешь обратную связь по своим артефактам?
  • Что такое readers' map?

Что должно включать описание интеграции между системами?

Middle

Минимум: участники и направление вызова, протокол и метод, контракт (схема запроса/ответа, OpenAPI/JSON Schema/WSDL), сценарии (включая ошибки и таймауты), аутентификация и авторизация, идемпотентность, гарантии доставки, нефункциональные требования (latency, throughput), SLA.

Дополнительно: формат идентификаторов, retry-политика, обработка дубликатов, логирование и трассировка, обратная совместимость, версионирование.

Из практики: 70% багов на интеграциях — в недописанном поведении при ошибках. Описывайте error-сценарии так же подробно, как happy path.

Частые ошибки

  • Описывают только happy path и забывают про timeouts, 5xx, частичные ответы.
  • Не фиксируют идентификаторы и контракты — каждый раз согласовывают заново.

Дополнительные вопросы

  • Чем sequence-диаграмма помогает в описании интеграции?
  • Как описать обратную совместимость API?

Что такое impact-анализ и когда его применять?

Middle

Impact-анализ — оценка последствий предлагаемого изменения: какие требования, модули, интеграции, данные, процессы и пользователи будут затронуты. Дополняется оценкой трудозатрат и рисков.

Применяю при любом изменении требования или scope, при обновлении интеграции, при изменении регуляторных правил. Без него сроки и риски — гадание.

Из практики: качественный impact-анализ невозможен без traceability matrix. С ней — 30 минут. Без — неделя ручного поиска зависимостей.

Частые ошибки

  • Сводят impact-анализ к оценке часов разработки и забывают про данные/процессы.
  • Делают impact-анализ post-factum, когда уже начали кодить.

Дополнительные вопросы

  • Какие инструменты автоматизируют impact-анализ?
  • Как привлекаешь команду к impact-оценке?

Какие нотации моделирования ты знаешь и для чего применяешь каждую?

Junior

BPMN — бизнес-процессы. UML — модели ПО (структура, поведение, взаимодействие). ER/IDEF1X — модели данных. DFD — потоки данных. C4 — архитектура. ArchiMate — корпоративная архитектура.

Выбор нотации зависит от аудитории. BPMN читает бизнес, UML Sequence — разработчики, C4 — архитекторы и менеджеры. Нет «самой правильной» нотации.

Из практики: на одном проекте редко обходится одной нотацией. AS-IS процесса — BPMN, интеграция — Sequence, данные — ERD.

Частые ошибки

  • Используют UML Activity для бизнес-процесса там, где нужен BPMN — теряют swimlanes.
  • Смешивают нотации внутри одной диаграммы.

Дополнительные вопросы

  • Какие инструменты используешь для рисования (draw.io, Visio, Enterprise Architect)?
  • Как выбираешь нотацию для конкретной задачи?

Какие основные элементы BPMN? Назови категории.

Junior

Категории элементов: Flow Objects (события, активности, шлюзы), Connecting Objects (поток управления, поток сообщений, ассоциации), Swimlanes (Pool, Lane), Artifacts (data object, group, аннотация).

Минимально достаточный набор для 80% диаграмм: Start/End event, Task, Gateway (XOR/AND), Sequence Flow, Lane. Этого хватает, чтобы описать большинство бизнес-процессов читаемо.

Из практики: чем больше уникальных типов значков на диаграмме, тем меньше людей её поймут. Лучше повторно использовать базовые.

Частые ошибки

  • Тащат на диаграмму все 100+ значков BPMN — бизнес перестаёт понимать.
  • Смешивают sequence flow и message flow.

Дополнительные вопросы

  • Какая разница между sequence flow и message flow?
  • Что такое подпроцесс (Sub-Process)?

Какие типы шлюзов есть в BPMN (XOR, AND, OR, Event-based, Complex)?

Middle

XOR (exclusive) — ровно одна ветка по условию. AND (parallel) — все ветки параллельно и схождение ждёт все. OR (inclusive) — одна или несколько веток по условиям, схождение ждёт активированные. Event-based — выбор по первому пришедшему событию (таймер/сообщение). Complex — нестандартные условия.

Самые используемые — XOR и AND. OR-схождение коварно: разработчику нужно реализовать «дождись только активированных», что не всегда тривиально.

Из практики: 90% бизнес-логики покрывается XOR и AND. Event-based удобен для моделирования таймаутов («ждём ответа клиента 24 часа, иначе...»).

Частые ошибки

  • Используют OR, когда хватило бы XOR, и усложняют диаграмму.
  • Забывают, что AND-схождение блокирует поток, пока не придут все ветки.

Дополнительные вопросы

  • Что произойдёт, если не все ветки AND-разветвления активированы?
  • Когда оправдан Complex Gateway?

Какие виды событий в BPMN (стартовые, промежуточные, завершающие; по типу триггера)?

Middle

По позиции: Start (тонкая граница), Intermediate (двойная граница), End (толстая граница). По типу триггера: None, Message, Timer, Signal, Error, Conditional, Compensation, Escalation, Cancel, Terminate, Link.

Промежуточные события бывают двух поведений: catching (ловит) и throwing (бросает). Например, Intermediate Message Throwing отправляет сообщение, Catching — ждёт.

Из практики: Terminate End — единственный способ принудительно остановить весь процесс. Обычный End завершает только свою ветку.

Частые ошибки

  • Используют обычный End там, где нужен Terminate End — параллельные ветки продолжают работать.
  • Путают catching и throwing у промежуточных событий.

Дополнительные вопросы

  • В чём разница между Error и Escalation?
  • Зачем нужно Boundary Event?

В чём разница между Pool и Lane в BPMN?

Junior

Pool — отдельный участник процесса (организация, система, внешний сервис). Pool'ы общаются только через message flow, не sequence flow.

Lane — подразделение внутри Pool: отдел, роль, система-компонент. Внутри Pool связи идут sequence flow.

Из практики: правило «один Pool — один процесс». Если у вас 5 Pool'ов с равноправными процессами, скорее всего нужно разделить на 5 диаграмм с явной интеграцией.

Частые ошибки

  • Соединяют разные Pool'ы sequence flow вместо message flow.
  • Делают Pool вместо Lane для отдела внутри одной организации.

Дополнительные вопросы

  • Можно ли пересекать Lane линиями потока?
  • Что такое Black-Box Pool?

Какие виды диаграмм есть в UML? На какие категории они делятся?

Junior

Две категории: структурные (Class, Object, Component, Composite Structure, Package, Deployment, Profile) и поведенческие (Use Case, Activity, State Machine, Sequence, Communication, Timing, Interaction Overview).

Самые ходовые: Class (модель домена), Sequence (взаимодействие во времени), State Machine (поведение объекта), Use Case (функциональные требования верхнего уровня), Activity (процесс/алгоритм).

Из практики: в Agile-проектах UML используют выборочно — обычно Sequence для интеграций и Class для домена. Полный набор UML — это редкая практика крупных регулируемых проектов.

Частые ошибки

  • Учат «всю UML» и не используют её на практике.
  • Путают Class Diagram с ER-моделью.

Дополнительные вопросы

  • Чем Communication отличается от Sequence?
  • Когда полезна Deployment Diagram?

Что такое Use Case-диаграмма? Назови её элементы.

Junior

Use Case Diagram — диаграмма поведения, показывающая, какие сценарии система выполняет для разных типов пользователей. Высокоуровневый взгляд на функциональность.

Элементы: акторы (человек/система/таймер), use cases (овалы), системные границы (прямоугольник), отношения (association, include, extend, generalization).

Из практики: ценность не в самой диаграмме, а в обсуждении при её создании. После согласования use cases раскрываются в текстовые спецификации или user stories.

Частые ошибки

  • Рисуют сценарии вместо вариантов использования (use case ≠ один клик).
  • Делают use case на каждую кнопку — теряют верхний уровень.

Дополнительные вопросы

  • Чем актор отличается от пользователя?
  • Как часто пересматриваешь use case-диаграмму?

В чём разница между <<include>> и <<extend>> в Use Case-диаграмме?

Middle

<<include>> — базовый use case ВСЕГДА включает другой. «Оформить заказ» include «Аутентификация» — без аутентификации заказ не оформляется. Стрелка идёт от базового к включаемому.

<<extend>> — расширяющий use case ИНОГДА добавляется к базовому по условию. «Оформить заказ» extend «Применить промокод» — промокод опционален. Стрелка идёт от расширяющего к базовому (с extension point).

Из практики: путают чаще всего направление стрелки. Запоминание: include — «нужен», стрелка показывает, что нужно; extend — «дополняет», стрелка указывает, кого дополняет.

Частые ошибки

  • Путают направление стрелок.
  • Используют <<extend>> там, где нужен альтернативный поток внутри одного use case.

Дополнительные вопросы

  • Чем include отличается от generalization?
  • Можно ли обойтись без include/extend?

Какие фреймы (combined fragments) есть в Sequence-диаграмме?

Middle

alt — альтернатива (if/else); opt — опционально (выполняется при условии); loop — цикл; par — параллельные ветки; ref — ссылка на другую диаграмму; break — выход из цикла; critical — атомарная секция; neg — недопустимое поведение.

Самые ходовые — alt, opt, loop, par, ref. Остальные нужны редко и часто заменяются обычным текстовым комментарием.

Из практики: чрезмерное вложение alt/loop делает Sequence нечитаемой. Если глубина > 2, лучше разбить на несколько диаграмм через ref.

Частые ошибки

  • Используют alt с одной веткой вместо opt.
  • Перегружают одну Sequence-диаграмму всеми сценариями сразу.

Дополнительные вопросы

  • В чём разница между sync и async message?
  • Когда оправдан critical?

Что такое State Machine Diagram и когда её использовать?

Middle

State Machine — диаграмма, описывающая жизненный цикл объекта: возможные состояния и переходы между ними по событиям с условиями (guards) и действиями (actions).

Использую, когда у сущности есть явные состояния с правилами переходов: заказ (создан → оплачен → отгружен → доставлен), заявка, документ, тикет. Сразу видны «дыры» и недопустимые переходы.

Из практики: state machine — лучший союзник тестировщика. Каждый переход = тест-кейс, каждое запрещённое сочетание = негативный тест.

Частые ошибки

  • Рисуют только успешный путь и забывают про cancel/reject/timeout.
  • Смешивают состояние и действие на переходе.

Дополнительные вопросы

  • Чем композитные состояния полезны?
  • В чём разница между state и activity?

Что такое Activity Diagram? Чем отличается от BPMN?

Middle

Activity Diagram (UML) — поведенческая диаграмма для описания потока действий: активности, решения, разделение/слияние потоков, swimlane'ы. Похожа на BPMN, но из мира UML.

Отличия от BPMN: BPMN богаче на типы событий и шлюзов, заточен под бизнес и стандарт OMG. Activity — общая нотация UML, проще, но менее выразительна для бизнес-процессов с межсистемными взаимодействиями.

Из практики: бизнес-процесс — BPMN. Алгоритм внутри одного компонента — Activity. Не наоборот.

Частые ошибки

  • Используют Activity для межсистемных процессов вместо BPMN.
  • Считают, что Activity и BPMN — взаимозаменяемы.

Дополнительные вопросы

  • Что такое action node и control node?
  • Какие swimlane'ы в UML Activity?

В чём разница между Class Diagram и ER-диаграммой?

Middle

Class Diagram (UML) — модель объектов кода: классы, методы, поведение, наследование, полиморфизм. Описывает «как живёт» предметная область в коде.

ER-диаграмма — модель данных в БД: сущности, атрибуты, связи (1:1, 1:N, N:M), ключи. Не описывает поведение и наследование.

Из практики: Class и ER часто похожи на уровне сущностей, но разные по содержанию. У класса есть поведение и наследование; у entity — атрибуты и связи. Поэтому Class для домена, ER для физической модели БД.

Частые ошибки

  • Рисуют ER и называют его моделью домена.
  • Тянут наследование в ER (хотя есть способы — но это редкая практика).

Дополнительные вопросы

  • Что такое логическая и физическая модели данных?
  • Чем IDEF1X отличается от классической ER?

Что такое DFD (Data Flow Diagram)?

Junior

DFD — диаграмма потоков данных: показывает, как данные движутся между процессами, хранилищами и внешними сущностями. Не описывает время и порядок.

Элементы: внешние сущности (квадрат), процессы (круг/прямоугольник со скруглением), хранилища (две линии), потоки данных (стрелки с подписями).

Из практики: DFD удобна для верхнего уровня архитектуры данных — понять, что куда течёт. Для логики порядка операций — нужна BPMN или Sequence.

Частые ошибки

  • Тащат на DFD управление и логику — это не её задача.
  • Не подписывают стрелки — диаграмма становится бесполезной.

Дополнительные вопросы

  • Чем DFD отличается от BPMN?
  • Что такое декомпозиция DFD по уровням (0, 1, 2)?

Что такое C4-модель архитектуры?

Middle

C4 (Simon Brown) — модель архитектуры на 4 уровнях абстракции: Context (система и её соседи), Container (приложения, БД, сервисы внутри системы), Component (модули внутри контейнера), Code (классы и связи).

На практике обычно делают только первые два уровня — Context и Container. Component нужен редко, Code почти никогда (его уже даёт IDE).

Из практики: C4 хорош тем, что одни и те же блоки на разных уровнях, у разной аудитории. Спонсору — Context, разработчику — Container/Component.

Частые ошибки

  • Делают все 4 уровня для маленького проекта — overkill.
  • Смешивают уровни на одной диаграмме.

Дополнительные вопросы

  • Какие инструменты для C4 (Structurizr, draw.io, PlantUML)?
  • Как C4 сочетается с ArchiMate?

Что такое ArchiMate и для чего применяется?

Middle

ArchiMate — стандарт нотации для описания корпоративной архитектуры (Enterprise Architecture) в 3 слоях: Business (процессы/роли), Application (приложения/сервисы), Technology (инфраструктура). Есть расширения Motivation, Strategy, Physical.

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

Из практики: ArchiMate избыточен для одного продукта. Это инструмент архитектора предприятия, не разработчика.

Частые ошибки

  • Используют ArchiMate для одной системы — теряют его ценность.
  • Смешивают слои Business/Application без явной мотивации.

Дополнительные вопросы

  • Чем ArchiMate отличается от UML и C4?
  • Какие инструменты поддерживают ArchiMate (Archi, Sparx EA)?

Что такое маппинг данных?

Middle

Маппинг данных — описание соответствия полей между двумя структурами: источник (например, исходная система или внешний контракт) и приёмник (БД целевой системы). Включает имена полей, типы, преобразования, обработку отсутствующих/невалидных значений.

Формат: таблица «поле источника → поле приёмника → правило преобразования → пример → обработка ошибки». На крупных интеграциях это отдельный артефакт.

Из практики: 80% багов на интеграции — в маппинге, особенно в преобразованиях форматов (даты, валюты, пробелы).

Частые ошибки

  • Описывают только «обычные» поля и пропускают опциональные.
  • Не описывают, что делать при NULL, пустой строке, неизвестном значении enum.

Дополнительные вопросы

  • Чем mapping отличается от data dictionary?
  • Какие инструменты автоматизации маппинга используешь?

Какова роль аналитика на каждом этапе разработки?

Middle

Инициация — формулировка цели, бизнес-кейс, scope. Анализ — выявление требований, моделирование, ТЗ. Проектирование — участие в архитектуре, контракты API, схема данных. Разработка — поддержка команды, уточнения, мини-демо. Тестирование — приёмка с бизнесом, поддержка QA. Внедрение — обучение, миграция, готовность данных. Эксплуатация — анализ инцидентов, изменения, развитие.

Аналитик — «переводчик» между бизнесом и командой на всех этапах, а не «исчезает» после ТЗ.

Из практики: главный антипаттерн — «написал ТЗ и ушёл». Хороший аналитик присутствует на всех этапах, иначе требования теряют контакт с реальностью.

Частые ошибки

  • Считают, что роль аналитика — только до начала разработки.
  • Не участвуют во внедрении — миграция данных идёт без подготовки.

Дополнительные вопросы

  • На каких этапах роль аналитика максимально критична?
  • Что значит «product analyst» vs «system analyst»?

На каких этапах аналитик — основной игрок, а на каких опционален?

Middle

Основной игрок: выявление и формализация требований, моделирование процессов, описание интеграций, приёмка с бизнесом, импакт-анализ изменений. Без аналитика эти этапы либо не делаются, либо делаются плохо.

Опционален / поддерживающая роль: дизайн UI, кодирование, написание тестов, инфраструктура, эксплуатация. Здесь аналитик помогает контекстом и решениями, но не ведёт работу.

Из практики: в маленькой команде аналитик закрывает и продуктовые, и проектные роли. В больших — фокусируется на «своей» части и выходит из чужих.

Частые ошибки

  • Аналитик «лезет везде» и становится бутылочным горлышком.
  • Уходит после ТЗ и теряет контекст реализации.

Дополнительные вопросы

  • Чем product analyst отличается от business analyst?
  • Когда лидером становится PM, а когда BA?

Как аналитик взаимодействует с тестировщиками? С разработчиками? С дизайнерами?

Middle

С тестировщиками — общий язык AC и пограничных случаев. Аналитик пишет проверяемые AC, QA — тест-кейсы. Ревью требований до начала разработки помогает поймать «дыры» до кода.

С разработчиками — обсуждение реализуемости, trade-offs, контрактов API. Аналитик уточняет домен, разработчик предлагает технические варианты. Совместное ревью спецификаций.

Из практики: с дизайнерами аналитик согласует логику и состояния (валидации, ошибки, пустые состояния). Дизайнер делает форму, аналитик — поведение. Без совместной работы получается «красивая нерабочая форма».

Частые ошибки

  • Передают артефакты «через стену» без обсуждения.
  • Делают всё в одиночку и не пользуются экспертизой других ролей.

Дополнительные вопросы

  • Что такое three amigos (PO, Dev, QA)?
  • Как организуешь регулярные синки с командой?

Как ты декомпозируешь и оцениваешь задачи?

Middle

Декомпозиция: сверху вниз — от бизнес-задачи к функциональным блокам, дальше к user stories с AC. Каждая story помещается в спринт. Сплит — по сценариям/вертикалям, не по слоям.

Оценка: для крупных инициатив — t-shirt size (S/M/L/XL) или story-points с эталоном. Для конкретных задач в спринте — planning poker. Я как аналитик не ставлю оценку команде, но помогаю формулировать так, чтобы её можно было оценить.

Из практики: главное в декомпозиции — каждая задача должна быть проверяемой и приносить пользу. «Завести модель в БД» — не задача, «реализовать поиск клиента по фамилии» — да.

Частые ошибки

  • Сплитят по техническим слоям («бэк», «фронт») — каждая половина бесполезна.
  • Делают задачи на месяц — теряют видимость прогресса.

Дополнительные вопросы

  • Какие техники сплита знаешь (SPIDR, по сценариям)?
  • Как считаешь crew velocity?

Как аналитик оценивает сроки реализации задачи?

Middle

Я не оцениваю реализацию вместо команды разработки. Моя оценка — это сроки аналитической части (выявление, документирование, согласование) и поддержки внедрения.

Для общей оценки задачи провожу с командой совместный разбор: декомпозиция, обсуждение рисков, planning poker для крупных кусков. Свожу к диапазону «оптимистично — реалистично — пессимистично».

Из практики: чем больше неизвестных — тем шире диапазон. Если разница опт/песс «в 5 раз» — значит, нужно сначала прояснить, а не оценивать.

Частые ошибки

  • Дают «одну точку» оценки и обещают её бизнесу.
  • Оценивают за разработчика и обещают сроки, на которые он не подписывался.

Дополнительные вопросы

  • Что такое cone of uncertainty?
  • Как защищаешь оценку перед бизнесом?

Кто такой хороший аналитик, по твоему мнению?

Middle

Хороший аналитик умеет три вещи одновременно: понять бизнес (контекст, цели, ограничения), описать решение понятно для команды (структура, артефакты, AC), и держать связь между ними.

Технически — знает домен, умеет моделировать, работает с данными и интеграциями. По soft-skills — слушает больше, чем говорит; задаёт правильные вопросы; не боится сказать «не знаю» и пойти разобраться.

Из практики: лучшие аналитики — не «писатели ТЗ», а «переводчики». Они переводят бизнес в технику и обратно, и команда им доверяет в обе стороны.

Частые ошибки

  • Описывают только hard skills и забывают soft.
  • Дают общие фразы без примеров.

Дополнительные вопросы

  • Что важнее — hard или soft skills?
  • Какие книги/ресурсы посоветуешь?

Чем должен заниматься системный аналитик, а чем не должен?

Middle

Должен: выявление и формализация требований, моделирование процессов и данных, описание интеграций и контрактов, работа с НФТ, импакт-анализ изменений, поддержка команды разработки и QA контекстом.

Не должен: писать код в продакшен, ставить задачи команде (это PO/PM), писать тест-кейсы (это QA), рисовать UI-дизайн (это дизайнер), управлять командой (это team lead).

Из практики: размытие ролей в маленьких командах часто превращает аналитика в «delivery manager». Это работает временно, но в долгую — путь к выгоранию.

Частые ошибки

  • Берут на себя задачи PO и теряют фокус анализа.
  • Считают «писать код» обязательным — не во всех проектах это нужно.

Дополнительные вопросы

  • В чём разница SA и SE (Solution Engineer)?
  • Какие границы устанавливаешь сам?