BA & SA | 10000 Interview questions
10.2K subscribers
172 photos
14 videos
342 links
Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7
Download Telegram
Объяснение:

По умолчанию Kafka сбрасывает данные на диск не сразу, а через интервал (чтобы повысить производительность). При внезапном отключении питания данные, ещё находящиеся в кэше ОС, теряются. Настройка flush.messages=1 заставляет Kafka сбрасывать каждое сообщение на диск перед тем, как подтвердить продюсеру. Недостаток: падает производительность записи.

Альтернатива: использовать репликацию с 
acks=all и min.insync.replicas=2, но при падении всех брокеров данные могут потеряться, если не сброшены на диск.

Реальный пример: В системе финансового мониторинга настроили персистентность Kafka, и даже при аварийном отключении не потеряли ни одного события.

Что должен зафиксировать аналитик:
Требование к durability (гарантия сохранности) — допускается ли потеря сообщений?
Для критичных логов — обязательная синхронная запись на диск.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4850 категория вопросов: #TESTING
4850. Перед сдачей отчёта в прод аналитик проверил: отчёт открывается, фильтры работают, цифры совпадают с бэкендом. В проде обнаружилось, что при печати отчёта съезжают колонки. Какого теста не хватало в чек-листе аналитика?
Anonymous Quiz
0%
Тестирование безопасности
5%
Тестирование производительности
95%
Тестирование кросс-браузерности и печатных форм (cross-browser, print layout)
0%
Нагрузочное тестирование
Объяснение:

Аналитик проверял функциональность и корректность данных, но упустил, что отчёты могут печататься или экспортироваться в PDF. Печатные формы часто имеют отдельные CSS-стили, которые могут ломаться в разных браузерах.

Что нужно добавить в чек-лист:
Открыть отчёт в Chrome и Firefox, сравнить внешний вид.
Распечатать на PDF (Ctrl+P) и проверить, что все колонки на месте, нет разрывов.
Проверить альбомную/портретную ориентацию.

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

Вывод: Аналитик должен включать в приёмочные тесты не только GUI и API, но и вторичные сценарии (печать, экспорт, мобильная вёрстка).
Please open Telegram to view this post
VIEW IN TELEGRAM
№4851 категория вопросов: #BPMN
4851. В процессе согласования заявки на отпуск, если руководитель не ответил в течение 3 дней, заявка должна автоматически уйти на следующий уровень. Какой элемент BPMN это моделирует?
Anonymous Quiz
1%
Событие-сообщение
97%
Промежуточное событие-таймер (на границе активности)
1%
Событие-ошибка
1%
Событие-ссылка
Объяснение:

В BPMN промежуточное событие-таймер, прикреплённое к границе активности (например, к задаче «Согласование руководителем»), запускает альтернативный поток, если таймер истёк, а активность ещё не завершена. Это классический паттерн «тайм-аут». После срабатывания таймера заявка отправляется вышестоящему руководителю, а первоначальная задача может быть прервана или оставлена (в зависимости от настройки).

Почему это важно:
Автоматическая эскалация при задержках — частое требование в бизнес-процессах (закупки, согласования, инциденты). Аналитик должен уметь моделировать временные ограничения.

Реальный кейс: В системе согласования командировок при отсутствии ответа руководителя в течение 2 дней заявка автоматически считалась согласованной. Таймер помог избежать простоев.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4852 категория вопросов: #UML
4852. В проекте 20 микросервисов, каждый имеет свою модель данных. Нужно показать зависимости между сервисами на высоком уровне (кто кого вызывает). Какая диаграмма UML подходит лучше всего?
Anonymous Quiz
23%
Диаграмма последовательности
69%
Диаграмма компонентов (с интерфейсами и зависимостями)
6%
Диаграмма классов
2%
Диаграмма деятельности
Объяснение:

Диаграмма компонентов (Component Diagram) показывает компоненты (в микросервисной архитектуре — сервисы), их интерфейсы (предоставляемые и требуемые), а также зависимости между ними (пунктирные стрелки). Это идеальный инструмент для архитектурного обзора на уровне «чёрных ящиков».

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

Реальный пример: В проекте с 50 микросервисами архитектор нарисовал диаграмму компонентов и сразу увидел циклические зависимости, которые пришлось разорвать.

Вывод: Аналитик может использовать диаграмму компонентов для документирования архитектуры и анализа связанности сервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4853 категория вопросов: #SYSTEMDESIGN
4853. Сервис оплаты иногда недоступен. Нужно, чтобы при его падении заказ всё равно создавался, но помечался как «Ожидает оплаты». Какой паттерн обеспечивает graceful degradation?
Anonymous Quiz
4%
Circuit Breaker
95%
Graceful degradation с fallback (сохранение запроса в очереди, уведомление клиента)
1%
Только ретраи
0%
Отказ от приёма заказов
Объяснение:

Graceful degradation (изящная деградация) — способность системы сохранять основной функционал при отказе неключевых компонентов. В данном случае:

При недоступности платежного сервиса заказ создаётся со статусом «Ожидает оплаты».
Клиент получает уведомление: «Заказ оформлен, ссылка на оплату придёт позже».
Запрос на оплату сохраняется в очередь и будет обработан при восстановлении.

Чем отличается от Circuit Breaker?
Circuit Breaker отключает проблемный сервис, но не предлагает fallback-действие, а просто возвращает ошибку. Здесь же бизнес-процесс не прерывается.

Реальный пример: В Ozon при временной недоступности оплаты заказ всё равно принимается, а клиенту приходит смс с кнопкой оплатить позже.

Что должен зафиксировать аналитик:
Альтернативные сценарии при недоступности внешних систем.
Сохранение состояния и уведомление пользователя.
Механизм повторной обработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4854 категория вопросов: #REQUIREMENTS
4854. В середине спринта заказчик просит добавить поле «скидка» в отчёт. Оценка — 2 дня. В спринте осталось 3 дня, но есть незавершённая задача высокой важности. Что делает аналитик?
Anonymous Quiz
0%
Добавляет поле без обсуждения, чтобы угодить заказчику
95%
Организует встречу с заказчиком и командой, показывает последствия, ищет компромисс
3%
Отказывает, потому что требования уже утверждены
2%
Передаёт решение тимлиду
Объяснение:

Изменения в середине спринта — норма. Но аналитик не должен принимать их единолично.
Процесс:
Оценить трудозатраты (2 дня).
Выяснить у команды, какую задачу можно отложить или сократить.
Показать заказчику варианты:

Добавить поле, но сдвинуть релиз на 2 дня.
Добавить поле вместо другой задачи (какую именно?).
Отложить поле на следующий спринт.
Зафиксировать решение (протокол).

Реальный кейс: В компании по разработке CRM аналитик сразу согласился добавить поле «скидка» в отчёт без обсуждения. В итоге сломали отчёт по выручке, так как новая задача не была протестирована. После внедрения процедуры change request подобное прекратилось.

Вывод: Аналитик — не просто исполнитель, а фасилитатор, который управляет приоритетами и информирует о рисках.
Please open Telegram to view this post
VIEW IN TELEGRAM
№4855 категория вопросов: #INTEGRATION
4855. Платежный шлюз присылает callback на ваш endpoint. Злоумышленник может подделать запрос и сымитировать успешную оплату. Как защититься?
Anonymous Quiz
0%
Проверять IP-адрес отправителя
95%
Использовать цифровую подпись (HMAC) каждого запроса, сверять её с секретным ключом
1%
Требовать пароль в теле запроса
4%
Принимать callback только из внутренней сети
Объяснение:

Платёжные системы используют подпись HMAC (или JWT). Провайдер и ваш сервер имеют общий секретный ключ. Провайдер вычисляет подпись тела запроса и передаёт её в заголовке. Ваш сервер перевычисляет подпись и сравнивает. Если подписи совпадают — запрос подлинный.

Почему не подходят другие:

IP может быть подделан или динамический.
Пароль в теле может быть перехвачен (не передавайте в открытом виде).
Ограничение по внутренней сети не работает для внешних webhook.

Реальный пример: Stripe подписывает каждый callback заголовком 
Stripe-Signature. Ваш сервер проверяет подпись, прежде чем обрабатывать платёж.

Вывод: В требованиях к интеграции аналитик должен указать: «Callback-запросы должны содержать HMAC-подпись, вычисленную с использованием секретного ключа».
Please open Telegram to view this post
VIEW IN TELEGRAM
№4856 категория вопросов: #DBMS
4856. В системе категорий товаров (меню) глубина вложенности не ограничена. Запросы: «найти все подкатегории заданной категории». Какой способ хранения иерархии оптимален для чтения?
Anonymous Quiz
45%
Поле parent_id + рекурсивный CTE
34%
Хранить предков в отдельной таблице (Closure Table)
11%
Хранить path в виде строки (например, "1/3/5/")
9%
Хранить сразу все уровни в отдельных столбцах (level1_id, level2_id...)