Вопросы для повторения

1. Основы тестирования

Фундаментальные определения и словарь QA.

Что такое тестирование и зачем оно нужно?
Тестирование — это процесс оценки качества продукта и поиска расхождений между ожидаемым и фактическим поведением. Цели: снизить риски, обнаружить дефекты раньше, дать прозрачную картину качества для бизнеса.
  • Проверяем, что продукт делает то, что должен.
  • Ищем поведение, которое может навредить пользователю или бизнесу.
  • Помогаем принимать решение о релизе.
Запоминалка: тестирование = информация о качестве + снижение рисков.
ПримерПеред релизом экрана оплаты QA проверяет успешную оплату, отказ банка и ошибки валидации, чтобы оценить риски для бизнеса.
РазвернутоПрактически тестирование отвечает на вопрос «какие риски мы несем, если выпустим это в прод прямо сейчас, и насколько эти риски приемлемы». Это не только «поиск багов», но и предотвращение дефектов (ревью требований, ранние проверки, уточнения).
КлючевоеЧто обычно включает процесс тестирования:
  • анализ требований/макетов, поиск неоднозначностей и противоречий
  • оценку рисков (что важнее всего для бизнеса/пользователя)
  • подготовку тестовых данных и окружения
  • проведение проверок (manual/авто), анализ результатов
  • заведение дефектов и коммуникацию с командой
  • подведение итогов (что проверено, что не успели, какие риски остаются)
На интервьюГоворите в терминах ценности: качество = информация + снижение рисков. Упомяните, что тестирование не гарантирует «0 багов», но делает релиз осознанным.
В чем цель тестирования? Можно ли доказать, что система без ошибок?
Цель — предоставить объективную информацию о качестве и рисках, а не доказать отсутствие ошибок. Полностью доказать «безошибочность» невозможно из-за бесконечного числа сценариев и ограниченного времени.
  • Мы подтверждаем соответствие требованиям и ожиданиям пользователя.
  • Мы минимизируем риски критичных дефектов.
ПримерQA не «доказывает отсутствие багов», а показывает, что в критичных сценариях (оплата, регистрация) риски минимальны.
РазвернутоГлавная цель — дать стейкхолдерам прозрачную картину качества и рисков, чтобы принять решение о релизе. Доказать отсутствие ошибок невозможно: число входов/состояний/окружений огромно, а время и ресурсы ограничены.
КлючевоеПочему нельзя доказать «безошибочность»:
  • бесконечное/очень большое пространство сценариев (комбинации данных, устройств, ролей)
  • неполные/меняющиеся требования (ожидания могут отличаться от ТЗ)
  • разные окружения (браузеры, ОС, сети, локали) и недетерминизм (тайминги, асинхронность)
  • ограничения по срокам → тестируем выборочно, по рискам
На интервьюСкажите, что вы фокусируетесь на критических потоках (деньги, безопасность, ключевые KPI) и на рисках, а не на «покрыть всё».
Что такое дефект, баг, ошибка, инцидент — в чем различие?
  • Ошибка (Error) — человеческая ошибка: неверное понимание/реализация.
  • Дефект (Defect) — результат ошибки в артефакте (код, требование, дизайн).
  • Баг (Bug) — дефект, проявившийся в работе системы.
  • Инцидент (Incident) — наблюдаемое отклонение в проде, требующее разбирательства.
Коротко: ошибка → дефект → баг → инцидент в бою.
ПримерОшибка в требованиях → дефект в коде → баг на тесте; если попало в прод и пользователи жалуются — это инцидент.
РазвернутоТермины часто используют как синонимы, но на интервью полезно показать причинно‑следственную цепочку и контекст (где обнаружено и что именно произошло).
КлючевоеУдобная логика различий:
  • Error (ошибка) — действие человека: неправильно понял требование, допустил опечатку, ошибся в формуле
  • Defect — «след» ошибки в артефакте: требование/дизайн/код/конфиг
  • Bug — проявление дефекта при выполнении: некорректный результат, падение, нарушение UX
  • Incident — баг в проде/на эксплуатации, который влияет на пользователей и требует реакции (разбор, хотфикс, коммуникации)
На интервьюДобавьте: дефект может быть и в требованиях/дизайне, а не только в коде. Инцидент — это ещё и процесс (SLA, приоритет, коммуникация).
Что такое жизненный цикл бага (bug life cycle)?
Это путь дефекта от обнаружения до закрытия. Типичный цикл:
  • New → Assigned → In Progress → Fixed → Ready for QA → Verified → Closed
  • Возможные ветки: Reopened, Duplicate, Won't Fix, Can't Reproduce
Важно уметь пояснить статус и обосновать, почему баг закрыт или переоткрыт.
ПримерQA завел дефект, разработчик перевел в In Progress, исправил, QA сделал ретест и закрыл — полный цикл.
РазвернутоЖизненный цикл бага — это не просто статусы в Jira, а договоренность команды: кто и когда берет дефект, как подтверждаем фиксы и что делаем с спорными кейсами.
КлючевоеЧто важно уметь объяснить:
  • какие статусы используются в вашей команде и что они означают (Definition of status)
  • кто владелец на каждом шаге (QA/Dev/PO/Support)
  • что нужно, чтобы перевести баг дальше (критерии «готово к ретесту»)
  • ветки Duplicate / Won’t Fix / Can’t Reproduce / Need info и как вы их обосновываете
  • когда уместен Reopen (фикс не сработал/не там/побочный эффект/частичный фикс)
На интервьюХороший тон: упомянуть triage (оценка приоритета/критичности) и ретест + регресс вокруг фикса.
Что такое качество ПО и как его измерять?
Качество — это соответствие требованиям + удовлетворенность пользователя + надежность. Измеряется через метрики и наблюдения:
  • Дефекты: количество, плотность, критичность.
  • Покрытие: тестами/требованиями.
  • Надежность: стабильность, отсутствие падений.
  • Пользовательские метрики: NPS, удержание, обращения в поддержку.
ПримерПосле релиза QA фиксирует падение crash‑rate и рост NPS — это признаки улучшения качества.
РазвернутоКачество ПО — это соответствие требованиям и ожиданиям пользователя, плюс устойчивость продукта в реальных условиях. Измеряют качество косвенно: метриками дефектов, стабильности, покрытия и продуктовых сигналов.
КлючевоеПримеры практичных метрик:
  • дефекты: распределение по severity, дефект‑плотность, доля «утечек» в прод (escaped defects)
  • стабильность: crash‑free rate, error rate, uptime/SLA, MTTR/MTBF (если применимо)
  • скорость: lead time дефекта, время на ретест, время реакции на инцидент
  • покрытие: по требованиям/рискам/модулям, доля критических сценариев под регрессом
  • пользовательские сигналы: обращения в поддержку, конверсия ключевых воронок, отмены/возвраты
На интервьюПодчеркните: метрики интерпретируются в контексте. «Мало багов» не всегда хорошо — возможно, их просто не ищут.
Что такое верификация и валидация?
  • Верификация: «Мы делаем продукт правильно?» Проверка соответствия спецификациям.
  • Валидация: «Мы делаем правильный продукт?» Проверка ценности для пользователя.
Формула: верификация = соответствие требованиям, валидация = соответствие ожиданиям/нуждам.
ПримерВерификация: кнопка «Купить» работает по ТЗ. Валидация: пользователи реально могут оформить заказ без путаницы.
РазвернутоВерификация отвечает «соответствует ли реализация спецификации», а валидация — «решает ли продукт реальную задачу пользователя». Оба процесса нужны: можно идеально сделать «не то».
КлючевоеЧем отличаются на практике:
  • верификация — ревью требований, тесты по AC/спеке, проверка бизнес‑правил, контрактов API
  • валидация — пилоты, UAT, пользовательские сценарии, UX‑наблюдения, аналитика после релиза
  • верификация чаще «до релиза», валидация может быть и «после» (по данным поведения пользователей)
На интервьюУместный пример: по ТЗ кнопка работает (верификация), но пользователи её не находят/не понимают (валидация).
Что такое тест-кейс, чек-лист, баг-репорт?
  • Тест-кейс — подробные шаги, входные данные и ожидаемый результат.
  • Чек-лист — краткий перечень проверок без детальных шагов.
  • Баг-репорт — документ о дефекте (шаги, фактический/ожидаемый результат, окружение).
ПримерЧек‑лист: «проверить логин». Тест‑кейс: шаги + данные + ожидаемый результат. Баг‑репорт: шаги → Actual/Expected + окружение + артефакты.
РазвернутоЭто три разных артефакта: проверка (test case), перечень проверок (checklist) и фиксация дефекта (bug report). Важно уметь выбрать правильный уровень детализации.
КлючевоеКогда что использовать:
  • Тест‑кейс — когда нужна повторяемость, аудит, делегирование и точные шаги (регресс, критичные флоу)
  • Чек‑лист — когда важна скорость и гибкость (смоук, исследовательские сессии, быстрые проверки)
  • Баг‑репорт — когда нужно воспроизведение, влияние, контекст и доказательства (логи/скрины/видео)
Чек‑листВ тест‑кейсе всегда фиксируйте: предусловия, данные, шаги, ожидаемый результат, пост‑условия и критерии прохождения.
На интервьюСкажите, что вы держите баланс: где нужно — подробно, где можно — кратко, но чтобы другой человек мог повторить.
Что такое критичность (severity) и приоритет (priority)?
  • Severity — насколько сильно баг влияет на работу системы.
  • Priority — насколько срочно его нужно исправить.
Пример: опечатка в слове — низкая criticality, но может быть высокий priority перед релизом.
ПримерПадение при оплате — высокая criticality и высокий priority; опечатка — низкая criticality, но может быть приоритетной перед релизом.
РазвернутоSeverity описывает ущерб/влияние на систему, priority — срочность исправления с точки зрения бизнеса/релиза. Они часто коррелируют, но не обязаны совпадать.
КлючевоеТиповые комбинации и смысл:
  • High severity + High priority: падение, потеря денег/данных, блокер ключевого сценария
  • High severity + Low priority: редко встречающийся краш на экзотическом устройстве, если риск принят
  • Low severity + High priority: маркетинговый текст/юридическая формулировка перед релизом
  • Low severity + Low priority: косметика без влияния на поведение
На интервьюУпомяните, что priority задает PO/PM (или вместе на triage), а severity — обычно QA (по договоренности команды).
Что такое Smoke, Sanity, Regression testing?
  • Smoke — быстрый набор ключевых проверок «продукт вообще жив».
  • Sanity — узкая проверка конкретной фичи после фикса/изменения.
  • Regression — проверка, что новые изменения не сломали старый функционал.
ПримерПосле фикса авторизации QA делает sanity по логину; перед релизом гоняет regression по ключевым сценариям.
РазвернутоЭто разные по цели наборы проверок. На интервью важно показать, что вы понимаете «когда и зачем» их запускать, а не только определения.
КлючевоеПрактическая разница:
  • Smoke: очень короткий набор «система вообще запускается и основные флоу живы» (часто после деплоя)
  • Sanity: прицельная проверка конкретной области/фикса «не сломали ли мы это» (после правок)
  • Regression: более широкий прогон важного функционала, чтобы убедиться, что изменения не поломали старое
Чек‑листПосле фикса: ретест → регресс вокруг зоны изменения (смежные модули, общие компоненты). Перед релизом: смоук → регресс по критическим сценариям.
На интервьюХороший акцент: regression — про риск побочных эффектов, sanity — про быстрое подтверждение конкретного изменения.
Что такое позитивное и негативное тестирование?
  • Позитивное — правильные данные, ожидаем корректную работу.
  • Негативное — неправильные данные/сценарии, ожидаем корректную ошибку/защиту.
Баланс важен: позитивное подтверждает, негативное защищает от сбоев.
ПримерПозитивный: корректный email и пароль → вход. Негативный: пустой пароль → ошибка и запрет входа.
РазвернутоПозитивное тестирование подтверждает, что сценарий «как задумано» работает. Негативное — что система корректно обрабатывает ошибки/границы и не ломается (валидация, сообщения, безопасность).
КлючевоеЧто обычно добавляют в негатив:
  • пустые значения, слишком длинные строки, неверные форматы (email/телефон/даты)
  • запрещенные символы и инъекции (если уместно), двойные клики/повторные запросы
  • несоответствие прав (роль не может выполнить действие)
  • сбой сети/таймауты, недоступность сервиса, повтор отправки формы
  • граничные значения (мин/макс), комбинации полей
На интервьюПодчеркните, что негативные проверки — это «корректная ошибка», а не «сломать систему»: понятное сообщение, сохранность данных, отсутствие утечек.

2. Виды и уровни тестирования

Классификация по целям и уровню системы.

Назовите виды тестирования: функциональное, нефункциональное, интеграционное, системное, приемочное.
  • Функциональное — проверка соответствия функциональным требованиям.
  • Нефункциональное — производительность, безопасность, usability.
  • Интеграционное — взаимодействие модулей.
  • Системное — система целиком как единый продукт.
  • Приемочное (UAT) — подтверждение от бизнеса/заказчика.
ПримерФункционал корзины проверяем системно, интеграцию оплаты — интеграционными, а приемку — вместе с бизнесом.
РазвернутоКлассификаций много, но в интервью лучше дать 2–3 оси: по цели (функциональное/нефункциональное), по уровню (unit→acceptance), по способу (black/white/grey) и по исполнению (manual/auto).
КлючевоеПримеры нефункциональных направлений:
  • производительность (нагрузка, время ответа, устойчивость)
  • безопасность (аутентификация/авторизация, уязвимости)
  • удобство (UX/usability, доступность)
  • совместимость (браузеры/устройства/ОС), надежность и отказоустойчивость
На интервьюПокажите, что понимаете границы: интеграционное тестирование — про стык модулей, системное — про продукт целиком, UAT — про приемку бизнеса.
Что такое unit, integration, system, acceptance testing?
  • Unit — отдельные функции/классы.
  • Integration — взаимодействие компонентов.
  • System — проверка всего продукта.
  • Acceptance — соответствие бизнес-ожиданиям.
ПримерUnit — тест скидки в модуле, integration — связка корзины и оплаты, system — полный заказ, acceptance — проверка бизнес‑критериев.
РазвернутоЭто «пирамида уровней». Чем ниже уровень, тем быстрее и дешевле тесты, но тем меньше уверенности в пользовательском сценарии. Чем выше — тем ближе к реальному использованию, но дороже в поддержке.
КлючевоеЧто проверяем на каждом уровне:
  • Unit: чистая логика (функции/классы), без внешних зависимостей или с моками
  • Integration: взаимодействие компонентов (сервис↔БД, сервис↔сервис), контракты, схемы данных
  • System: end‑to‑end сценарии «как пользователь», в реальном окружении
  • Acceptance: критерии бизнеса/заказчика (AC), соответствие ожиданиям и готовность к релизу
На интервьюУместно сказать: «Я как manual QA чаще работаю на системном/приемочном уровне, но понимаю ценность unit/integration как ранней защиты от регрессий».
Что такое white-box, black-box, grey-box testing?
  • Black-box — тестируем без знания кода, только вход/выход.
  • White-box — тестируем с доступом к коду/логике.
  • Grey-box — частичное знание внутренностей.
ПримерBlack‑box: тестируем форму как пользователь. Grey‑box: знаем API и проверяем запросы. White‑box: проверяем кодовые условия.
РазвернутоРазница — в доступе к внутренней информации о системе и способе построения тестов. Это влияет на то, как вы выбираете проверки и как быстро находите причину дефекта.
КлючевоеКак это выглядит для QA на практике:
  • Black‑box: тесты по требованиям/интерфейсу, на уровне входов/выходов (UI/API), без знания кода
  • Grey‑box: частичное знание (логика, схемы БД, документация API) → более точные тесты и быстрый дебаг
  • White‑box: чтение кода/ветвлений, покрытие условий, помощь в написании unit‑тестов
На интервьюСкажите, что grey‑box часто самый практичный: вы не пишете код, но используете логи, схемы, API‑контракты и DevTools.
Что такое exploratory и ad-hoc testing?
  • Exploratory — одновременно исследуем продукт и создаем тесты.
  • Ad-hoc — быстрое тестирование без подготовки, часто хаотично.
Exploratory структурирован и осознан, ad-hoc — скорее импровизация.
ПримерExploratory: целевая сессия по поиску с заметками; ad‑hoc: быстрая «пробежка» без плана.
РазвернутоExploratory — это управляемое исследование с целью, гипотезами и фиксацией заметок. Ad‑hoc — «быстрая пробежка» без структуры. В компании обычно ценят именно осмысленный exploratory.
КлючевоеКак делать exploratory правильно:
  • определить цель сессии (например: «найти дефекты в регистрации на мобиле») и таймбокс
  • вести заметки: что проверил, какие данные использовал, что нашел
  • использовать ходы: boundary/negative, смена ролей, прерывание сети, повторные действия
  • в конце — короткий отчет: находки + риски + рекомендации
На интервьюПодчеркните, что exploratory дополняет чек‑листы/кейсы и особенно полезен, когда документации мало или фича новая.
Что такое end-to-end тестирование?
Проверка полного пользовательского сценария от начала до конца с участием всех систем. Пример: регистрация → оплата → подтверждение → уведомление.
ПримерПользователь зарегистрировался → добавил товар → оплатил → получил email — это e2e‑цепочка.
РазвернутоE2E проверяет полный пользовательский путь через несколько компонентов (UI→API→БД→уведомления). Это самый «жизненный» уровень, но он самый дорогой и хрупкий.
КлючевоеЧто важно в E2E:
  • выделить критические цепочки (регистрация→покупка→оплата→доставка)
  • контролировать тестовые данные (идемпотентность, очистка, уникальность)
  • следить за внешними интеграциями (платежи/смс/почта) — часто нужны стабы/песочницы
  • собирать артефакты: логи, запросы, скриншоты, чтобы быстро дебажить
На интервьюСкажите, что E2E обычно делают выборочно (по рискам), а основное покрытие строят на более низких уровнях.
Что такое usability testing и как его проводить?
Usability — насколько продукт удобен и понятен пользователю. Проводится через наблюдение: сценарии, тестовые пользователи, сбор фидбэка, анализ ошибок.
ПримерQA просит 2–3 пользователей оформить заказ и фиксирует, где они «застревают» или путаются.
РазвернутоUsability‑тестирование проверяет, насколько легко пользователю выполнить задачу. Это не про «нравится/не нравится», а про измеримые проблемы: непонятные тексты, лишние шаги, ошибки, недоступность.
КлючевоеКак проводить (легкая схема):
  • определить целевые задачи (например: «оформить заказ за 2 минуты»)
  • описать портрет пользователя и контекст (мобильный интернет, новичок/опытный)
  • провести сценарное прохождение, фиксируя точки боли (где пользователь ошибается/зависает)
  • проверить тексты ошибок, подсказки, доступность (контраст, таб‑навигация)
  • оформить рекомендации с приоритетом (что исправлять в первую очередь)
На интервьюПолезно упомянуть эвристики Нильсена, понятные CTA, единообразие интерфейса, минимизацию когнитивной нагрузки.
Что такое cross-browser и cross-platform testing?
  • Cross-browser — одинаковая работа в разных браузерах.
  • Cross-platform — одинаковая работа на разных ОС/устройствах.
ПримерФорма корректно работает в Chrome/Firefox/Safari и на Windows/macOS/iOS — это cross‑browser/platform.
РазвернутоСовместимость — это риски различий в движках, API браузера, рендеринге, шрифтах, обработке событий, а также различий ОС/устройств. Тестировать «всё и везде» дорого, поэтому нужен риск‑подход.
КлючевоеКак выбирать матрицу:
  • ориентироваться на аналитику: доли браузеров/ОС у вашей аудитории
  • выделять критические пути (логин/оплата) и прогонять их на целевых платформах
  • проверять проблемные зоны: адаптив, формы, загрузки файлов, медиа, canvas/видео
  • использовать облака (BrowserStack/Firebase Test Lab) и локальные девайсы выборочно
На интервьюСкажите: «минимальный набор + расширение по рискам и инцидентам». Это выглядит профессионально.
Что такое A/B тестирование и как его проверять?
A/B — сравнение двух вариантов функционала на разных группах пользователей. Тестировщик проверяет корректное разделение трафика, сбор метрик и отсутствие ошибок в обоих вариантах.
ПримерQA проверяет, что 50% трафика видит новый баннер и метрики считаются отдельно по вариантам.
РазвернутоA/B — эксперимент: пользователи случайно делятся на группы, которым показывают разные варианты. QA важно проверить корректность разбиения, стабильность эксперимента и корректность метрик.
КлючевоеЧто проверяет QA в A/B:
  • рандомизация/бакетизация: один и тот же пользователь стабильно попадает в одну группу
  • таргетинг: условия попадания (гео, платформа, версия приложения)
  • эксклюзии: не пересекаются ли эксперименты, корректны ли флаги
  • сбор аналитики: события, параметры, отсутствие дублей, корректные значения
  • фоллбек: что видит пользователь при отключении флага/ошибке
На интервьюХорошо звучит: «проверяю не результат эксперимента, а корректность механики и измерения».
В чем суть Regression vs Retesting?
  • Retesting — повторная проверка конкретного исправленного бага.
  • Regression — проверка, что ничего не сломалось рядом или в других частях.
ПримерПосле фикса авторизации QA делает sanity по логину; перед релизом гоняет regression по ключевым сценариям.
РазвернутоRetest — перепроверка конкретного дефекта/фикса по шагам. Regression — более широкий прогон, чтобы поймать побочные эффекты изменений.
КлючевоеКак действовать после фикса:
  • сделать ретест по шагам дефекта + вариации данных (границы/негатив)
  • проверить смежные области («окрестный регресс») — то, что могло затронуться
  • если дефект был в прод‑критичном месте — расширить регресс на критический путь
На интервьюСкажите, что ретест без регресса — риск: фикс может починить один кейс и сломать другой.
Что такое Localization (L10n) и Internationalization (I18n) тестирование?
  • I18n — подготовка продукта к поддержке разных языков/регионов.
  • L10n — конкретная адаптация под язык/культуру (форматы дат, валюты).
Тестируем корректные переводы, длины строк, форматы, направления текста.
ПримерНа русском валюты и даты отображаются корректно, тексты не обрезаются — это L10n поверх I18n.
РазвернутоI18n — подготовка продукта к локалям (форматы дат/валют, кодировки, текстовые ресурсы). L10n — перевод и адаптация под конкретный язык/страну. QA проверяет и тексты, и поведение.
КлючевоеТиповые проверки локализации:
  • переводы и терминология (без «смешения языков»), корректные сокращения
  • переполнение UI: длинные строки, переносы, кнопки/таблицы
  • форматы: дата/время, валюта, разделители, единицы измерения
  • сортировка/поиск с учетом локали, регистр, диакритика
  • RTL‑языки (если актуально): направление, выравнивания
На интервьюУместно сказать: «проверяю не только перевод, но и функциональность в локали (форматы, валидации, ограничения)».

3. Методы и техники тест-дизайна

Как создавать эффективные тесты.

Что такое тест-дизайн и его цель?
Тест-дизайн — это методика выбора и описания тестов для максимального покрытия с минимальными затратами. Цель: найти дефекты быстрее и дешевле, чем хаотичное тестирование.
ПримерДля формы оплаты QA выбирает ключевые проверки по рискам, а не перебирает все варианты случайно.
РазвернутоТест‑дизайн — это системный способ получить максимальную уверенность при ограниченных ресурсах: выбрать, какие проверки реально нужны, и оформить их так, чтобы их можно было повторять.
КлючевоеХороший тест‑дизайн обычно включает:
  • декомпозицию требований на проверки и риски
  • выбор техник (классы эквивалентности, границы, decision table и т.д.)
  • определение данных и предусловий
  • приоритизацию: критический путь → потом менее критичное
  • трассируемость (что покрывает какой тест)
На интервьюСкажите, что цель — не «написать много кейсов», а покрыть риски и бизнес‑критичные сценарии.
Что такое эквивалентное разбиение (Equivalence Partitioning)?
Делим входные данные на классы, где поведение одинаковое. Берем по 1–2 значения из каждого класса. Пример: возраст 1–17, 18–65, 66–120 — проверяем по одному значению из каждого диапазона.
ПримерВозраст 1–17, 18–65, 66–120 — по одному значению из каждого класса.
РазвернутоЭквивалентное разбиение сокращает количество тестов: мы делим множество входных данных на группы, внутри которых система ведет себя одинаково, и берем по одному представителю из каждой группы.
КлючевоеКак применять:
  • выделить валидные и невалидные классы (например: «возраст 18–65» и «<18», «>65», «пусто», «буквы»)
  • для каждого класса выбрать представителя (типичное значение)
  • не забыть про сочетания полей (когда валидации зависят друг от друга)
На интервьюДобавьте: классы эквивалентности хорошо работают вместе с граничными значениями — это выглядит «по методологии».
Что такое анализ граничных значений (Boundary Value Analysis)?
Проверяем значения на границах диапазонов, где чаще всего ошибки. Пример: если допустимо 1–10, то тестируем 0,1,2 и 9,10,11.
ПримерЛимит 1–10: проверяем 0, 1, 10, 11.
РазвернутоОшибки чаще всего появляются на границах ограничений: минимумы/максимумы, переходы «0→1», смена разрядности, длина строки, лимиты. BVA проверяет точки вокруг этих границ.
КлючевоеКлассическая тройка для границы:
  • значение на границе (min или max)
  • значение чуть ниже границы (min−1)
  • значение чуть выше границы (min+1)
Чек‑листПроверьте также «нулевые» значения, пустые строки, максимальную длину, большие числа, юникод/эмодзи, ведущие/концевые пробелы.
На интервьюСкажите: «границы — самый высокий ROI в тестах», и приведите короткий пример (лимит 255 символов).
Что такое таблица принятия решений (Decision Table)?
Это таблица всех комбинаций условий и ожидаемых действий. Полезна, когда много логических правил (например, скидки, тарифы).
ПримерДля скидок «карта+промокод» QA проверяет все комбинации условий в таблице.
РазвернутоDecision Table полезна, когда результат зависит от комбинаций условий (правила, скидки, статусы). Мы перечисляем условия и ожидаемые действия, чтобы не пропустить комбинации.
КлючевоеКак строить:
  • выписать условия (например: «пользователь авторизован», «есть промокод», «доставка доступна»)
  • выписать действия/результаты (например: «применить скидку», «показать ошибку»)
  • составить набор правил‑колонок (комбинации) и покрыть их тестами
  • свести комбинации, если они эквивалентны (чтобы не взорвать количество тестов)
На интервьюХорошо: «использую decision table для сложных бизнес‑правил: скидки, тарифы, права доступа».
Что такое тестирование состояний и переходов (State Transition Testing)?
Метод для систем, где есть состояния (например, заказ: создан → оплачен → доставлен). Проверяем корректные и некорректные переходы между состояниями.
ПримерПеред релизом экрана оплаты QA проверяет успешную оплату, отказ банка и ошибки валидации, чтобы оценить риски для бизнеса.
РазвернутоState Transition Testing применяют, когда система имеет состояния и правила переходов (заказ: создан→оплачен→отгружен→доставлен). Ошибки часто в недопустимых переходах.
КлючевоеЧто тестировать:
  • валидные переходы (допустимые последовательности)
  • невалидные переходы (например, «доставить» до «оплаты»)
  • побочные эффекты переходов (уведомления, списания, блокировки)
  • повторные события и идемпотентность (двойной клик, повторный вебхук)
На интервьюУпомяните, что модель состояний можно рисовать как диаграмму и по ней генерировать тесты.
Что такое pairwise testing?
Тестирование по принципу «каждая пара параметров встречается хотя бы один раз». Снижает количество тестов при множестве параметров (браузер, ОС, язык и т. д.).
ПримерДля браузер/ОС/язык QA подбирает комбинации так, чтобы каждая пара встречалась хотя бы раз.
РазвернутоPairwise (попарное тестирование) сокращает комбинации параметров: вместо полного перебора покрываем все пары значений. Часто это дает хороший баланс покрытия и времени.
КлючевоеГде полезно:
  • кроссплатформенность (ОС×браузер×разрешение×язык)
  • настройки/фильтры с большим числом опций
  • комбинации ролей/тарифов/флагов
На интервьюСкажите, что pairwise не заменяет тесты на критические «тройки/четверки», но сильно экономит время на совместимости.
Что такое traceability matrix и зачем она нужна?
Матрица трассировки связывает требования с тестами. Помогает контролировать покрытие и видеть, какие требования не проверены.
ПримерВ RTM видно, что требование «восстановление пароля» покрыто тест‑кейсами и автотестами.
РазвернутоTraceability Matrix связывает требования ↔ тесты ↔ дефекты. Это помогает понимать покрытие, контролировать изменения и быстро отвечать «что проверить при изменении требования».
КлючевоеЗачем это нужно:
  • контроль покрытия требований (ничего не забыли)
  • оценка влияния изменений (impact analysis)
  • аудит/комплаенс (если есть регуляторика)
  • прозрачность для команды и стейкхолдеров
На интервьюХорошая фраза: «матрица особенно полезна в больших проектах и при частых изменениях требований».
Как выбрать тесты при ограниченном времени?
Фокус на рисках:
  • Критичные бизнес-сценарии.
  • Зоны с историей дефектов.
  • Новые/измененные компоненты.
Можно применить Risk-based testing + Smoke/Regression минимум.
ПримерПеред релизом QA тестирует критичные сценарии оплаты и авторизации, остальное — по рискам.
РазвернутоОшибки чаще всего появляются на границах ограничений: минимумы/максимумы, переходы «0→1», смена разрядности, длина строки, лимиты. BVA проверяет точки вокруг этих границ.
КлючевоеКлассическая тройка для границы:
  • значение на границе (min или max)
  • значение чуть ниже границы (min−1)
  • значение чуть выше границы (min+1)
Чек‑листПроверьте также «нулевые» значения, пустые строки, максимальную длину, большие числа, юникод/эмодзи, ведущие/концевые пробелы.
На интервьюСкажите: «границы — самый высокий ROI в тестах», и приведите короткий пример (лимит 255 символов).
Что такое Error Guessing?
Тестирование на основе опыта и предположений о типичных ошибках. Пример: пустые поля, спецсимволы, большие числа, двойные клики.
ПримерQA проверяет спецсимволы и пустые поля, потому что часто именно там ломается валидация.
РазвернутоError Guessing — техника, основанная на опыте: вы целенаправленно ищете места, где «обычно ломается» (валидации, преобразования данных, интеграции, состояния).
КлючевоеТиповые источники ошибок:
  • граничные значения и форматы (даты, валюты, часовые пояса)
  • обработчики ошибок и сообщения пользователю
  • права доступа и роли
  • асинхронность и гонки (двойные клики, повторные запросы)
  • интеграции (платежи, почта, внешние API)
На интервьюПодчеркните, что error guessing дополняет формальные техники, особенно когда документация неполная.
Как применить классы эквивалентности для числовых и строковых данных?
Для чисел: диапазоны (валидные/невалидные). Для строк: длина, формат, допустимые символы. Пример: пароль 8–16 символов: классы 0–7, 8–16, 17+; спецсимволы допустимы/нет.
ПримерПароль 8–16: проверяем 7, 8, 16, 17 символов, включая спецсимволы.
РазвернутоЭквивалентное разбиение сокращает количество тестов: мы делим множество входных данных на группы, внутри которых система ведет себя одинаково, и берем по одному представителю из каждой группы.
КлючевоеКак применять:
  • выделить валидные и невалидные классы (например: «возраст 18–65» и «<18», «>65», «пусто», «буквы»)
  • для каждого класса выбрать представителя (типичное значение)
  • не забыть про сочетания полей (когда валидации зависят друг от друга)
На интервьюДобавьте: классы эквивалентности хорошо работают вместе с граничными значениями — это выглядит «по методологии».

4. SDLC и STLC

Жизненный цикл разработки и тестирования.

Что такое SDLC и STLC?
  • SDLC — жизненный цикл разработки ПО (идея → анализ → разработка → тестирование → релиз → поддержка).
  • STLC — жизненный цикл тестирования (анализ требований → планирование → дизайн тестов → выполнение → отчет).
ПримерQA анализирует требования, проектирует тесты, выполняет их и формирует отчет — это STLC в SDLC.
РазвернутоSDLC описывает жизненный цикл разработки продукта (от идеи до поддержки), а STLC — жизненный цикл тестирования (от анализа требований до отчета и закрытия тестирования). STLC обычно «встроен» в SDLC.
КлючевоеТиповые этапы:
  • SDLC: планирование → анализ требований → дизайн → разработка → тестирование → релиз → поддержка
  • STLC: анализ требований → план/стратегия → дизайн тестов → подготовка окружения/данных → выполнение → отчетность → закрытие
На интервьюХорошо звучит: «QA подключается как можно раньше, чтобы предотвращать дефекты, а не только ловить в конце».
Какова роль QA в каждом этапе SDLC?
  • Анализ требований: выявление неоднозначностей.
  • Проектирование: review спецификаций.
  • Разработка: тесты, тестовые данные.
  • Тестирование: выполнение, отчеты, риски.
  • Релиз: качество, sign-off.
  • Поддержка: анализ инцидентов.
ПримерQA анализирует требования, проектирует тесты, выполняет их и формирует отчет — это STLC в SDLC.
РазвернутоQA приносит качество на каждом этапе: на старте — вопросы к требованиям, в середине — ранние проверки и обратная связь, ближе к релизу — уверенность и контроль рисков, после — мониторинг качества в проде.
КлючевоеПримеры вклада QA по этапам:
  • требования: уточнения, примеры, выявление edge‑кейсов, согласование AC
  • дизайн: проверка UX‑логики, валидности потоков, доступности
  • разработка: синк по тестируемости, логированию, фича‑флагам
  • тестирование: риск‑ориентированные проверки, баг‑репорты, регресс
  • релиз/прод: smoke после деплоя, мониторинг, участие в разборе инцидентов
На интервьюПолезно упомянуть shift-left (раннее тестирование) и shift-right (наблюдаемость в проде).
Что такое Waterfall, Agile, Scrum, Kanban?
  • Waterfall — последовательные этапы, изменения дорогие.
  • Agile — гибкая разработка короткими итерациями.
  • Scrum — Agile-фреймворк со спринтами, ролями, церемониями.
  • Kanban — визуализация потока задач и ограничение WIP.
ПримерВ Scrum QA работает спринтами с планированием и ретро; в Waterfall тестирует после разработки.
РазвернутоWaterfall — последовательный процесс с поздним тестированием. Agile — итеративная разработка с частой поставкой ценности. Scrum и Kanban — практики/фреймворки внутри Agile, с разной организацией работы.
КлючевоеКороткие различия:
  • Waterfall: этапы идут «водопадом», изменения дорогие, тестирование часто в конце
  • Scrum: спринты, роли, церемонии, инкремент в конце спринта
  • Kanban: непрерывный поток задач, WIP‑лимиты, фокус на пропускной способности
На интервьюСкажите, что в Agile QA тестирует постоянно в спринте, участвует в refinement и помогает формировать AC.
Какие роли есть в Scrum?
  • Product Owner
  • Scrum Master
  • Dev Team (включая QA)
ПримерВ Scrum QA работает спринтами с планированием и ретро; в Waterfall тестирует после разработки.
РазвернутоWaterfall — последовательный процесс с поздним тестированием. Agile — итеративная разработка с частой поставкой ценности. Scrum и Kanban — практики/фреймворки внутри Agile, с разной организацией работы.
КлючевоеКороткие различия:
  • Waterfall: этапы идут «водопадом», изменения дорогие, тестирование часто в конце
  • Scrum: спринты, роли, церемонии, инкремент в конце спринта
  • Kanban: непрерывный поток задач, WIP‑лимиты, фокус на пропускной способности
На интервьюСкажите, что в Agile QA тестирует постоянно в спринте, участвует в refinement и помогает формировать AC.
Что такое Sprint, Backlog, User Story, Acceptance Criteria?
  • Sprint — фиксированный отрезок времени (1–4 недели).
  • Backlog — список задач/фич.
  • User Story — описание ценности для пользователя.
  • Acceptance Criteria — условия, при которых задача считается выполненной.
ПримерUnit — тест скидки в модуле, integration — связка корзины и оплаты, system — полный заказ, acceptance — проверка бизнес‑критериев.
РазвернутоЭто базовые сущности Scrum: спринт — итерация, бэклог — список работ, user story — описание ценности с точки зрения пользователя, acceptance criteria — условия приемки (что значит «сделано правильно»).
КлючевоеЧто важно для QA:
  • история должна быть тестируемой (ясные AC, примеры, ограничения)
  • AC — основа для тестов и приемки, но не заменяют тест‑дизайн
  • не бойтесь задавать вопросы на refinement: роли, данные, ошибки, исключения
На интервьюСкажите, что вы помогаете уточнять AC так, чтобы их можно было проверить объективно.
Что такое Definition of Ready (DoR) и Definition of Done (DoD)?
  • DoR — критерии готовности задачи к разработке.
  • DoD — критерии завершенности задачи (код, тесты, документация).
ПримерDoR: есть макеты и критерии; DoD: тесты пройдены, баги закрыты, релиз готов.
РазвернутоDoR — критерии, что задача готова к взятию в работу (понятные требования, макеты, зависимости). DoD — критерии, что задача завершена (код, тесты, документация, проверено, без критических багов).
КлючевоеПримеры критериев:
  • DoR: описаны AC, понятны роли/состояния, есть макеты, известны интеграции, согласованы риски
  • DoD: реализовано по AC, пройден смоук/регресс, заведены дефекты, обновлена документация, готово к релизу
На интервьюУпомяните, что DoR/DoD уменьшают «сюрпризы» в конце спринта и повышают предсказуемость качества.
Что такое QA sign-off?
Решение QA о готовности релиза с учетом рисков и результатов тестирования. Это не «разрешение», а информирование бизнеса о состоянии качества.
ПримерQA пишет: «критичных багов нет, есть 2 минорных риска», и бизнес принимает решение.
РазвернутоQA sign‑off — формальная/неформальная фиксация: что именно проверено, какие результаты, и какие риски остаются. Это не «гарантия отсутствия багов», а ответственность за прозрачность.
КлючевоеЧто обычно включает sign‑off:
  • объем проверок (что вошло/что не вошло)
  • результаты (пройдено/провалено, критичные дефекты)
  • остаточные риски и рекомендации (можно ли релизить и при каких условиях)
  • ограничения: окружение, данные, известные проблемы
На интервьюХорошо звучит: «sign‑off — это communication tool для бизнеса, а не формальность».
Как QA участвует в планировании и ретроспективах?
В планировании оценивает риски, уточняет требования, предлагает тестовую стратегию. В ретроспективе помогает улучшать процесс: где были дефекты, что можно автоматизировать.
ПримерQA на ретро поднимает проблему нестабильных сборок и предлагает smoke‑набор автотестов.
РазвернутоВ планировании QA помогает оценить тестирование, выявить зависимости и риски. На ретроспективе — улучшает процесс: где теряем качество, почему баги уходят в прод, что автоматизировать/упростить.
КлючевоеКак QA добавляет ценность:
  • задает вопросы по тестируемости (логи, фичафлаги, тестовые данные)
  • предлагает критерии приемки и минимальный набор проверок (smoke/regress)
  • выносит проблемы качества: поздние требования, нестабильное окружение, долгие фиксы
  • договаривается о действиях (action items) и метриках улучшений
На интервьюПример улучшения: договорились логировать ключевые события и добавили фича‑флаги → меньше «плавающих» багов.
Что делать, если фича не прошла тестирование, но релиз завтра?
Сообщить риски и влияние, предложить варианты:
  • Отложить релиз.
  • Откатить/закрыть фичу флагом.
  • Выпустить с известным риском и планом фикса.
Решение принимает бизнес, QA дает данные.
ПримерПеред релизом QA сообщает, что оплата падает, и предлагает фича‑флаг или перенос.
РазвернутоЭто классическая ситуация управления рисками. Правильная реакция QA — не «запретить релиз», а прозрачно описать риски, предложить варианты и зафиксировать решение.
КлючевоеПошагово:
  • оценить severity/impact и затронутые пользователи/деньги/безопасность
  • предложить компромиссы: отключить фичу флагом, частичный релиз, hotfix‑ветка
  • сделать минимальный smoke по критическому пути + ретест фикса, если есть
  • зафиксировать остаточный риск и решение в задаче/канале релиза
На интервьюСкажите: «я эскалирую риски, предлагаю варианты, а решение принимает владелец продукта».
Как реагировать, если требования изменились в процессе тестирования?
Уточнить изменения, обновить тестовую документацию и оценку времени. Отметить, какие тесты устарели и какие нужны новые проверки.
ПримерПосле изменения требований QA пересматривает тесты и уведомляет о сдвиге сроков.
РазвернутоИзменение требований — норма. QA важно быстро сделать impact analysis: что меняется в тестах, данных, уже найденных дефектах, и сколько времени нужно.
КлючевоеКак действовать:
  • уточнить изменения и критерии приемки (что теперь «правильно»)
  • пересмотреть тест‑набор: какие кейсы устарели, какие добавить
  • обновить тестовые данные/окружение, предупредить о рисках и сроках
  • перепроверить смежные части (регресс вокруг измененной логики)
На интервьюХорошая формулировка: «фиксирую изменения, синхронизирую ожидания и обновляю покрытие по рискам».

5. Документация

Что писать и как фиксировать результаты.

Что такое Test Plan, Test Case, Test Suite, Test Run?
  • Test Plan — стратегия и объем тестирования.
  • Test Case — сценарий с шагами.
  • Test Suite — набор тест-кейсов.
  • Test Run — выполнение набора тестов в конкретном окружении.
ПримерTest Plan описывает стратегию, Test Suite содержит кейсы, Test Run фиксирует результат прогона.
РазвернутоЭто уровни «как мы тестируем»: план/стратегия (Test Plan), конкретные проверки (Test Case), группировка проверок (Suite) и конкретный прогон на версии/окружении (Run).
КлючевоеЧто обычно содержится:
  • Test Plan: цель, объём, риски, окружения, роли, критерии входа/выхода, отчётность
  • Test Case: предусловия, шаги, данные, ожидаемый результат, пост‑условия
  • Test Suite: набор кейсов по модулю/фиче/регрессу
  • Test Run: запуск suite на конкретной сборке + результаты (pass/fail/blocked)
На интервьюУпомяните критерии входа/выхода (Entry/Exit) и риск‑ориентированный объем — это + к зрелости.
Чем отличается тест-кейс от чек-листа?
Тест-кейс — детальные шаги. Чек-лист — только перечень проверок. Чек-лист быстрее поддерживать, тест-кейсы лучше повторяемы.
ПримерДля формы регистрации есть тест‑кейс с шагами, для общего smoke — чек‑лист, а найденную ошибку фиксируем баг‑репортом.
РазвернутоРазница — в детализации и повторяемости. Чек‑лист помогает быстро не забыть проверки, тест‑кейс позволяет строго воспроизводить шаги и проводить регресс разными людьми.
КлючевоеКогда какой формат лучше:
  • чек‑лист: смоук, быстрые проверки, exploratory сессии
  • тест‑кейс: регресс, критические флоу, сложные сценарии с данными
  • гибрид: чек‑лист + ссылки на детальные кейсы для важных пунктов
На интервьюСкажите, что формат выбираете по рискам и необходимости повторяемости/аудита.
Что содержит баг-репорт?
  • Заголовок и краткое описание.
  • Шаги воспроизведения.
  • Фактический и ожидаемый результат.
  • Окружение (OS, браузер, версия).
  • Вложения: скриншот, логи.
ПримерTitle: «Оплата: 500 при оплате картой». Steps, Actual: 500, Expected: успешная оплата, Env: браузер/версия, вложения: HAR + скрин/видео.
РазвернутоЦель баг‑репорта — быстро и однозначно воспроизвести проблему и понять ее влияние. Чем меньше времени разработчик потратит на выяснения — тем быстрее будет фикс.
КлючевоеМинимально хороший баг‑репорт:
  • краткое, конкретное название (что/где/при каких условиях)
  • окружение: версия, платформа, браузер/устройство, роль пользователя
  • шаги воспроизведения + тестовые данные
  • Actual vs Expected, частота (100%/иногда), влияние/риски
  • вложения: скрин/видео, логи, HAR, request/response, console errors
На интервьюОтдельный плюс: указать предполагаемую область (UI/API/DB) и как это проверили.
Что такое requirements traceability matrix?
Таблица соответствия требований и тестов. Показывает, что каждое требование проверено.
ПримерВ RTM видно, что требование «восстановление пароля» покрыто тест‑кейсами и автотестами.
РазвернутоRTM — таблица соответствия требований и тестов (и часто дефектов). Она помогает контролировать покрытие и проводить impact analysis при изменениях.
КлючевоеКак используют:
  • каждое требование/AC связано с одним или несколькими тестами
  • при изменении требования видно, какие тесты обновить и что ретестить
  • можно быстро ответить «покрыто/не покрыто» и показать прогресс
На интервьюЕсли RTM не ведут явно, скажите, что используете ссылки «story ↔ tests ↔ bugs» в Jira/TMS — это тоже трассируемость.
Как формулировать Expected и Actual result?
  • Expected — что должно произойти по требованиям.
  • Actual — что произошло фактически.
Пишем четко, без эмоций, с конкретными данными.
ПримерExpected: «после оплаты статус — Оплачен». Actual: «статус остался Новый».
РазвернутоExpected — что должно быть по требованиям/AC. Actual — что произошло фактически. Их формулируют наблюдаемо и проверяемо: без эмоций и «должно быть нормально».
КлючевоеКак писать хорошо:
  • Expected: конкретный результат (сообщение, статус, изменение данных, редирект)
  • Actual: то, что реально видим (включая коды/тексты/значения)
  • если ожидание не определено — это отдельный вопрос к требованиям (не придумывать молча)
На интервьюПокажите зрелость: «если expected не определен — уточняю у PO/аналитика и фиксирую в AC/документации».
Что такое Acceptance Criteria?
Это условия, при которых функционал считается выполненным и приемлемым для бизнеса.
ПримерUnit — тест скидки в модуле, integration — связка корзины и оплаты, system — полный заказ, acceptance — проверка бизнес‑критериев.
РазвернутоAcceptance Criteria — измеримые условия, при которых история считается принятой. Для QA это основной источник ожидаемого поведения и база для тестов/приемки.
КлючевоеПризнаки хороших AC:
  • однозначные и проверяемые (без «удобно», «быстро» без метрики)
  • покрывают позитив + важный негатив
  • учитывают роли/права, ошибки и граничные условия
  • согласованы со всеми (PO/Dev/QA) до начала разработки
На интервьюМожно упомянуть формат Given/When/Then и примеры (пример‑ориентированные AC).
Какие инструменты используются для документации (TestRail, Zephyr, Qase)?
Это TMS — системы управления тестами. Помогают хранить тесты, запускать прогоны, формировать отчеты.
ПримерВ Qase QA хранит кейсы, запускает прогоны и формирует отчет.
РазвернутоИнструменты документации помогают хранить тесты, планировать прогоны, вести результаты и отчетность. Важно не название инструмента, а как вы используете его для прозрачности.
КлючевоеТипичные возможности TMS:
  • иерархия тестов (suite/sections), теги, версии
  • прогоны (runs), отчеты (pass rate, flaky, blocked)
  • связь с требованиями/задачами/дефектами (traceability)
  • шаблоны шагов, параметризация, хранение тестовых данных
На интервьюСкажите, что поддерживаете актуальность: регулярно чистите дубликаты, обновляете кейсы после изменений, выделяете регресс‑набор.
Что такое Test Summary Report?
Итоговый отчет о тестировании: объем, результаты, найденные дефекты, риски, вывод о качестве.
ПримерПосле релиза QA отправляет отчет: покрытие 80%, критичных багов 0, риски — 2 минорных.
РазвернутоTest Summary Report — итоговый отчет по тестированию релиза/спринта: что проверили, результаты, дефекты и риски. Он нужен, чтобы быстро понять состояние качества.
КлючевоеЧто обычно включают:
  • объем: что тестировали и на каком окружении/версии
  • результаты: pass/fail/blocked, ключевые сценарии
  • список критичных дефектов + статус, остаточные риски
  • что не успели/ограничения тестирования
  • рекомендация по релизу (go/no-go/условно go)
На интервьюХорошо: «я пишу кратко для менеджмента и отдельно — технические детали (логи/ссылки) для команды».
Как фиксировать результаты тестирования?
В TMS или таблице: статус теста (Pass/Fail/Blocked), комментарии, ссылки на баги.
ПримерВ TMS статус Pass/Fail и ссылка на баг — это стандарт фиксации результатов.
РазвернутоРезультаты фиксируют так, чтобы они были воспроизводимы и полезны: статус, факты, ссылки на артефакты и контекст (версия, окружение, данные).
КлючевоеПрактика:
  • в TMS отмечать pass/fail/blocked и причину блокировки
  • для fail — ссылка на баг + доказательства (скрин/видео/логи/HAR)
  • фиксировать версию билда, окружение, тестовые данные
  • если отклонение спорное — ссылка на требования/AC и обсуждение
На интервьюМожно сказать: «фиксирую результаты так, чтобы любой мог быстро понять, что произошло и что делать дальше».
Как документировать тестовые данные и предусловия?
Указываем в тест-кейсе/чек-листе: аккаунт, роль, баланс, состояние системы. Храним тестовые данные отдельно, чтобы можно было быстро повторить тест.
ПримерВ тест‑кейсе указано: пользователь с балансом 1000, роль Admin.
РазвернутоТестовые данные и предусловия — ключ к воспроизводимости. Если их не фиксировать, регресс и ретесты становятся нестабильными и дорогими.
КлючевоеЧто документировать:
  • роль/учетная запись (права, тариф, статус), необходимые настройки
  • состояние сущностей (заказ «оплачен», корзина «не пустая»)
  • данные (номера, суммы, даты) и правила их уникальности
  • способ подготовки (через UI, API, SQL, фикстуры) и очистки после теста
На интервьюУместно: «я стараюсь готовить данные через API/SQL, чтобы ускорить тесты, и всегда описываю, как их воспроизвести».

6. Веб-тестирование

Фронтенд, бэкенд, браузеры, DevTools.

Что такое веб-приложение и его архитектура (frontend, backend, DB)?
Веб-приложение состоит из:
  • Frontend — интерфейс в браузере.
  • Backend — серверная логика.
  • DB — хранение данных.
Запросы идут из браузера на сервер, сервер обращается к БД и возвращает ответ.
ПримерUI отправляет запрос к API, API пишет в БД — QA проверяет связку на сценарии оплаты.
РазвернутоВ веб‑приложении обычно есть фронтенд (UI в браузере), бэкенд (серверная логика/API) и база данных (хранение). В реальности добавляются кеши, очереди, CDN, сторонние сервисы.
КлючевоеЧто важно понимать QA:
  • где может быть причина дефекта: UI (верстка/валидация), API (контракт/логика), БД (данные/ограничения)
  • как выглядит запрос: URL + метод + headers + body → response (status + body)
  • роль состояния: cookies/localStorage/sessionStorage, серверные сессии
  • наблюдаемость: логи, ошибки в console, network traces
На интервьюХорошая фраза: «я умею локализовать проблему: повторить, посмотреть Network/Console, проверить запрос/ответ и понять, где ломается».
Что проверяется при веб-тестировании?
  • Функционал (формы, кнопки, сценарии).
  • UI/UX (верстка, адаптивность).
  • Скорость загрузки и ошибки в консоли.
  • Безопасность (авторизация, сессии).
ПримерQA проверяет функционал, UI, адаптивность, ошибки в консоли и корректность сетевых запросов.
РазвернутоВ веб‑тестировании важно покрыть функциональность, UI/UX, совместимость и устойчивость к ошибкам окружения (сеть, кеш, разные браузеры).
Чек‑листМинимальный набор проверок:
  • критические пользовательские сценарии (логин, покупка, поиск, профиль)
  • формы и валидации, сообщения об ошибках
  • верстка: адаптив, переполнение, шрифты, локализация
  • кроссбраузерность и разное разрешение/масштаб
  • производительность субъективно (долгие загрузки), ошибки в Console
  • безопасность на уровне здравого смысла (права, прямые ссылки, сессии)
На интервьюСкажите, что проверяете «end‑user view» + быстро смотрите технику через DevTools.
Как тестировать формы ввода (валидация, длина, формат)?
Проверяем:
  • Обязательные поля, пустые значения.
  • Границы длины (мин/макс).
  • Формат (email, телефон).
  • Недопустимые символы и инъекции.
ПримерВерификация: кнопка «Купить» работает по ТЗ. Валидация: пользователи реально могут оформить заказ без путаницы.
РазвернутоФормы — источник большинства дефектов: валидации, форматирование, маски, сообщения, обработка ошибок и безопасность. Нужны позитив, негатив и границы.
Чек‑листЧто проверять в форме:
  • валидации по каждому полю: обязательность, формат, диапазон, длина
  • сообщения об ошибках: понятность, где показываются, исчезают ли после исправления
  • обработка пробелов/регистра, автозаполнение, вставка из буфера
  • маски и форматирование (телефон, карта): корректность при вводе/удалении
  • отправка: двойной клик, блокировка кнопки, индикатор загрузки
  • серверные ошибки: 4xx/5xx, таймаут — понятное сообщение, данные не теряются
На интервьюДобавьте про безопасность: «не доверяем фронту — сервер тоже валидирует».
Как проверить верстку и адаптивность сайта?
Используем DevTools (responsive mode), проверяем ключевые брейкпоинты, прокрутку, наложения. Важно: доступность, читаемость, кликабельность элементов.
ПримерНа ширине 360px кнопка «Купить» не должна уезжать за экран.
РазвернутоПроверка верстки — это не «красиво/некрасиво», а корректность отображения и доступность элементов управления на разных экранах, масштабах и с разными данными.
Чек‑листЧто смотреть:
  • переполнение текста (длинные названия, локализация), обрезания, наложения
  • адаптив: брейкпоинты, меню, таблицы, модалки на маленьком экране
  • состояния элементов: hover/focus/disabled/error, видимость фокуса
  • масштаб браузера 80–200%, системный шрифт крупнее
  • кроссбраузер: отличия рендера шрифтов, flex/grid, scroll
  • доступность: таб‑навигация, контраст (минимум здравого смысла)
На интервьюУпомяните DevTools: device toolbar, emulation, инспектор стилей, проверка размеров и overflow.
Что такое кроссбраузерное тестирование и как его проводить?
Это проверка корректной работы в разных браузерах и версиях. Используем реальные браузеры и сервисы вроде BrowserStack.
ПримерФорма оплаты работает в Chrome и Safari без сломанной верстки.
РазвернутоКроссбраузерное тестирование — это управление риском несовместимости. Обычно строят матрицу из 3–5 ключевых браузеров/платформ и расширяют при необходимости.
КлючевоеКак делать практично:
  • выбрать целевые браузеры по аналитике и требованиям
  • прогнать критический путь и проблемные зоны (формы, видео, загрузки, печать)
  • зафиксировать known issues и их приоритет
  • использовать облачные фермы/виртуалки для редких комбинаций
На интервьюСкажите, что умеете локализовать «браузерный» баг через user‑agent, консоль, network и полифиллы.
Как протестировать кэширование и работу cookies/session storage?
  • Проверяем поведение при обновлении/очистке кэша.
  • Проверяем хранение токенов в cookies/storage.
  • Проверяем срок жизни и безопасность (HttpOnly, Secure).
ПримерПосле выхода из аккаунта cookies очищаются, повторный вход требует логин/пароль.
РазвернутоКэш и хранилища влияют на авторизацию, состояние UI и «странные» баги типа «у меня не обновилось». QA должен уметь проверять и очищать состояние.
Чек‑листЧто проверять:
  • cookies: срок жизни, secure/httponly/samesite, удаление при logout
  • localStorage/sessionStorage: что хранится, очистка, миграции значений
  • кэш ресурсов: обновляется ли фронт после деплоя (cache busting)
  • поведение при очистке cookies/кэша и при приватном режиме
  • корректность сессии при нескольких вкладках/устройствах
На интервьюХороший акцент: «проверяю logout — токен/сессия реально инвалидируется, а не только UI меняется».
Как использовать DevTools в Chrome для проверки фронтенда?
Используем вкладки Elements, Console, Network, Application. Проверяем ошибки, стили, запросы, storage.
ПримерQA открывает Console, видит JS‑ошибку и связывает ее с падением формы.
РазвернутоDevTools — основной инструмент manual QA в вебе: network/console/storage/elements/performance. Он ускоряет диагностику и улучшает качество баг‑репортов.
КлючевоеЧто полезно уметь:
  • Elements: проверка DOM, CSS, размеров/overflow, состояние элементов
  • Console: JS‑ошибки, предупреждения, логи, исключения
  • Network: запросы/ответы, коды, тайминги, payload, HAR‑экспорт
  • Application/Storage: cookies, localStorage, service workers, cache
  • Device toolbar: эмуляция экранов, сетей, DPR
На интервьюСкажите, что прикладываете к багу HAR/скриншоты network и ошибки из console — это «взрослый» уровень.
Как проверить запросы во вкладке Network?
Смотрим URL, метод, статус, headers, payload, response. Это помогает отловить ошибки API и неверные параметры.
ПримерQA смотрит, что POST /login вернул 401 при неверном пароле.
РазвернутоNetwork помогает понять, что реально отправляет фронт и что отвечает бэкенд. Это часто позволяет быстро отделить UI‑проблему от API‑проблемы.
Чек‑листНа что смотреть в Network:
  • URL, метод, статус‑код, время ответа
  • request headers (auth, content-type) и payload (body/query)
  • response body: данные/ошибка, соответствие контракту
  • редиректы (301/302), CORS‑ошибки, смешанный контент (mixed content)
  • повторные запросы, дубли, кэширование (from disk cache/from memory cache)
На интервьюУпомяните HAR export и умение воспроизвести запрос в curl/Postman.
Что такое HTTP коды (200, 301, 400, 401, 403, 404, 500)?
  • 200 — OK
  • 301 — Redirect
  • 400 — Bad Request
  • 401 — Unauthorized
  • 403 — Forbidden
  • 404 — Not Found
  • 500 — Server Error
ПримерПри 404 для картинки в Network видно, что ресурс не найден — это причина битой иконки.
РазвернутоHTTP‑коды — быстрый сигнал, где проблема: 2xx — успех, 3xx — редирект, 4xx — ошибка клиента (данные/права), 5xx — ошибка сервера.
КлючевоеПрактичная трактовка:
  • 200/201 — успех (создание часто 201)
  • 301/302 — редирект (проверь цепочки, SEO, сохранение параметров)
  • 400 — неверный запрос/валидация, 401 — не аутентифицирован, 403 — нет прав
  • 404 — ресурс не найден, 500 — внутренняя ошибка сервера
На интервьюСкажите, что всегда смотрите код + тело ошибки: там часто есть message/code/details для диагностики.
Как протестировать редиректы, ссылки, ошибки загрузки ресурсов?
Проверяем корректность URL, статус 301/302, отсутствие циклов. В Network проверяем 404/500 для CSS/JS/картинок.
ПримерСсылка на /old-page должна вести на /new-page с 301, а CSS не должен 404.
РазвернутоРедиректы и ресурсы ломаются из‑за неверных URL, кеша, CDN, прав доступа, CORS, смешанного контента. Это влияет на SEO, аналитики и пользовательский опыт.
Чек‑листЧто проверить:
  • корректность 301/302: куда ведет, сохраняются ли query‑параметры и хэш
  • битые ссылки (404), ссылки в новых вкладках, относительные/абсолютные пути
  • загрузка ресурсов (JS/CSS/шрифты/картинки): нет ли 404/403, корректные mime‑типы
  • CORS/Access-Control заголовки, mixed content при HTTPS
  • поведение при медленной сети/частичной загрузке
На интервьюУпомяните, что смотрите это в Network и прилагаете список упавших ресурсов к багу.
Как тестировать отображение данных, получаемых с API?
Сравниваем ответ API с тем, что отображается на UI. Проверяем формат, порядок, корректность округлений.
ПримерВ API цена 99.9, в UI показывается 99.90 — QA сверяет точность округления.
РазвернутоКогда UI отображает данные из API, тестирование включает: корректность запроса, корректность ответа и корректность отображения/форматирования (включая пустые/ошибочные ответы).
Чек‑листЧто проверить:
  • контракт: поля, типы, обязательность, обработка неизвестных/лишних полей
  • форматирование: даты/валюты/локаль, округления, единицы измерения
  • пустые состояния: нет данных, частичные данные, null
  • ошибки API: 4xx/5xx — корректные сообщения и UI‑состояния
  • пагинация/сортировка/фильтры: соответствие параметрам запроса
На интервьюСкажите, что сравниваете «что в ответе» vs «что на экране», и умеете воспроизвести запрос отдельно (Postman).
Как тестировать авторизацию / регистрацию / восстановление пароля?
  • Позитивные и негативные сценарии.
  • Проверка ограничений (пароль, email).
  • Сессия, выход, безопасность.
  • Срок действия ссылок восстановления.
ПримерПри регистрации с уже занятым email — понятная ошибка, ссылка восстановления работает.
РазвернутоАутентификация/регистрация — зона повышенного риска: безопасность, UX и интеграции (почта/смс). Важно покрыть не только «вошёл», но и ошибки и защиту.
Чек‑листЧто проверить:
  • валидации полей, сообщения об ошибках, ограничения пароля (сложность)
  • блокировки/лимиты: повторные попытки, rate limit, капча (если есть)
  • восстановление: токен/ссылка, срок жизни, одноразовость, повторное использование
  • сессии: logout, истечение, «запомнить меня», несколько устройств
  • безопасность: прямые ссылки, доступ к чужим данным, корректные 401/403
На интервьюХорошая фраза: «проверяю не только happy path, но и защиту от перебора, корректное управление сессией и безопасность восстановления пароля».
Как проверить корректность отображения контента при разных разрешениях экрана?
Используем responsive mode, проверяем ключевые разрешения (мобильный/планшет/десктоп). Проверяем переносы, скрытые элементы, кликабельность.
ПримерНа 768px меню превращается в бургер, а текст остается читабельным.
РазвернутоРазные разрешения — это про адаптив и реальные устройства: ширина/высота, DPR, ориентация, масштаб, системные настройки. Важно проверить критичные экраны и «сломанные» макеты.
Чек‑листПрактика:
  • брейкпоинты: ключевые ширины (моб/планшет/десктоп)
  • длинный контент и локализация → переполнение
  • скролл: горизонтальный не должен появляться без причины
  • фиксированные элементы (header/footer) не перекрывают контент
  • модальные окна и попапы на маленьком экране
На интервьюУпомяните эмуляцию в DevTools и проверку на реальном устройстве для проблемных кейсов.
Что такое responsive / adaptive layout?
  • Responsive — элементы гибко перестраиваются под ширину.
  • Adaptive — несколько фиксированных макетов под брейкпоинты.
ПримерResponsive: блоки тянутся; adaptive: переключаются готовые макеты под брейкпоинты.
РазвернутоResponsive — «резиновая» верстка, которая плавно подстраивается под ширину. Adaptive — набор фиксированных макетов/брейкпоинтов, между которыми происходит переключение.
КлючевоеКак QA это проверяет:
  • плавное изменение размеров: нет ли «скачков», наложений, исчезающих кнопок
  • проверка ключевых брейкпоинтов и типовых устройств
  • удобство управления: кликабельные зоны, размер шрифтов, доступность меню
На интервьюСкажите, что проверяете и адаптивность, и usability на мобиле (тап‑таргеты, модалки, клавиатура).
Как протестировать работу с формами через DevTools (эмуляция событий, отправка POST-запросов)?
Можно изменить значения прямо в DOM, отправить форму, посмотреть Network. Для сложных запросов — использовать `fetch` в Console или Postman.
ПримерQA меняет значение input через DevTools и проверяет, что сервер правильно валидирует.
РазвернутоDevTools позволяет эмулировать пользовательские действия и проверять реальные запросы: менять поля, повторять запросы, смотреть payload, тестировать ошибки без «клика по UI».
КлючевоеПолезные приемы:
  • повторить запрос (Replay XHR), сравнить payload и response
  • изменить запрос и проверить реакцию (граничные значения/негатив)
  • замедлить сеть/CPU, проверить устойчивость UI
  • проверить, что на submit уходит то, что ввел пользователь (нет лишних преобразований)
  • сохранить HAR для бага
На интервьюЭто сильный плюс: вы показываете, что умеете тестировать быстрее и глубже, чем «только глазами».

7. Мобильное тестирование

Особенности мобильных приложений и устройств.

Чем мобильное тестирование отличается от веб-тестирования?
Мобильное тестирование учитывает устройства, ориентацию, сеть, батарею, уведомления, store-процессы. Веб больше про браузеры и фронтенд.
ПримерНа мобиле QA проверяет ориентацию, сеть, батарею и пуши, чего нет в вебе.
РазвернутоМобильное тестирование добавляет ограничения устройства и ОС: разные экраны, жесты, батарея, нестабильная сеть, разрешения, фоновые режимы, апдейты через стор.
КлючевоеЧто чаще ломается на мобиле:
  • ориентация и разные размеры экранов, safe‑area/notch
  • работа при слабой/падающей сети, офлайн‑режим
  • permissions (камера, гео, уведомления), фоновые ограничения
  • пуши, deep links, интеграции (Apple/Google login, платежи)
  • производительность и потребление батареи
На интервьюУпомяните матрицу устройств и то, что эмулятор не заменяет реальные девайсы для части проблем (камера, пуши, производительность).
Что такое нативное, гибридное, веб-приложение?
  • Нативное — для конкретной ОС (Swift/Java/Kotlin).
  • Гибридное — оболочка + web-контент.
  • Веб-приложение — работает в браузере.
ПримерUI отправляет запрос к API, API пишет в БД — QA проверяет связку на сценарии оплаты.
РазвернутоНативное приложение — написано под конкретную платформу (iOS/Android) и использует нативные UI/API. Веб‑приложение — в браузере. Гибрид — часть UI/логики внутри WebView + нативные возможности.
КлючевоеИмпликации для тестирования:
  • натив: важны permissions, фоновые режимы, жизненный цикл приложения, store‑сборки
  • веб: ближе к веб‑тестированию (DOM, кэш), но с мобильными особенностями (тач, клавиатура)
  • гибрид: часто проблемы на стыке WebView и нативных экранов, deep links и навигация
На интервьюСкажите, что понимаете, где смотреть логи: нативные (Logcat/Console) и веб‑часть (WebView инспекция).
Что такое эмулятор и симулятор, в чем разница?
Симулятор имитирует поведение ОС, эмулятор ближе к «железу». Эмулятор обычно медленнее, но точнее.
ПримерНа симуляторе iOS нет реального GPS/камеры, на эмуляторе Android можно ближе проверить железо.
РазвернутоЭмулятор обычно имитирует аппаратную часть (чаще Android), симулятор — поведение ОС без полной эмуляции железа (часто iOS). И то и другое ускоряет тесты, но не заменяет реальные девайсы.
КлючевоеЧто лучше тестировать на реальных устройствах:
  • камера/биометрия/сенсоры, реальные уведомления, производительность и нагрев
  • поведение на слабом железе, специфические баги GPU/рендера
  • интеграции с системой (share sheet, звонки, SMS), фоновые ограничения
На интервьюПодчеркните: «эмулятор — быстро для регресса, real device — для финальной проверки и багов окружения».
Как тестировать инсталляцию, обновление, удаление приложения?
Проверяем:
  • Установка без ошибок.
  • Обновление сохраняет данные.
  • Удаление очищает данные или оставляет их по требованиям.
ПримерПосле обновления приложение сохраняет логин и данные пользователя.
РазвернутоInstall/Update/Uninstall — частые источники багов: миграции данных, кэши, permissions, совместимость версий. Важно проверять «путь пользователя» при обновлениях.
Чек‑листЧто проверить:
  • чистая установка: первый запуск, онбординг, разрешения, дефолтные настройки
  • обновление: сохранение пользовательских данных, миграции, отсутствие крашей
  • откат (если релевантно): что будет при downgrade
  • удаление: чистится ли кэш/данные (в рамках возможностей ОС)
  • совместимость: минимальная версия ОС, размер, условия стора
На интервьюСкажите, что тестируете обновление через несколько версий (N→N+1, N→N+3), если это важно для продукта.
Как тестировать Push-уведомления?
Проверяем получение при разных состояниях (фон, закрыто, активное). Валидируем текст, переходы по тапу, уникальность и тайминг.
ПримерПуш приходит в фоне, по тапу открывает нужный экран и не дублируется.
РазвернутоPush‑уведомления зависят от токенов, разрешений, состояния приложения (foreground/background/terminated) и сетевых условий. Часто ломаются из‑за неверной логики доставки и клика.
Чек‑листЧто проверить:
  • получение push при разных состояниях приложения
  • текст/локализация/иконка, группировка, звук, бейдж
  • клик: открывается ли нужный экран (deeplink), корректны ли параметры
  • повторная доставка, задержки, дедупликация
  • отключение уведомлений и корректный фоллбек (in-app баннер)
На интервьюУпомяните проверку токена и логов (Firebase/APNs), а также тест на реальном устройстве.
Как проверить корректное отображение UI на разных устройствах?
Проверяем реальные устройства + эмуляторы, разные размеры экрана и плотности пикселей. Смотрим на отступы, читаемость, кликабельность.
ПримерНа маленьком экране кнопка не перекрывается клавиатурой.
РазвернутоUI на мобиле проверяют на разных размерах, плотности пикселей и особенностях (notch, скругления, системные жесты). Важны тач‑таргеты и читаемость.
Чек‑листЧто смотреть:
  • переполнение текста, локализация, динамический размер шрифта
  • тач‑таргеты (кнопки не слишком маленькие), отступы, кликабельность
  • safe area: элементы не под вырезом/индикатором жестов
  • состояния: loading/empty/error, скелетоны
  • модалки/клавиатура: перекрывает ли поля, скролл до активного поля
На интервьюСкажите, что используете чек‑лист устройств + критические экраны прогоняете на реальных девайсах.
Как тестировать офлайн-режим?
Отключаем сеть, проверяем кэш, очереди, корректные ошибки и восстановление при подключении.
ПримерБез интернета приложение показывает кешированные данные и корректное сообщение.
РазвернутоОфлайн‑режим — это сценарии без сети или при нестабильной сети. QA проверяет, что приложение не «умирает», корректно кэширует и синхронизируется после восстановления соединения.
Чек‑листЧто проверить:
  • поведение при отсутствии сети: понятное сообщение, доступность кэшированных данных
  • очередь действий: что происходит с операциями (повтор, отмена, сохранение черновика)
  • синхронизация после онлайн: нет дублей, корректное разрешение конфликтов
  • переключение Wi‑Fi↔LTE, режим «в самолете», потеря сети в момент запроса
На интервьюУпомяните throttling/airplane mode и проверку идемпотентности операций.
Что такое deep link и как его проверить?
Deep link — ссылка, открывающая конкретный экран в приложении. Проверяем корректные переходы и поведение при отсутствии приложения.
ПримерСсылка на /order/123 открывает конкретный заказ в приложении.
РазвернутоDeep link — ссылка, которая открывает конкретный экран приложения (и часто передает параметры). Важны сценарии «приложение установлено/не установлено», а также авторизация.
Чек‑листЧто проверить:
  • открытие нужного экрана с параметрами
  • поведение при закрытом приложении и при уже открытом
  • если нужен логин: корректный переход через авторизацию и возврат на целевой экран
  • валидность параметров и обработка невалидных (ошибка/фоллбек)
  • универсальные ссылки (iOS Universal Links) / App Links (Android)
На интервьюСкажите, что проверяете deep link как часть push/маркетинговых кампаний и что он критичен для конверсии.
Как тестировать разрешения (permissions)?
Проверяем запрос прав, поведение при отказе, повторный запрос, настройки системы.
ПримерПри запрете геолокации приложение не падает и показывает понятную подсказку.
РазвернутоPermissions — важная часть UX и безопасности. QA проверяет запрос разрешений «в нужный момент», корректные объяснения и поведение при отказе/ограничениях.
Чек‑листЧто проверить:
  • первый запрос: когда и зачем спрашиваем (не слишком рано)
  • отказ: корректный фоллбек и подсказка, как включить в настройках
  • разные уровни (например, гео: while‑in‑use vs always)
  • повторный запрос, состояние «don’t ask again»
  • поведение после смены разрешения в настройках без перезапуска
На интервьюОтдельный плюс: упомянуть тест на разных версиях ОС, где поведение permissions отличается.
Что такое ADB и как его использовать для тестирования Android-приложений?
ADB — Android Debug Bridge. С его помощью можно устанавливать приложения, смотреть логи, выполнять команды. Примеры: `adb install`, `adb logcat`.
ПримерQA ставит apk через adb install и снимает логи через adb logcat.
РазвернутоADB — инструмент для работы с Android‑устройством: установка APK, сбор логов, выполнение команд, эмуляция событий. Для manual QA это способ быстрее дебажить и воспроизводить проблемы.
КлючевоеЧто обычно делают через ADB:
  • снять логи (logcat) для бага/краша
  • установить/удалить приложение, очистить данные/кэш
  • проверить deeplink/intent, передать параметры
  • снять информацию об устройстве, версии, разрешениях
На интервьюМожно назвать 1–2 команды: `adb logcat`, `adb install`, `adb shell pm clear` — это производит впечатление практики.
Как проверить потребление батареи и производительность приложения?
Используем профайлеры Android Studio/Xcode, мониторим CPU, память, энергию. Проверяем длительные сценарии и фоновые процессы.
ПримерПри долгой работе в фоне расход батареи не превышает норму.
РазвернутоПроблемы с батареей и производительностью обычно связаны с фоновыми задачами, частыми сетевыми запросами, утечками памяти и тяжелым рендером. QA может поймать это базовыми проверками и инструментами.
Чек‑листЧто смотреть:
  • нагрев/просадки FPS при скролле и анимациях
  • частые запросы в фоне, бесконечные ретраи
  • быстрый разряд при простое (wakelocks/фоновые сервисы)
  • рост памяти со временем (утечки), падения на слабых устройствах
  • работа в энергосберегающем режиме
На интервьюУпомяните базовые профилировщики/статистику батареи и что вы собираете логи/метрики для dev.
Как тестировать авторизацию через соцсети (Google, VK, Apple)?
Проверяем успешный вход, отмену, ошибки, повторный вход, корректную привязку аккаунта.
ПримерОтмена авторизации через Google не приводит к созданию аккаунта.
РазвернутоSocial login — это OAuth‑поток с редиректами и токенами. QA проверяет разные исходы: успешный вход, отмена, отказ в разрешениях, отсутствие аккаунта, проблемы сети.
Чек‑листЧто проверить:
  • успех: создается/привязывается аккаунт, корректная роль/профиль
  • отмена пользователем, неверный пароль, блокировка аккаунта — корректные сообщения
  • повторный вход, выход и повторная авторизация
  • deeplink возврата в приложение, работа в разных браузерах/вебвью
  • безопасность: нельзя «войти под другим» без подтверждения
На интервьюСкажите, что предпочитаете тестовые аккаунты и песочницы, и что проверяете логи на стороне приложения.
Что проверять при смене ориентации экрана?
Сохранение состояния, корректное отображение, отсутствие перерисовок/сбоев.
ПримерПосле поворота экрана введенный текст не теряется.
РазвернутоСмена ориентации — это часто пересоздание/перерисовка экрана. Важно, чтобы состояние не терялось, и не возникали визуальные артефакты/краши.
Чек‑листЧто проверить:
  • сохранение введенных данных и позиции скролла
  • корректная верстка и safe area в обеих ориентациях
  • работа модалок, клавиатуры, медиаконтента
  • поворот во время загрузки/запроса (race conditions)
На интервьюУпомяните тест «поворачиваем 3–5 раз подряд» и во время критичных действий (оплата/форма).
Как протестировать падения (crashes) и получить лог?
Используем `logcat` (Android) или консоль Xcode (iOS). Фиксируем шаги, версию, устройство.
ПримерПри падении QA снимает logcat и прикладывает стек ошибки к багу.
РазвернутоПри крашах важны шаги, окружение и логи. QA должен уметь собрать артефакты, чтобы dev мог воспроизвести/починить: stacktrace, device info, события перед падением.
КлючевоеЧто собрать:
  • шаги + данные, частота, состояние сети, состояние приложения (фон/передний план)
  • логи: Android Logcat / iOS device logs, скрин/видео
  • инфо: модель, ОС, версия приложения, свободная память/диск (если важно)
  • если есть: crashlytics id/сессия, timestamp
На интервьюСкажите, что сначала проверяете воспроизводимость и минимальные шаги, потом собираете логи и заводите баг с артефактами.
Какие инструменты используются для мобильного тестирования (Appium, Firebase Test Lab, BrowserStack, Charles)?
Appium — автоматизация, Firebase Test Lab — облачные девайсы, BrowserStack — кросс-девайс, Charles — перехват трафика.
ПримерQA гоняет smoke на реальных устройствах в BrowserStack перед релизом.
РазвернутоИнструменты ускоряют: девайс‑фермы, автоматизация, прокси для перехвата трафика, системы логов/крашей. На интервью важно связать инструмент с задачей.
КлючевоеЗачем нужны:
  • Appium: кросс‑платформенная UI‑автоматизация
  • Firebase Test Lab / BrowserStack: тест на парке устройств/версий
  • Charles: просмотр/подмена HTTP(S) трафика, диагностика API
  • Crashlytics: отчеты по крашам и стектрейсы
На интервьюУместно: «я использую Charles, чтобы понять, какой запрос ушел и почему сервер вернул ошибку, и прикладываю логи к багу».

8. API и клиент-сервер

Тестирование интерфейсов и сетевых запросов.

Что такое клиент-серверная архитектура?
Клиент отправляет запросы, сервер обрабатывает и возвращает ответ. Архитектура разделяет UI и логику.
ПримерМобильное приложение (клиент) отправляет запросы к API, сервер возвращает JSON.
РазвернутоКлиент отправляет запросы (request) серверу, сервер обрабатывает логику/данные и возвращает ответ (response). Клиентом может быть веб, мобильное приложение, другой сервис.
КлючевоеЧто важно QA:
  • разделять проблемы UI и API: один и тот же API может обслуживать разные клиенты
  • понимать, где хранится состояние: клиент (storage) vs сервер (session)
  • уметь читать запрос/ответ: метод, URL, headers, body, статус‑коды
На интервьюСкажите: «проверяю API отдельно (Postman), чтобы быстро локализовать источник дефекта».
Что такое REST и SOAP API?
REST — архитектурный стиль, обычно JSON, простые HTTP-методы. SOAP — протокол на XML с строгими стандартами и контрактом.
ПримерREST с JSON в Postman проще, SOAP требует строгое XML‑сообщение по WSDL.
РазвернутоREST — стиль, обычно HTTP + JSON, ресурсы и методы (GET/POST/...). SOAP — протокол, чаще XML, строгая спецификация (WSDL), обычно более «тяжелый», но формализованный.
КлючевоеПрактические отличия для тестирования:
  • REST: легче смотреть/тестировать, часто Swagger/OpenAPI, коды HTTP активно используются
  • SOAP: XML‑структуры, строгие контракты, ошибки могут быть в SOAP Fault
  • аутентификация/авторизация может отличаться (WS‑Security и т.п.)
На интервьюУпомяните контрактность: «в SOAP чаще строгая схема, в REST — важно следить за версионированием и обратной совместимостью».
Чем отличаются методы GET, POST, PUT, PATCH, DELETE?
  • GET — получение данных
  • POST — создание
  • PUT — полное обновление
  • PATCH — частичное обновление
  • DELETE — удаление
ПримерPOST /users создает пользователя, PUT /users/1 обновляет, DELETE /users/1 удаляет.
РазвернутоМетоды описывают намерение операции. Для QA важно понимать идемпотентность и повторяемость запросов, особенно при ретраях и плохой сети.
КлючевоеКратко про методы:
  • GET: получить данные (без побочных эффектов)
  • POST: создать/запустить действие (часто не идемпотентен)
  • PUT: заменить ресурс целиком (обычно идемпотентен)
  • PATCH: частично обновить (часто идемпотентен по договоренности)
  • DELETE: удалить (идемпотентен: повтор обычно не меняет результат)
На интервьюХороший нюанс: повтор POST может создать дубли — поэтому важны идемпотентные ключи или защита от повторов.
Что такое headers, body, response?
Headers — метаданные запроса/ответа, body — данные, response — то, что вернул сервер (статус, заголовки, тело).
ПримерВ headers токен, в body — данные заказа, response содержит статус и id заказа.
РазвернутоHeaders — метаданные (auth, content-type, язык, кеш), body — полезная нагрузка (данные), response — статус + headers + body. Ошибки часто в несоответствии content-type и тела или в недостающих заголовках.
КлючевоеЧто обычно проверяют:
  • обязательные headers (Authorization, Content-Type, Accept)
  • корректность payload (типы, обязательные поля, null/пусто)
  • коды ответа и структура ошибок (единый формат)
  • пагинация/фильтры через query params, корректная кодировка
На интервьюСкажите, что прилагаете к багу raw request/response и сравниваете со Swagger/контрактом.
Что означают HTTP-коды 200, 400, 401, 403, 404, 500?
200 OK, 400 неверный запрос, 401 нет авторизации, 403 доступ запрещен, 404 не найдено, 500 ошибка сервера.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
РазвернутоДля API важно различать ошибки клиента (4xx) и сервера (5xx). Это помогает быстро понять, где чинить: данные/права или бэкенд.
КлючевоеЧастые коды в API:
  • 200/201/204 — успех (204 без тела)
  • 400 — валидация/ошибка запроса, 401 — нет/невалидный токен, 403 — нет прав
  • 404 — ресурс не найден, 409 — конфликт (если используется)
  • 500/502/503 — серверные ошибки/недоступность
На интервьюУпомяните, что кроме кода смотрите тело ошибки (errorCode/message) и correlation id для логов.
Что такое JSON, XML?
Форматы передачи данных. JSON проще и чаще используется, XML — более строгий и verbose.
ПримерAPI возвращает JSON с полями name/price; SOAP — XML с теми же данными.
РазвернутоJSON и XML — форматы передачи данных. QA важно уметь читать структуру, отличать типы (строка/число/булево/null), понимать, где обязательные поля и как валидировать схему.
КлючевоеЧто часто проверяют:
  • корректность типов (например, число не строкой), обязательность полей
  • порядок в JSON обычно не важен, в XML может иметь значение по схеме
  • кодировка/экранирование спецсимволов, большие числа/точность
  • обработка null/отсутствия поля (это разные вещи)
На интервьюСкажите, что используете JSON schema/OpenAPI для контрактной проверки и негативных тестов.
Что такое token, JWT, cookies?
Token — ключ доступа. JWT — токен с данными и подписью. Cookies — способ хранения данных в браузере.
ПримерПосле выхода из аккаунта cookies очищаются, повторный вход требует логин/пароль.
РазвернутоToken/JWT обычно используются для статeless‑аутентификации, cookies — для хранения сессии/токена на клиенте. QA проверяет срок жизни, обновление, инвалидирование и безопасность атрибутов cookies.
КлючевоеЧто важно проверять:
  • срок жизни токена, refresh‑механизм, корректные 401 при истечении
  • logout: токен/сессия реально инвалидируется
  • cookies: HttpOnly/Secure/SameSite, домен/путь, удаление
  • права доступа (RBAC): 403 при запрете
  • защита от повторного использования старых токенов (если требуется)
На интервьюСильный нюанс: «я различаю аутентификацию (кто ты) и авторизацию (что тебе можно)».
Что проверять при тестировании API (валидация схемы, статус код, тело ответа)?
Проверяем:
  • Статус код.
  • Схему и типы данных.
  • Бизнес-логику ответа.
  • Ошибки при негативных запросах.
ПримерВерификация: кнопка «Купить» работает по ТЗ. Валидация: пользователи реально могут оформить заказ без путаницы.
РазвернутоAPI тестируют по контракту и по бизнес‑правилам: статус‑коды, схема, ошибки, права, идемпотентность, пагинация. Главное — предсказуемость и согласованность.
Чек‑листБазовый чек‑лист API:
  • status code + body (успех/ошибка) соответствуют контракту
  • валидация входных данных (400), сообщения об ошибках, локализация (если есть)
  • авторизация: 401/403, доступ к чужим данным, роли
  • идемпотентность (повтор запроса), гонки и конкурентные изменения
  • пагинация/сортировка/фильтры, ограничения и значения по умолчанию
  • пограничные данные: null, пустые списки, большие числа, спецсимволы
На интервьюСкажите, что вы не только проверяете happy path, но и «контрактные» и «безопасностные» негативные сценарии.
Что такое Postman, Swagger, Charles, Fiddler?
Postman — клиент для API. Swagger — документация/контракт. Charles/Fiddler — перехват и анализ трафика.
ПримерQA сверяет запросы из Swagger в Postman и сравнивает ответы.
РазвернутоЭто инструменты для работы с API и трафиком: Postman — отправлять запросы и делать коллекции, Swagger — документация/контракт, Charles/Fiddler — прокси для перехвата и анализа HTTP(S).
КлючевоеКак QA использует:
  • Postman: коллекции, окружения, переменные, автотесты простых проверок (scripts)
  • Swagger/OpenAPI: сверка контрактов, генерация примеров, понимание обязательных полей
  • Charles/Fiddler: ловить запросы мобильного/веб клиента, подменять ответы, искать причины 4xx/5xx
На интервьюУпомяните environments (dev/stage/prod) и переменные токенов — это показывает практику.
Как проверить авторизацию через API?
Отправляем логин/пароль, получаем токен, используем его в запросах. Проверяем истечение токена и ошибки при неверных данных.
ПримерQA проверяет, что запрос без токена возвращает 401, а с токеном — 200.
РазвернутоПроверка авторизации через API — это проверка выдачи токена, его передачи, обновления и контроля прав. Важно проверять как техническую часть, так и бизнес‑ограничения.
Чек‑листЧто проверить:
  • получение токена при валидных данных и ошибки при невалидных
  • истечение токена и refresh (если есть), корректный 401
  • доступ к защищенным эндпоинтам без токена/с чужим токеном
  • роли и ограничения: 403, отсутствие доступа к чужим ресурсам
  • logout/инвалидация токена (если реализовано)
На интервьюСкажите, что проверяете и «нельзя ли получить данные другого пользователя», и что прикладываете request/response к багу.

9. SQL и базы данных

Минимум SQL для QA.

Что такое база данных и зачем тестировщику SQL?
БД — хранилище данных. SQL нужен для проверки данных после операций и анализа причин багов.
ПримерПосле создания заказа QA делает SELECT и сверяет суммы и статусы.
РазвернутоSQL помогает QA проверять фактическое состояние данных: что реально записалось, не появилось ли лишнего, корректны ли связи. Это ускоряет диагностику и повышает качество проверок интеграции.
КлючевоеЧто обычно делает QA через SQL:
  • проверяет, что сущность создалась/обновилась/удалилась (CRUD)
  • валидирует бизнес‑правила в данных (статусы, суммы, связи)
  • быстро готовит тестовые данные (если разрешено процессом)
  • находит причины багов (дубликаты, неверные статусы, нарушения ограничений)
На интервьюВажно: «в прод базу руками не правлю, работаю на тестовых окружениях и по правилам доступа».
Что делает команда SELECT, INSERT, UPDATE, DELETE?
SELECT — выборка, INSERT — добавление, UPDATE — обновление, DELETE — удаление.
ПримерINSERT создает пользователя, SELECT подтверждает запись, UPDATE меняет роль, DELETE удаляет.
РазвернутоЭто базовые CRUD‑операции: чтение, создание, изменение, удаление. QA важно понимать, что изменения могут быть транзакционными и что есть ограничения/триггеры.
КлючевоеПрактика для тестирования:
  • после действия в UI/API — проверить запись через SELECT по ключу
  • для UPDATE — убедиться, что изменились только нужные поля
  • для DELETE — проверить «мягкое» удаление (soft delete) vs физическое
  • учитывать транзакции: данные могут появиться не сразу (асинхронность)
На интервьюХороший нюанс: «проверяю не только наличие записи, но и ее поля/связи и корректность статуса».
Что такое JOIN и какие типы бывают (INNER, LEFT, RIGHT)?
JOIN соединяет таблицы по ключам. INNER — только совпадающие строки, LEFT — все из левой + совпадения, RIGHT — наоборот.
ПримерJOIN пользователей и заказов помогает проверить, что заказ привязан к правильному user_id.
РазвернутоJOIN объединяет строки из таблиц по условию. Для QA это способ проверить бизнес‑логику на связях (заказ↔позиции↔платеж↔доставка).
КлючевоеТипы JOIN (на пальцах):
  • INNER: только совпавшие строки
  • LEFT: все слева + совпадения справа (если нет — null)
  • RIGHT: аналогично, но «все справа» (реже используют)
  • частая проверка QA: «не потерялись ли записи из основной таблицы» → LEFT JOIN
На интервьюСкажите, что используете JOIN, чтобы сверить данные между сервисами/таблицами и убедиться в корректных связях.
Как проверить, что данные корректно сохранились после теста?
Выполнить SELECT по ключу и сверить значения с ожидаемыми.
ПримерПосле оплаты в таблице orders статус должен стать Paid и появиться transaction_id.
РазвернутоПроверка сохранения — это сравнение факта в БД с ожидаемым результатом после операции (UI/API). Важно проверять не только «есть запись», но и поля, статусы, временные метки.
Чек‑листЧто проверить:
  • в таблице появилась новая строка/обновилась существующая (по ключу)
  • значения полей корректные (суммы, округления, статусы)
  • связи с другими таблицами корректны (FK), нет «висячих» ссылок
  • аудитные поля (created_at/updated_at/created_by) корректны
  • нет дублей при повторе операции (идемпотентность)
На интервьюСкажите, что сравниваете данные с тем, что вернул API/показывает UI, чтобы ловить расхождения на стыке.
Как проверить целостность данных?
Проверяем уникальность, связи по foreign key, отсутствие «висячих» ссылок.
ПримерQA проверяет, что нет заказов без существующего пользователя.
РазвернутоЦелостность данных — это корректные связи и ограничения: первичные/внешние ключи, уникальность, not null, допустимые статусы. Нарушение целостности приводит к «странным» багам позже.
КлючевоеТиповые проверки:
  • FK: нет ссылок на несуществующие записи
  • unique: нет дублей там, где их быть не должно
  • not null: обязательные поля заполнены
  • business constraints: статусы допустимы, суммы не отрицательные и т.д.
На интервьюУпомяните каскадные операции и транзакции — это частые источники проблем при удалениях/обновлениях.
Что делает команда COUNT, DISTINCT, GROUP BY, ORDER BY?
COUNT — количество, DISTINCT — уникальные, GROUP BY — группировка, ORDER BY — сортировка.
ПримерGROUP BY помогает проверить, что по каждому пользователю правильное число заказов.
РазвернутоАгрегации и группировки помогают проверять отчеты, итоги и выборки: сколько записей, уникальные значения, суммы по группам. Это часто нужно QA для валидации бизнес‑метрик.
КлючевоеКак применяют:
  • COUNT: количество (в том числе после фильтра)
  • DISTINCT: уникальные значения (например, уникальные пользователи)
  • GROUP BY: агрегация по категориям/статусам
  • ORDER BY: сортировка (важно проверять стабильность и вторичные поля)
На интервьюСкажите, что проверяете «пагинация+сортировка» и соответствие того, что видит UI, тому, что реально в БД.
Как тестировать миграции данных?
Сравниваем данные до/после миграции, проверяем потерю/изменение данных, корректность связей.
ПримерПосле миграции QA сверяет количество записей и контрольные суммы.
РазвернутоМиграции меняют схему и данные. QA проверяет, что после миграции данные не потерялись, поля корректно перенеслись, и приложение работает с новой схемой.
Чек‑листЧто проверить:
  • запуск миграции на копии данных/стенде без ошибок
  • контрольные выборки: до/после (counts, sums, выборочные записи)
  • обратная совместимость (если нужно): старая версия клиента не ломается
  • индексы/ограничения на месте, производительность запросов не ухудшилась
На интервьюХорошо звучит: «делаю выборочные сверки и агрегаты, плюс прогон критических сценариев приложения после миграции».
Что такое foreign key и primary key?
Primary key — уникальный идентификатор строки. Foreign key — ссылка на primary key другой таблицы.
ПримерУдаление пользователя не должно оставлять «висячие» заказы без user_id.
РазвернутоPrimary Key уникально идентифицирует запись. Foreign Key — ссылка на PK другой таблицы, обеспечивающая связность. Для QA это основа понимания «что с чем связано».
КлючевоеПрактические последствия:
  • PK обеспечивает уникальность и быстрый поиск записи
  • FK предотвращает «сиротские» записи и задает правила удаления/обновления
  • по FK удобно проверять: у заказа есть позиции, у платежа есть заказ и т.д.
На интервьюСкажите, что используете ключи, чтобы быстро найти данные теста и сверить связи между сущностями.
Как проверить, что запись удаляется каскадно?
Удаляем запись в родительской таблице и проверяем, что связанные записи удалены.
ПримерQA удаляет пользователя и проверяет, что связанные записи в таблице sessions тоже удалены.
РазвернутоКаскадное удаление означает, что при удалении родителя удаляются/обновляются дочерние записи. Ошибка здесь ведет к потерям данных или «мусору» в БД.
Чек‑листЧто проверить:
  • удаление родителя удаляет/обнуляет ссылки у дочерних (по правилам)
  • нет потери данных там, где должно быть soft delete
  • аудит/логирование операций (если есть)
  • поведение при частичных связях и при конкурентных операциях
На интервьюУместно: «проверяю бизнес‑ожидание: каскад нужен не всегда, иногда важнее запрет удаления».
Как соединить несколько таблиц для проверки бизнес-логики?
Используем JOIN по ключам и фильтры по бизнес-правилам. Проверяем корректные суммы, статусы, связи.
ПримерJOIN заказов и платежей по `order_id`: сверяю статусы и суммы, чтобы найти расхождения.
РазвернутоДля проверки бизнес‑логики часто нужно собрать картину из нескольких таблиц: сущность + статусы + платежи + события. JOIN + фильтры позволяют убедиться, что цепочка данных корректна.
КлючевоеПодход:
  • идентифицировать ключ сущности (order_id/user_id)
  • собрать «основную» таблицу + связанные (позиции, платежи, доставки)
  • проверить консистентность статусов и сумм между таблицами
  • при необходимости — проверить историю/аудит/таблицу событий
На интервьюСкажите, что это помогает найти, где «разошлись» данные: UI показывает одно, API другое, БД третье.

10. Инструменты и окружение

Что используем в работе и как.

Какие системы отслеживания дефектов знаете (Jira, YouTrack, Redmine)?
Jira, YouTrack, Redmine, Bugzilla — инструменты для хранения задач и дефектов.
ПримерВ Jira завожу Bug: component=Payments, severity=Major, priority=High, шаги, Actual/Expected, вложения (HAR/видео), связь со Story/релизом.
РазвернутоБаг‑трекинг — это не список багов, а система управления работой: статусы, приоритеты, workflow, связи (story↔bug), SLA и отчеты.
КлючевоеЧто важно уметь:
  • оформлять баги и задачи с понятной структурой
  • использовать связи и метки (релиз, компонент, версия, окружение)
  • понимать workflow команды (triage, ready for qa, done)
  • строить фильтры и простые отчеты (по приоритетам, утечкам в прод)
На интервьюУпомяните, что вы учитываете аудиторию: для dev — техдетали, для PO — влияние и приоритет.
Что такое Test Management System (TMS) и примеры (Qase, TestRail)?
TMS — система управления тестами: тест-кейсы, прогоны, отчеты.
ПримерUnit — тест скидки в модуле, integration — связка корзины и оплаты, system — полный заказ, acceptance — проверка бизнес‑критериев.
РазвернутоTMS помогает хранить и поддерживать тестовую базу, запускать прогоны и иметь прозрачность покрытия/качества. Для manual QA это способ масштабировать тестирование.
КлючевоеКак выжать пользу из TMS:
  • разделить тесты на регресс/смоук/фича‑наборы
  • вести актуальность (архивировать устаревшие, устранять дубли)
  • использовать параметры/шаблоны, чтобы не плодить копии
  • связывать тесты с требованиями и дефектами
На интервьюСкажите, что TMS — это «единый источник правды» по тестам, а не «кладбище кейсов».
Что можно проверить через DevTools → Network / Console / Storage?
Network — запросы и ответы, Console — ошибки JS, Storage — cookies/local/session storage.
ПримерQA проверяет, что токен хранится в cookies и очищается при logout.
РазвернутоDevTools помогает быстро понять техническую сторону проблемы: запросы, ошибки JS, состояние хранилищ и рендер. Это делает QA более эффективным и повышает качество баг‑репортов.
КлючевоеПримеры проверок:
  • Network: статус‑коды, payload, тайминги, редиректы, HAR
  • Console: ошибки, предупреждения, stacktrace
  • Storage: cookies/localStorage/sessionStorage, токены, кеш
  • Elements: верстка, CSS, размеры, скрытые элементы
На интервьюХорошо: «я прикладываю request/response или HAR к дефекту, если проблема на стыке UI/API».
Что делает Charles Proxy и как им пользоваться?
Перехватывает и анализирует трафик. Можно смотреть запросы, подменять ответы, тестировать API.
ПримерQA сверяет запросы из Swagger в Postman и сравнивает ответы.
РазвернутоCharles Proxy позволяет перехватывать и анализировать HTTP(S) трафик (включая мобильный), а также подменять ответы. Это ускоряет диагностику и помогает тестировать негативные сценарии.
КлючевоеТиповые кейсы:
  • увидеть реальные запросы приложения, сравнить с контрактом
  • поймать ошибки 4xx/5xx и понять причину (headers/body)
  • эмулировать плохую сеть/таймауты и проверить устойчивость
  • map local/remote: подменить ответ сервера для проверки UI
На интервьюСкажите, что умеете настраивать SSL proxying для тестовых целей и используете Charles аккуратно и по политике безопасности.
Как тестировать API через Postman?
Создаем запросы, настраиваем параметры, отправляем, проверяем ответы. Можно писать коллекции и автотесты.
ПримерQA сверяет запросы из Swagger в Postman и сравнивает ответы.
РазвернутоPostman помогает тестировать API независимо от UI: отправлять запросы, сохранять коллекции, использовать окружения и переменные, делать простые автоматические проверки в scripts.
Чек‑листЧто показать на интервью:
  • коллекции по фичам, environments (dev/stage), переменные токенов
  • негативные тесты (400/401/403) и проверка схемы ответа
  • генерация данных (pre-request scripts), chained requests
  • экспорт curl и прикладывание request/response к багам
На интервьюУместно сказать: «сначала проверяю API в Postman, потом UI — так быстрее локализовать дефекты».
Как проверять email/SMS-уведомления?
Проверяем отправку, шаблон, корректность данных, тайминг. Можно использовать тестовые почтовые сервисы.
ПримерПосле регистрации приходит письмо подтверждения с корректным именем и ссылкой.
РазвернутоУведомления проверяют по цепочке: событие → генерация сообщения → доставка → отображение и ссылки. Важно проверять и контент, и логику (кому/когда/сколько раз).
Чек‑листЧто проверить:
  • триггер: при каком событии отправляется, нет ли дублей
  • контент: тема/текст/локаль, персонализация, корректные данные
  • ссылки: работают, ведут туда, куда нужно, корректно обрабатывают токены
  • доставка: задержки, попадание в спам, ограничения провайдера (если известно)
  • отмена/отписка (если есть), согласия на рассылку
На интервьюСкажите, что используете тестовые почтовые ящики/номера и, если возможно, логи провайдера/сервиса отправки.
Что делать, если баг воспроизводится только на проде?
Сбор логов, видео, точных условий, минимизация влияния. Создаем воспроизводимый сценарий в тестовом окружении.
ПримерСобираю время/пользователя/request id/логи, сравниваю конфиги stage vs prod, предлагаю workaround (feature flag/rollback) и эскалирую как инцидент при влиянии.
РазвернутоЕсли баг проявляется только на проде, важно минимизировать риск: собрать факты, воспроизвести безопасно, найти отличия окружений и эскалировать. Часто причина — данные, конфиги, кэш, нагрузка.
КлючевоеКак действовать безопасно:
  • собрать максимум контекста (время, пользователь, запросы, логи, версии)
  • сравнить конфиги prod vs stage, фича‑флаги, данные и права
  • попробовать воспроизвести на stage с копией данных (если возможно)
  • эскалировать как инцидент, если влияет на деньги/пользователей
На интервьюВажный акцент: «не ломаю прод тестами», работаю через наблюдаемость и согласованные шаги.
Как логировать действия пользователя для анализа багов?
Используем аналитические события и системные логи, фиксируем шаги, идентификаторы и таймстемпы.
ПримерЛогирую ключевые события (например, `checkout_submit`) с correlation/request id, версией клиента, фичафлагами и id сущности (order_id) — без PII/секретов.
РазвернутоЛогирование пользовательских действий и событий помогает воспроизводить «плавающие» дефекты и разбирать инциденты. QA часто инициирует, какие события нужно логировать.
КлючевоеЧто полезно логировать:
  • ключевые бизнес‑события (создан заказ, оплата успешна/неуспешна)
  • ошибки и причины отказов (validation code, payment decline code)
  • корреляционные идентификаторы (request id, session id)
  • контекст: версия клиента, платформа, сеть, feature flags
На интервьюСкажите, что логирование должно быть без персональных данных (или с маскированием) и соответствовать политике безопасности.
Что такое Environment variables и зачем они нужны?
Переменные окружения хранят конфигурацию (URL, токены), чтобы не менять код.
ПримерQA меняет переменную BASE_URL, чтобы прогнать тесты на stage.
РазвернутоEnvironment variables — способ конфигурировать приложение без изменения кода: адреса сервисов, ключи, флаги, режимы логирования. Для QA это важно для переключения окружений и воспроизводимости.
КлючевоеЗачем QA это знать:
  • понимать, почему поведение отличается на dev/stage/prod
  • быстро переключать endpoints/фичи на стенде
  • корректно настраивать Postman/автотесты через переменные
  • не «хардкодить» секреты в документации и репозитории
На интервьюУместно: «секреты (токены/пароли) не хранят в коде, используют секрет‑хранилища и переменные окружения».
Как тестировать на разных окружениях (dev, stage, prod)?
Проверяем соответствие конфигураций, доступы, версии и данные. На проде тестируем аккуратно и минимально.
ПримерQA проверяет, что на stage стоят те же фичи, что и на prod, но с тестовыми данными.
РазвернутоРазные окружения нужны, чтобы безопасно разрабатывать и тестировать. QA должен понимать, чем они отличаются (данные, конфиги, интеграции) и как это влияет на тесты.
КлючевоеЧто обычно отличается:
  • данные (тестовые vs реальные), доступы и роли
  • интеграции: песочницы платежей, тестовые SMS/email
  • конфиги, фича‑флаги, версии сервисов
  • нагрузка и кэш, расписания фоновых задач
На интервьюСкажите, что фиксируете, на каком окружении воспроизведен баг, и не сравниваете «яблоки с апельсинами» без учета конфигов.

11. Логика и аналитика

Разбор проблем и принятие решений.

Что делать, если не хватает требований?
Уточнять у аналитика/PO, фиксировать допущения и проверять рисковые зоны через exploratory testing.
ПримерQA фиксирует допущения и согласует их с PO, чтобы тесты были прозрачными.
РазвернутоЕсли требований не хватает, QA не должен «додумывать молча». Нужно выявить неопределенности, задать вопросы и зафиксировать договоренности (AC, комментарии, протокол).
КлючевоеКакие вопросы задавать:
  • кто пользователь/роль и какая цель сценария
  • что считается успехом/ошибкой, какие сообщения показываем
  • границы: лимиты, форматы, исключения, права доступа
  • интеграции и зависимости, требования к логированию/аудиту
На интервьюСкажите: «я фиксирую предположения и согласовываю их, чтобы потом не спорить, что ожидалось».
Как определить, баг это или фича?
Сравниваем с требованиями и ожиданиями пользователя. Если поведение не описано — уточняем у PO.
ПримерСверяю с AC/макетами/прошлой версией: если поведение противоречит — баг; если не определено — уточняю у PO и фиксирую решение в AC.
РазвернутоЭто вопрос о «ожидаемом поведении». Баг — отклонение от требований/AC/здравого смысла (если согласовано), фича — поведение, которое принято как требование. Решается через источник истины и согласование.
КлючевоеКак решать спор:
  • проверить требования/AC/макеты/аналитику прошлых версий
  • оценить влияние на пользователя/бизнес (risk)
  • если не определено — поднять вопрос к PO/аналитику и зафиксировать решение
  • после решения — обновить документацию/AC и тесты
На интервьюСкажите: «я не спорю мнениями — я поднимаю источник ожиданий и фиксирую договоренность».
Как убедиться, что баг стабилен?
Повторяем несколько раз, фиксируем окружение и шаги. Проверяем на разных данных/устройствах.
ПримерПовторяю N раз, фиксирую частоту и условия (сеть/данные/браузер), минимальные шаги и прикладываю артефакты (HAR/логи).
РазвернутоСтабильность воспроизведения влияет на приоритет и на то, как заводить баг. Нужно понять частоту и условия (данные, тайминги, окружение) и минимальные шаги.
КлючевоеКак повысить воспроизводимость:
  • повторить N раз и оценить частоту (100%/иногда)
  • варьировать данные и окружение (браузер/устройство/сеть)
  • собрать логи/Network/HAR и точные таймстемпы
  • выделить минимальные шаги (reduce) и предположить причину
На интервьюСкажите: «если баг плавающий, я фиксирую условия и артефакты, чтобы dev мог найти корневую причину».
Что делать, если разработчик не согласен с багом?
Привести требования, логи, доказательства. Обсудить и согласовать критерии.
ПримерПоказываю воспроизведение + ссылку на AC/макет, прикладываю request/response. Если ожидание спорное — эскалирую к PO и фиксирую договоренность.
РазвернутоСпоры решаются фактами: требования, логи, воспроизведение, влияние. Цель — не «победить», а прийти к общему пониманию и защитить пользователя/бизнес.
КлючевоеТактика:
  • привести источник ожидания (AC/спека/макет) и фактические данные
  • показать воспроизведение и артефакты (видео, request/response)
  • если ожидание не определено — эскалировать к PO/аналитику
  • предложить компромисс: изменить текст/поведение/логирование, завести техдолг
На интервьюХорошо звучит: «мы обсуждаем поведение, а не людей; фиксируем решение и обновляем AC/тесты».
Как тестировать бизнес-логику без документации?
Использовать анализ системы, исторические данные, интервью с PO/Dev, exploratory testing.
ПримерДелаю exploratory: выписываю правила из UI/API, проверяю на данных и фиксирую чек‑лист + найденные риски.
РазвернутоБез документации QA опирается на исследование продукта, аналоги, логику домена и уточнение у стейкхолдеров. Важно быстро построить модель системы и рисков.
КлючевоеПодход:
  • exploratory сессии + заметки и чек‑лист
  • выделить основные сущности и правила (статусы, расчеты, права)
  • сравнить UI↔API↔БД (если доступно)
  • фиксировать найденные правила как «живую документацию» (wiki/AC)
На интервьюСкажите: «я быстро создаю минимальный набор документации сам: чек‑лист, карту потоков, риски».
Как проверить работу фильтрации, сортировки, пагинации?
Проверяем корректные выборки, порядок, стабильность при переходах страниц. Сравниваем результат с базой или заранее подготовленными данными.
ПримерQA проверяет, что сортировка по цене дает правильный порядок и не ломает пагинацию.
РазвернутоФильтры/сортировка/пагинация ломаются из‑за несогласованности UI и API: разные параметры, нестабильная сортировка, неверные страницы при изменениях данных.
Чек‑листЧто проверить:
  • корректность фильтра по каждому условию + комбинации
  • сортировка: направление, вторичные ключи, стабильность
  • пагинация: размеры страниц, переходы, крайние страницы, пустые результаты
  • сохранение состояния при обновлении/назад/перезагрузке
  • соответствие запросам API (params) и данным в ответе
На интервьюУпомяните сравнение с БД/SQL или прямой проверкой API, чтобы понять, где ошибка — UI или backend.
Как тестировать корректность расчета цен?
Проверяем формулы, округления, скидки, налоги, крайние значения.
ПримерЦена 100, скидка 10%, налог 20% → итог 108 — QA сверяет формулу.
РазвернутоРасчеты цен — зона высокого риска: округления, валюты, скидки, налоги, комбинации правил. Нужна проверка формулы и данных, а не только UI.
Чек‑листЧто проверить:
  • happy path + комбинации скидок/промокодов/доставки
  • округления и точность (копейки), формат валюты
  • границы: минимальная цена, 0, большие суммы, отрицательные значения
  • повтор пересчета при изменении корзины, отмена промокода
  • соответствие расчета на UI и в API/БД
На интервьюСкажите, что делаете таблицу тестов с входами и ожидаемыми итогами и проверяете «источник истины» (API/БД).
Как тестировать приоритеты задач, если мало времени?
Сначала критичные сценарии и новые изменения. Используем risk-based подход.
ПримерQA сначала тестирует оплату и логин как критичные сценарии.
РазвернутоПриоритеты в тестировании — это risk-based: что критично для бизнеса, что чаще используется, где высокая вероятность дефекта и где последствия самые дорогие.
КлючевоеБыстрый алгоритм:
  • определить критический путь и покрыть его первым
  • добавить границы/негатив вокруг изменений
  • проверить интеграции и деньги/данные/безопасность
  • зафиксировать, что не протестировано, и риски
На интервьюСкажите, что приоритизацию согласуете с PO/PM, а не принимаете в одиночку.
Как искать скрытые дефекты?
Используем негативные сценарии, стресс, boundary value, нестандартные данные.
ПримерТестирую границы и прерывания: двойной клик/повтор отправки/потеря сети. Например, двойной submit может создать дубли заказа/платежа.
РазвернутоСкрытые дефекты часто проявляются в редких сценариях, на границах, при плохой сети, при смене ролей, в асинхронности и интеграциях. Их ищут сочетанием техник и опыта.
КлючевоеЧто помогает находить:
  • boundary + negative + error guessing
  • смена контекста: другая роль, другой браузер/устройство/локаль
  • прерывания: обновить страницу, уйти назад, закрыть вкладку, потерять сеть
  • параллельные действия: два окна, два пользователя, гонки
  • анализ логов и network: неочевидные ошибки
На интервьюУпомяните exploratory сессии с таймбоксом и фиксацией заметок — это выглядит профессионально.
Как проверять граничные кейсы и негативные сценарии?
Определяем минимальные/максимальные значения, пустые поля, неправильные форматы.
ПримерДля поля «возраст» допустимо 18–65: проверяем 17, 18, 65, 66.
РазвернутоРасчеты цен — зона высокого риска: округления, валюты, скидки, налоги, комбинации правил. Нужна проверка формулы и данных, а не только UI.
Чек‑листЧто проверить:
  • happy path + комбинации скидок/промокодов/доставки
  • округления и точность (копейки), формат валюты
  • границы: минимальная цена, 0, большие суммы, отрицательные значения
  • повтор пересчета при изменении корзины, отмена промокода
  • соответствие расчета на UI и в API/БД
На интервьюСкажите, что делаете таблицу тестов с входами и ожидаемыми итогами и проверяете «источник истины» (API/БД).

12. Agile и взаимодействие

Командные процессы и коммуникация.

Роль QA в Scrum-команде.
QA участвует во всем цикле: уточняет требования, пишет тесты, проверяет качество, помогает улучшать процесс.
ПримерВ Scrum QA работает спринтами с планированием и ретро; в Waterfall тестирует после разработки.
РазвернутоВ Scrum качество — ответственность всей команды. QA помогает превратить требования в проверяемые критерии, обеспечивает обратную связь в спринте и снижает риск утечек в прод.
КлючевоеЧто делает QA в Scrum:
  • участвует в refinement: уточняет AC, риски, тестируемость
  • планирует тесты и данные заранее (shift-left)
  • тестирует инкремент в течение спринта, а не в конце
  • помогает с автоматизацией/контрактами/чек‑листами регресса
  • участвует в демо и ретроспективе, улучшая процесс
На интервьюХороший акцент: «я помогаю команде выпускать качественный инкремент каждый спринт, а не быть “gatekeeper” в конце».
Что такое Bug Triage?
Это процесс приоритизации багов: оценка критичности, влияния, сроков исправления.
ПримерКоманда решает, что баг оплаты критичен и фиксится сразу, а минорный UI — позже.
РазвернутоBug Triage — разбор дефектов: приоритизация, назначение, решение «фиксить/отложить/дубликат/не баг». Цель — управлять потоком дефектов и рисками.
КлючевоеЧто обсуждают на triage:
  • severity/priority и влияние на пользователей/бизнес
  • воспроизводимость и необходимость доп.информации
  • план фикса (в спринт/в хотфикс/в техдолг)
  • дубликаты и связность с релизами/фичами
На интервьюСкажите, что приходите на triage с фактами: шаги, частота, окружение, артефакты, impact.
Как QA участвует в planning, grooming, retrospective?
Planning — оценка тестовых задач, grooming — уточнение требований, retrospective — улучшение процесса.
ПримерНа grooming QA уточняет критерии, а на ретро предлагает улучшить регрессию.
РазвернутоQA участвует в церемониях, чтобы не было сюрпризов: уточняет требования заранее, оценивает тестирование, поднимает риски и улучшает процесс по итогам.
КлючевоеВклад QA:
  • planning: оценка тест‑работ, зависимостей, рисков, критериев приемки
  • grooming/refinement: уточнение AC, edge‑кейсов, данных, нефункциональных требований
  • retro: анализ причин дефектов/утечек, предложения улучшений (логи, флаги, тестовые данные)
На интервьюХорошо: привести пример улучшения процесса (например, договорились о Definition of Ready для задач).
Как вы оцениваете тестовые трудозатраты?
Оцениваем по объему функционала, рискам, наличию автотестов, сложности окружения.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
РазвернутоОценка тест‑трудозатрат зависит от объема изменений, рисков, зависимостей, доступности окружения и тестовых данных. Важно объяснить структуру оценки, а не дать «магическое число».
КлючевоеКак раскладывать оценку:
  • анализ требований + подготовка тестов/чек‑листов
  • подготовка данных/окружения
  • выполнение (смоук/функционал/негатив/границы)
  • ретест и регресс вокруг изменений
  • время на баг‑репорты и коммуникацию
На интервьюСкажите, что даете диапазон и фиксируете допущения (assumptions), а затем уточняете после появления деталей.
Что делать, если требования не готовы к тестированию?
Обсудить с PO/BA, зафиксировать недостающие данные, не начинать тестирование без DoR.
ПримерQA сообщает, что без AC тестирование начнется с риском пропустить сценарии.
РазвернутоЕсли требования не готовы, QA эскалирует риск и предлагает варианты: уточнить AC, сдвинуть тестирование, ограничить объем, протестировать по «минимальному контракту».
КлючевоеКак действовать:
  • собрать список вопросов/неопределенностей и договориться о решениях
  • зафиксировать временные предположения (если нужно) и согласовать их
  • предложить минимальный тестируемый объем + риски
  • не начинать «полный регресс», пока не понятен expected
На интервьюПрофессионально звучит: «я не блокирую, а помогаю сделать требования тестируемыми».
Как обеспечить качество при коротких итерациях?
Автоматизация smoke/regression, четкие критерии DoD, быстрый feedback loop.
ПримерКоманда автоматизирует smoke, чтобы успевать проверять каждый спринт.
РазвернутоПри коротких итерациях качество держат за счет раннего уточнения, автоматизации ключевых проверок, стабильных тестовых данных, feature flags и строгих критериев готовности.
КлючевоеПрактики:
  • shift-left: QA в refinement и ранних проверках
  • smoke/regress наборы, приоритизация по рискам
  • автоматизация стабильного регресса (где ROI высокий)
  • feature flags, быстрый rollback, мониторинг после релиза
На интервьюСкажите: «мы строим процесс так, чтобы тестирование было непрерывным, а не отдельной фазой».
Что такое Test Pyramid?
Пирамида тестов: больше unit, меньше интеграционных, еще меньше UI. Баланс скорости и надежности.
ПримерБольшинство unit‑тестов, меньше API‑тестов и минимум UI — это ускоряет регрессию.
РазвернутоTest Pyramid — идея, что большинство тестов должны быть быстрыми и дешевыми (unit), меньше — интеграционных, и еще меньше — E2E. Это снижает стоимость поддержки и ускоряет обратную связь.
КлючевоеПочему это важно:
  • unit быстро ловят ошибки логики, дешевы в поддержке
  • интеграционные ловят проблемы стыков и контрактов
  • E2E дают уверенность в пользовательском пути, но самые хрупкие
На интервьюДаже для manual QA полезно понимать пирамиду: вы предлагаете, что автоматизировать и на каком уровне.
Как QA помогает улучшить Dev-процесс?
Находит узкие места, предлагает автоматизацию, улучшает требования и критерии качества.
ПримерQA предлагает добавить статические проверки и чек‑лист перед merge.
РазвернутоQA улучшает процесс через обратную связь: где дефекты возникают, почему уходят в прод, какие шаги можно сделать раньше/автоматизировать/упростить.
КлючевоеПримеры улучшений:
  • введение чек‑листов смоука и Definition of Done
  • договоренности о логировании/корреляции запросов
  • feature flags и тестовые стенды с реалистичными данными
  • контрактные проверки API (schema), линтеры, статический анализ
  • разбор дефектов (RCA) и профилактика
На интервьюПриведите 1 кейс из опыта: что было плохо → что внедрили → какой эффект.
Как проводить QA sync с разработчиками?
Регулярные короткие встречи: статус тестирования, блокеры, баги, планы.
ПримерQA коротко сообщает о статусе тестов и критических дефектах.
РазвернутоQA sync — короткая регулярная синхронизация с разработчиками по рискам, статусу тестирования, готовности фиксов и приоритетам дефектов. Цель — быстрее решать блокеры.
КлючевоеЧто обсуждать:
  • что сейчас тестируется и какие блокеры/риски
  • какие дефекты критичны и что с ними
  • готовность фиксов к ретесту, где нужны логи/инфо
  • что пойдет в релиз и что откладывается
На интервьюСкажите, что sync экономит время: меньше пинга в чатах, быстрее проясняются статусы и ожидания.
Что делать при конфликте между QA и разработчиком?
Фокус на требованиях и фактах, обсуждение влияния, привлечение PO при необходимости.
ПримерQA и Dev сверяют требования и логи, а PO принимает финальное решение.
РазвернутоКонфликт лучше переводить в плоскость фактов и рисков: требования, воспроизведение, влияние, варианты решения. Цель — договориться о правильном поведении и зафиксировать его.
КлючевоеКак действовать:
  • показать воспроизведение и доказательства (логи/Network/видео)
  • привести AC/макет или запросить решение у PO, если не определено
  • обсудить варианты: фикс сейчас, хотфикс, workaround, фича‑флаг
  • зафиксировать договоренность и обновить документацию
На интервьюХорошая формулировка: «я за конструктив и общую цель — качество для пользователя, не “кто прав”».

13. Кейсы на интервью

Практические задания и «тестовый мозг».

Как протестировать банкомат / кофемашину / калькулятор?
Сначала определяем основные сценарии (позитивные), затем негативные, затем крайние условия. Пример для банкомата: карта/пин/баланс/снятие/ошибки; для кофемашины: вода/зерна/режимы.
ПримерДля банкомата: корректный пин, недостаточно средств, лимит снятия, удержание карты.
РазвернутоВ таких задачах оценивают ваш подход: как вы уточняете требования, выделяете сущности, сценарии и риски. Лучше дать структуру, чем 100 случайных тестов.
КлючевоеШаблон ответа:
  • уточнения: цель, пользователи, ограничения, окружение
  • основные сценарии (happy path) + негатив + границы
  • состояния и переходы (например, банкомат: вставил карту→ввел PIN→операция)
  • нефункциональные: безопасность, отказоустойчивость, удобство
  • приоритизация: критические риски сначала
На интервьюСкажите 2–3 сильных риска (деньги/безопасность/ошибки оборудования) — это дает «взрослый» уровень.
Как протестировать поиск?
Проверяем точные совпадения, частичные, регистр, язык, спецсимволы, пустой запрос, скорость.
ПримерИщем «iphone», «IPhone», опечатки, пустой запрос, проверяем релевантность.
РазвернутоПоиск — это ввод запроса → выдача результатов. Важно покрыть релевантность, фильтры/сортировку, устойчивость к ошибкам и производительность.
Чек‑листЧто проверить:
  • пустой запрос, пробелы, спецсимволы, регистр, раскладка
  • частичные совпадения, опечатки (если поддерживается)
  • релевантность: результаты соответствуют запросу, подсветка
  • пагинация/фильтры/сортировка совместно с поиском
  • нет результатов: корректное empty‑state
  • производительность: время ответа, дебаунс, автокомплит
На интервьюУпомяните, что проверяете запросы в API/Network и используете набор тестовых данных с известными результатами.
Как протестировать корзину интернет-магазина?
Добавление/удаление, количество, цена, скидки, доставка, сохранение корзины, границы по количеству.
ПримерДобавить/удалить товар, изменить количество, проверить итоговую цену.
РазвернутоКорзина — это состояние + расчеты + интеграции (склад/доставка/скидки). На интервью важно покрыть изменения количества, пересчет цен и переход к оформлению/оплате.
Чек‑листЧто проверить:
  • добавление/удаление, изменение количества, ограничения (макс/мин)
  • пересчет суммы: скидки, промокод, доставка, налоги
  • сохранение корзины (гость→логин), несколько устройств
  • нетоварные случаи: товар закончился, цена изменилась, корзина устарела
  • переход к чекауту: данные передаются корректно, идемпотентность
На интервьюСильный нюанс: «проверяю конкурентные изменения — товар стал недоступен между добавлением и оплатой».
Как протестировать форму обратной связи?
Проверяем поля, валидации, отправку, подтверждение, получение письма/заявки.
ПримерПроверяем обязательные поля, валидацию email и отправку письма.
РазвернутоФорма обратной связи — это ввод данных + отправка + уведомление/создание тикета. Важны валидации, защита от спама и подтверждение доставки.
Чек‑листЧто проверить:
  • валидации: обязательные поля, длина, формат email/телефона
  • сообщения об ошибках, сохранение введенного при ошибке
  • защита: rate limiting/капча (если есть), XSS в полях
  • доставка: создается запись/тикет, приходит уведомление на почту
  • приватность: нет утечки персональных данных в ответах/логах
На интервьюУпомяните проверку API/БД (создалась заявка) и проверку писем/вебхуков, если предусмотрено.
Как протестировать чат или мессенджер?
Отправка/получение, статусы, офлайн, вложения, синхронизация, задержки.
ПримерПроверяем доставку, статусы прочтения, офлайн‑режим и вложения.
РазвернутоЧат — это сообщения, состояние «прочитано/доставлено», синхронизация между устройствами и устойчивость к сети. Часто есть WebSocket/long polling.
Чек‑листЧто проверить:
  • отправка/получение, порядок сообщений, повторная отправка
  • статусы (sent/delivered/read), индикатор набора
  • вложения: типы, размер, загрузка/скачивание
  • офлайн: очередь сообщений, синхронизация после онлайна
  • безопасность: доступ к чужим чатам, инъекции в сообщениях
На интервьюСильный акцент: «проверяю гонки и дубли при плохой сети и повторной отправке».
Как протестировать регистрацию и логин?
Позитив/негатив, валидации, безопасность, подтверждение, восстановление пароля.
ПримерПроверяю блокировки/лимиты: 5 неверных попыток → капча/блок. Восстановление пароля: одноразовая ссылка с TTL и возврат на нужный экран.
РазвернутоРегистрация/логин — критический поток: ошибки тут = потеря пользователей. Проверяют валидации, сессии, безопасность, восстановление и интеграции.
Чек‑листЧто покрыть:
  • регистрация: уникальность email/телефона, подтверждение (если есть)
  • логин: неверные данные, блокировки, «запомнить меня»
  • восстановление: токены/ссылки, срок жизни, одноразовость
  • сессии: logout, истечение, несколько устройств
  • безопасность: brute force, 2FA (если есть), корректные 401/403
На интервьюУпомяните минимальный набор негативных и проверку «нет ли входа без подтверждения» при восстановлении.

14. Computer Science для QA Manual

База CS‑понятий, нужных для уверенных ответов и грамотных проверок.

Что такое алгоритм?
Алгоритм — это четкая последовательность шагов, которая приводит к результату. Пример: «проверка логина» — ввести данные → отправить → проверить статус → показать результат. Для QA важно: алгоритмы лежат в основе бизнес-логики, и мы проверяем их корректность на входах/выходах.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоАлгоритм — конечная последовательность шагов, которая преобразует входные данные в результат.
Зачем QAQA это нужно, чтобы выбирать тесты: границы, редкие входы, большие объемы данных, недетерминизм.
Как тестироватьПрактический чек‑лист:
  • покрыть пустые/минимальные/максимальные входы
  • проверить корректность на типовых и угловых случаях (дубликаты, отсортировано/обратно)
  • проверить детерминизм: одинаковый ввод → одинаковый вывод
  • проверить производительность на больших данных
ПримерАлгоритм сортировки: пустой список, 1 элемент, много элементов, дубликаты — результат корректен и не теряет элементы.
Типовые ошибкиНа что чаще всего «падает»:
  • ошибки на границах (min/max, пусто)
  • потери/дубли элементов
  • зависания на больших данных
Что такое структура данных?
Это способ организации данных для хранения и быстрого доступа. Пример: список заказов может быть массивом, а поиск пользователя по id — через хэш-таблицу. Для QA важно понимать, как это влияет на скорость и поведение приложения.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоСтруктура данных — способ организации данных (массив, список, стек, очередь, дерево, граф, хэш‑таблица) для эффективных операций.
Зачем QAQA это нужно, чтобы понимать риски производительности/памяти и типовые ошибки (границы, null, порядок).
Как тестироватьПрактический чек‑лист:
  • проверять корректность на пустых/малых/больших наборах
  • проверять порядок элементов (если он важен)
  • проверять уникальность/дубли (для Set‑подобных структур)
  • проверять конкурентные сценарии (если структура используется параллельно)
ПримерЕсли ответ API обещает «уникальные значения», проверяем, что дубликатов нет и порядок не используется как контракт.
Типовые ошибкиНа что чаще всего «падает»:
  • зависимость от порядка там, где порядок не гарантирован
  • падения на пустых коллекциях
Какие структуры данных вы знаете: массив, список, стек, очередь, дерево, граф, хэш-таблица?
  • Массив — элементы по индексам, быстрый доступ.
  • Список — элементы связаны, удобно вставлять/удалять.
  • Стек — LIFO, последний вошел — первый вышел.
  • Очередь — FIFO, первый вошел — первый вышел.
  • Дерево — иерархия (категории, меню).
  • Граф — связи между объектами (соцсети, маршруты).
  • Хэш-таблица — быстрый поиск по ключу.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоБазовые структуры: массив/список (последовательность), стек (LIFO), очередь (FIFO), дерево/граф (связи), хэш‑таблица (быстрый доступ по ключу).
Зачем QAQA это помогает понимать: где важен порядок, где возможны дубли, где риски по памяти/скорости.
Как тестироватьПрактический чек‑лист:
  • для коллекций — проверить пусто/1/много, дубликаты, границы
  • для деревьев/графов — проверить циклы/глубину/невалидные ссылки
  • для хэш‑таблиц — не полагаться на порядок
ПримерСписок товаров: проверить, что пагинация не ломается на пустом списке и на большом количестве элементов.
Типовые ошибкиНа что чаще всего «падает»:
  • IndexOutOfBounds на пустых списках
  • неявная зависимость от порядка
В чем разница между стеком (LIFO) и очередью (FIFO)?
  • Стек: последний элемент обрабатывается первым (undo, история переходов).
  • Очередь: первый элемент обрабатывается первым (очередь сообщений).
Пример: очередь задач в системе уведомлений обычно FIFO.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоСтек (LIFO) — последний вошел, первый вышел. Очередь (FIFO) — первый вошел, первый вышел.
Зачем QAQA проверяет порядок обработки: сообщения/задачи/история действий часто зависят от этого.
Как тестироватьПрактический чек‑лист:
  • проверить порядок обработки элементов
  • проверить поведение при переполнении/большой очереди
  • проверить повтор обработки и отсутствие потерь
ПримерОчередь сообщений: отправили A, потом B — должны обработаться A→B (FIFO).
Типовые ошибкиНа что чаще всего «падает»:
  • перепутан порядок
  • потеря элементов при нагрузке
Что такое HashMap / HashSet и как они работают?
  • HashMap хранит пары «ключ → значение».
  • HashSet хранит уникальные значения.
Хэш-функция преобразует ключ в индекс. Быстрый доступ обычно O(1). Для QA: удобно понимать, почему поиск пользователя по id быстрый.
ПримерПоиск пользователя по id в таблице происходит быстро — признак хэш‑поиска.
Что этоHashMap хранит пары ключ→значение, HashSet — уникальные значения. Используют хэш‑функцию, в среднем операции близки к O(1).
Зачем QAQA важно: порядок элементов обычно не гарантирован; уникальность должна соблюдаться.
Как тестироватьПрактический чек‑лист:
  • проверить уникальность (для Set)
  • не полагаться на порядок в ответах/коллекциях
  • проверить поведение на коллизиях/похожих ключах (если проявляется как баг)
ПримерОтвет API возвращает «уникальные теги» — проверяем отсутствие дублей и стабильность результата при повторах.
Типовые ошибкиНа что чаще всего «падает»:
  • фронт ожидает фиксированный порядок
  • дубли из‑за неверной нормализации ключей
Что такое бинарный поиск? Когда он эффективен?
Бинарный поиск делит упорядоченный массив пополам и выбирает нужную часть. Эффективен только на отсортированных данных, сложность O(log n). Пример: поиск товара по id в отсортированном списке.
ПримерИщем «iphone», «IPhone», опечатки, пустой запрос, проверяем релевантность.
Что этоБинарный поиск — поиск в отсортированном массиве, делит диапазон пополам. Сложность O(log n).
Зачем QAQA проверяет предпосылки (сортировка), границы и корректность “не найдено”.
Как тестироватьПрактический чек‑лист:
  • проверить: пусто, 1 элемент, найдено/не найдено
  • проверить дубликаты (какой индекс возвращаем?)
  • проверить, что вход отсортирован (если это предпосылка)
ПримерСписок отсортирован по id: ищем существующий id и несуществующий — получаем корректный результат.
Типовые ошибкиНа что чаще всего «падает»:
  • применяют к неотсортированным данным
  • ошибки на границах диапазона
Что такое Big O (временная сложность)? Зачем она нужна QA?
Big O описывает, как растет время работы при увеличении входных данных. QA это важно для оценки рисков производительности. Пример: если операция O(n²), то при росте данных в 10 раз время может вырасти в 100 раз.
ПримерЕсли поиск O(n), то на 100k элементов ответ может стать заметно медленнее — QA проверяет это.
Что этоBig O описывает, как растет время/память при увеличении размера входа (O(1), O(n), O(n log n), O(n²)).
Зачем QAQA использует это, чтобы планировать тесты на объемы данных и ловить деградацию производительности.
Как тестироватьПрактический чек‑лист:
  • сравнить время ответа на 1k/10k/100k данных (тренд)
  • найти порог, где начинается деградация
  • проверить самые тяжелые операции (фильтры, сортировки, отчеты)
ПримерФильтр на 1k записей быстрый, на 100k — 20 секунд → вероятно, O(n²) или нет индекса.
Типовые ошибкиНа что чаще всего «падает»:
  • тестируют только на маленьких данных
  • смотрят только среднее, игнорируют p95/p99
Приведи пример алгоритмов с O(1), O(n), O(n²).
  • O(1): доступ к элементу массива по индексу.
  • O(n): поиск элемента в списке линейным проходом.
  • O(n²): сортировка пузырьком, двойные вложенные циклы.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоПримеры сложностей: O(1) — доступ по индексу, O(n) — линейный поиск, O(n²) — сравнение всех пар/пузырьковая сортировка.
Зачем QAQA это нужно, чтобы понимать, какие сценарии “взорвутся” на прод‑объемах.
Как тестироватьПрактический чек‑лист:
  • тестировать на росте данных (scale test)
  • проверять крайние размеры списков/страниц/экспортов
ПримерЭкспорт 100 строк работает, 100000 — падает по таймауту → алгоритм/запрос не масштабируется.
Типовые ошибкиНа что чаще всего «падает»:
  • нет тестов на большие объемы
  • таймауты не обрабатываются корректно
Почему важно знать про сложность операций при тестировании производительности?
Это помогает предсказывать, где система «сломается» при росте нагрузки. Пример: фильтр работает быстро на 1 000 записей, но медленно на 100 000 из‑за O(n²). QA может рекомендовать нагрузочные тесты на больших объемах данных.
ПримерQA увеличивает объем данных и фиксирует, что время ответа растет квадратично.
Что этоСложность операций напрямую влияет на время ответа при росте данных: плохая сложность → нелинейная деградация.
Зачем QAQA может заранее поймать масштабируемость до прод‑инцидента.
Как тестироватьПрактический чек‑лист:
  • замерять время на растущих объемах
  • фиксировать p95/p99, ошибки, таймауты
  • проверять “тяжелые” сценарии (поиск/сортировка/отчеты)
ПримерПоиск на 1000 товарах — 100мс, на 1M — 15с → нужна оптимизация/индексы.
Типовые ошибкиНа что чаще всего «падает»:
  • проверяют только функциональность, не масштаб
Как можно протестировать алгоритм сортировки?
Проверяем:
  • Сортировка по возрастанию/убыванию.
  • Поведение на пустом массиве и массиве из 1 элемента.
  • Дубликаты и отрицательные значения.
Пример: вход [3, 1, 2, 2] → ожидаем [1, 2, 2, 3].
ПримерQA проверяет, что сортировка по цене дает правильный порядок и не ломает пагинацию.
Что этоТестирование сортировки — проверка правильного порядка и устойчивости к особым данным (дубликаты, null, локали).
Зачем QAQA часто ловит ошибки сравнения строк/чисел и нестабильную сортировку.
Как тестироватьПрактический чек‑лист:
  • проверить пусто/1 элемент/много
  • проверить дубликаты и вторичную сортировку
  • проверить числа как строки ("10" vs "2")
  • проверить локаль/регистр/спецсимволы
ПримерСортировка по цене: 2, 10, 100 — должна быть 2→10→100 (не строковая).
Типовые ошибкиНа что чаще всего «падает»:
  • строковое сравнение чисел
  • нет вторичного ключа → “скачет”
Что такое клиент-серверная архитектура?
Клиент отправляет запросы, сервер их обрабатывает и возвращает ответы. Пример: браузер (клиент) отправляет запрос на сервер, сервер отвечает HTML/JSON.
ПримерМобильное приложение (клиент) отправляет запросы к API, сервер возвращает JSON.
Что этоКлиент отправляет запросы на сервер, сервер обрабатывает и отвечает. Клиентом может быть браузер, мобильное приложение или сервис.
Зачем QAQA отделяет проблемы UI от проблем API/серверной логики и быстрее ищет корень дефекта.
Как тестироватьПрактический чек‑лист:
  • воспроизвести и посмотреть запрос/ответ
  • проверить коды 4xx/5xx и тело ошибки
  • проверить авторизацию и права
ПримерUI ошибся, но API ответил корректно — дефект на фронте.
Типовые ошибкиНа что чаще всего «падает»:
  • делают вывод без анализа Network
Что такое frontend, backend, API, БД?
  • Frontend — интерфейс.
  • Backend — бизнес-логика.
  • API — интерфейс обмена данными.
  • БД — хранение данных.
Пример: кнопка «Купить» (frontend) → запрос в API → запись в БД.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоFrontend — клиентская часть (UI/логика). Backend — серверная часть (API/логика). API — интерфейс обмена данными. БД — хранение данных.
Зачем QAQA это нужно для локализации дефектов и качественного баг‑репорта (UI vs API vs data).
Как тестироватьПрактический чек‑лист:
  • сравнить UI и ответ API (Network/Postman)
  • если API верный — проблема фронта/рендера
  • если API неверный — проблема backend/данных
ПримерUI показывает сумму 100 ₽, API вернул 10000 (копейки) — проблема форматирования на фронте.
Типовые ошибкиНа что чаще всего «падает»:
  • несогласованность форматов
  • нет обработки ошибок API
Что такое запрос и ответ (request/response)?
Запрос — сообщение от клиента серверу (метод, URL, параметры). Ответ — результат обработки (статус, данные, ошибки). Пример: GET /users/123 → 200 OK + JSON.
ПримерВ headers токен, в body — данные заказа, response содержит статус и id заказа.
Что этоRequest/Response: запрос (method, URL, headers, body) → ответ (status, headers, body).
Зачем QAQA по request/response понимает, что реально отправили/получили, и доказывает проблему фактами.
Как тестироватьПрактический чек‑лист:
  • проверить статус и тело
  • проверить headers (Auth, Content‑Type)
  • проверить структуру ошибок
ПримерUI пишет «успех», но ответ 400 — значит UI неверно обработал ошибку.
Типовые ошибкиНа что чаще всего «падает»:
  • игнорируют тело ошибки
Что происходит, когда пользователь вводит URL в браузер?
Коротко: DNS → IP → соединение → HTTP‑запрос → ответ → рендер страницы. Пример: при `example.com` браузер узнает IP через DNS, устанавливает HTTPS, получает HTML/CSS/JS.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоЦепочка: DNS → TCP → TLS (для HTTPS) → HTTP → загрузка ресурсов → рендер.
Зачем QAQA может диагностировать: сеть/сертификат/редиректы/упавшие ресурсы/ошибки JS.
Как тестироватьПрактический чек‑лист:
  • Network: статус‑коды, редиректы, ресурсы
  • Console: JS‑ошибки, mixed content
  • Storage: cookies/localStorage при проблемах авторизации
ПримерБелый экран: 200 на HTML, но 404 на JS bundle → фронт не загрузился.
Типовые ошибкиНа что чаще всего «падает»:
  • битые ресурсы после деплоя
  • кэш держит старые версии
Что такое DNS и IP-адрес?
DNS переводит имя домена в IP-адрес. IP-адрес — уникальный адрес сервера в сети (например, 93.184.216.34).
ПримерНеверная DNS‑запись приводит к ошибке 404/timeout — QA проверяет резолвинг домена.
Что этоDNS переводит доменное имя в IP‑адрес.
Зачем QAQA отличает проблему DNS от проблемы приложения и понимает влияние кэша/VPN.
Как тестироватьПрактический чек‑лист:
  • проверить nslookup/dig
  • проверить другую сеть/VPN
  • учесть кэш DNS
ПримерУ разных пользователей домен резолвится в разные IP — проблема DNS/балансировки.
Типовые ошибкиНа что чаще всего «падает»:
  • устаревший кэш
  • неверный CNAME/A
Что такое порт и зачем он нужен?
Порт — «точка входа» на сервере для конкретного сервиса. Пример: HTTPS — порт 443, HTTP — 80.
ПримерНеверная DNS‑запись приводит к ошибке 404/timeout — QA проверяет резолвинг домена.
Что этоПорт — «номер» приложения/сервиса на IP (80/443/8080 и т.п.).
Зачем QAQA использует это при проблемах доступности и настройке окружений.
Как тестироватьПрактический чек‑лист:
  • проверить правильный порт и протокол
  • учесть firewall
ПримерСтенд на 8443 работает, но 443 закрыт — нужно настроить инфраструктуру.
Типовые ошибкиНа что чаще всего «падает»:
  • перепутали http/https
Что такое HTTP и HTTPS?
HTTP — протокол передачи данных. HTTPS — HTTP с шифрованием TLS. Для QA важно: HTTPS защищает данные, особенно логины и пароли.
ПримерQA проверяет, что логин передается только по HTTPS и нет mixed content.
Что этоHTTPS = HTTP поверх TLS: шифрование + проверка сертификата.
Зачем QAQA проверяет сертификаты, редирект на HTTPS, secure cookies и mixed content.
Как тестироватьПрактический чек‑лист:
  • проверить сертификат (срок/домен)
  • проверить редирект http→https
  • проверить mixed content
ПримерПосле включения HTTPS часть ресурсов грузится по HTTP → mixed content.
Типовые ошибкиНа что чаще всего «падает»:
  • истёкший сертификат
  • неверные часы
Что означают статусы HTTP: 200, 301, 400, 401, 403, 404, 500?
200 OK, 301 Redirect, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Server Error.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что это2xx — успех, 3xx — редиректы, 4xx — ошибка клиента (данные/права), 5xx — ошибка сервера.
Зачем QAQA по статусу быстро определяет, где искать причину и как описать дефект.
Как тестироватьПрактический чек‑лист:
  • для 401/403 проверить токен/права
  • для 400 проверить валидацию
  • для 500 собрать request/response + время
Пример401 при истекшем токене — ожидаемо; 500 при пустом поле — скорее баг.
Типовые ошибкиНа что чаще всего «падает»:
  • сервер отвечает 500 вместо 400
Чем отличаются методы GET, POST, PUT, DELETE?
GET — получить, POST — создать, PUT — обновить полностью, DELETE — удалить. Пример: POST /orders создаёт заказ, GET /orders/123 возвращает его.
ПримерPOST /users создает пользователя, PUT /users/1 обновляет, DELETE /users/1 удаляет.
Что этоGET — получить, POST — создать/действие, PUT — заменить, PATCH — частично обновить, DELETE — удалить.
Зачем QAQA проверяет идемпотентность и дубли при повторных запросах (особенно POST).
Как тестироватьПрактический чек‑лист:
  • проверить повтор POST (двойной клик) → нет дублей
  • проверить коды 201/204
  • проверить валидации и права
ПримерДвойной POST на создание заказа не должен создать 2 заказа.
Типовые ошибкиНа что чаще всего «падает»:
  • дубли при ретраях/повторах
Что такое cookies, session, token, JWT?
Cookies — данные в браузере. Session — серверная сессия. Token — ключ доступа. JWT — токен с данными и подписью. Для QA важно: где хранится и как истекает.
ПримерПосле выхода из аккаунта cookies очищаются, повторный вход требует логин/пароль.
Что этоCookies — хранилище на клиенте, session — состояние на сервере, token/JWT — данные для аутентификации/авторизации.
Зачем QAQA тестирует сессии: истечение, logout, несколько устройств, безопасность cookie‑атрибутов.
Как тестироватьПрактический чек‑лист:
  • проверить истечение токена и 401
  • проверить logout: токен/сессия реально инвалидируется
  • проверить HttpOnly/Secure/SameSite
ПримерПосле logout запрос к профилю должен быть 401/редирект на логин.
Типовые ошибкиНа что чаще всего «падает»:
  • logout только на UI
Как работает авторизация на уровне клиент-сервер?
Клиент отправляет логин/пароль, сервер проверяет и выдает токен или сессию. Далее клиент передает токен в запросах, сервер проверяет доступ.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоКлиент отправляет запросы на сервер, сервер обрабатывает и отвечает. Клиентом может быть браузер, мобильное приложение или сервис.
Зачем QAQA отделяет проблемы UI от проблем API/серверной логики и быстрее ищет корень дефекта.
Как тестироватьПрактический чек‑лист:
  • воспроизвести и посмотреть запрос/ответ
  • проверить коды 4xx/5xx и тело ошибки
  • проверить авторизацию и права
ПримерUI ошибся, но API ответил корректно — дефект на фронте.
Типовые ошибкиНа что чаще всего «падает»:
  • делают вывод без анализа Network
Что такое REST API и SOAP API?
REST — архитектурный стиль, обычно JSON. SOAP — протокол на XML с жесткими контрактами.
ПримерREST с JSON в Postman проще, SOAP требует строгое XML‑сообщение по WSDL.
Что этоREST — стиль с HTTP методами и ресурсами (часто JSON). SOAP — протокол (часто XML) со строгим контрактом (WSDL).
Зачем QAQA сверяет контракт и проверяет структуру ошибок (REST error vs SOAP Fault).
Как тестироватьПрактический чек‑лист:
  • проверить соответствие контракту
  • проверить ошибки
  • проверить обратную совместимость
ПримерSOAP Fault должен корректно обрабатываться и логироваться.
Типовые ошибкиНа что чаще всего «падает»:
  • ошибка скрыта под 200 OK
Что такое WebSocket и чем он отличается от HTTP?
WebSocket — двустороннее соединение, сервер может отправлять данные без запроса. Пример: чаты, онлайн‑уведомления.
ПримерВ чате новые сообщения приходят сразу без ручного обновления — это WebSocket.
Что этоWebSocket — постоянное двустороннее соединение для real‑time. HTTP — запрос‑ответ.
Зачем QAQA проверяет reconnection, дубли, порядок сообщений и права.
Как тестироватьПрактический чек‑лист:
  • проверить порядок и доставку
  • проверить reconnect без дублей
  • проверить авторизацию канала
ПримерОтключили сеть → восстановили → сообщения не задублились.
Типовые ошибкиНа что чаще всего «падает»:
  • дубли при reconnect
Что такое proxy и зачем он может использоваться при тестировании?
Proxy перехватывает трафик между клиентом и сервером. QA использует его для анализа запросов, подмены ответов, проверки ошибок сети.
ПримерЧерез proxy QA подменяет ответ API и проверяет обработку ошибки на UI.
Что этоProxy — посредник между клиентом и сервером (кэш/фильтр/логирование).
Зачем QAQA использует прокси для диагностики трафика и эмуляции ошибок.
Как тестироватьПрактический чек‑лист:
  • перехватить запрос/ответ
  • подменить ответ 500/таймаут
ПримерПодменили ответ на 500 → UI должен показать error state.
Типовые ошибкиНа что чаще всего «падает»:
  • кэш прокси скрывает проблему
Что такое IP-адрес, MAC-адрес, порт?
IP — адрес устройства в сети. MAC — физический адрес сетевого адаптера. Порт — номер сервиса на устройстве.
ПримерНеверная DNS‑запись приводит к ошибке 404/timeout — QA проверяет резолвинг домена.
Что этоIP — адрес узла в сети. MAC — адрес сетевого интерфейса в локальной сети. Порт — номер сервиса на IP.
Зачем QAQA это нужно для диагностики доступности стендов и сетевых ограничений.
Как тестироватьПрактический чек‑лист:
  • проверить доступность домена/порта
  • учесть VPN/прокси
ПримерСервис доступен по IP, но не по домену — проблема DNS.
Типовые ошибкиНа что чаще всего «падает»:
  • путают домен и IP
Что такое TCP и UDP, чем они отличаются?
TCP гарантирует доставку и порядок пакетов, UDP быстрее, но без гарантии. Пример: видео‑стримы часто используют UDP, веб‑страницы — TCP.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоTCP гарантирует доставку и порядок. UDP быстрее, но возможны потери.
Зачем QAQA понимает, почему real‑time может деградировать и как тестировать устойчивость.
Как тестироватьПрактический чек‑лист:
  • симулировать потери/задержки
  • проверить восстановление
ПримерПри потере пакетов качество падает, но приложение не должно зависать.
Типовые ошибкиНа что чаще всего «падает»:
  • нет graceful degradation
Что такое DNS и зачем он нужен?
DNS переводит домены в IP, чтобы людям не помнить цифры адресов.
ПримерНеверная DNS‑запись приводит к ошибке 404/timeout — QA проверяет резолвинг домена.
Что этоDNS переводит доменное имя в IP‑адрес.
Зачем QAQA отличает проблему DNS от проблемы приложения и понимает влияние кэша/VPN.
Как тестироватьПрактический чек‑лист:
  • проверить nslookup/dig
  • проверить другую сеть/VPN
  • учесть кэш DNS
ПримерУ разных пользователей домен резолвится в разные IP — проблема DNS/балансировки.
Типовые ошибкиНа что чаще всего «падает»:
  • устаревший кэш
  • неверный CNAME/A
Что происходит при вводе google.com в адресную строку?
Браузер обращается к DNS → получает IP → устанавливает HTTPS → отправляет запрос → получает ответ.
ПримерОтмена авторизации через Google не приводит к созданию аккаунта.
Что этоЦепочка: DNS → TCP → TLS (для HTTPS) → HTTP → загрузка ресурсов → рендер.
Зачем QAQA может диагностировать: сеть/сертификат/редиректы/упавшие ресурсы/ошибки JS.
Как тестироватьПрактический чек‑лист:
  • Network: статус‑коды, редиректы, ресурсы
  • Console: JS‑ошибки, mixed content
  • Storage: cookies/localStorage при проблемах авторизации
ПримерБелый экран: 200 на HTML, но 404 на JS bundle → фронт не загрузился.
Типовые ошибкиНа что чаще всего «падает»:
  • битые ресурсы после деплоя
  • кэш держит старые версии
Что такое ping, traceroute, nslookup?
  • ping — проверка доступности узла.
  • traceroute — путь пакета по сети.
  • nslookup — проверка DNS‑записей.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоnslookup — проверка DNS. ping — задержка/доступность. traceroute — маршрут.
Зачем QAQA отделяет проблему сети от проблемы сервера/приложения.
Как тестироватьПрактический чек‑лист:
  • проверить DNS
  • проверить маршрут
  • сравнить сети
ПримерDNS ок, но API 500 — это не сеть, а сервер.
Типовые ошибкиНа что чаще всего «падает»:
  • ICMP может быть запрещен
Что такое VPN и зачем он может понадобиться QA?
VPN создает защищенное соединение и позволяет тестировать гео‑ограничения. Пример: проверить контент, доступный только для другой страны.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоVPN — туннель в другую сеть, меняет маршрут и иногда DNS.
Зачем QAQA использует для доступа к стендам и теста гео‑ограничений.
Как тестироватьПрактический чек‑лист:
  • сравнить с VPN/без
  • учесть таймауты/скорость
ПримерСтенд доступен только через VPN — ожидаемо.
Типовые ошибкиНа что чаще всего «падает»:
  • VPN меняет DNS
Что такое SSL/TLS и зачем нужен HTTPS?
SSL/TLS — протоколы шифрования. HTTPS защищает данные от перехвата. QA проверяет, что пароли и токены передаются только по HTTPS.
ПримерQA проверяет, что логин передается только по HTTPS и нет mixed content.
Что этоHTTPS = HTTP поверх TLS: шифрование + проверка сертификата.
Зачем QAQA проверяет сертификаты, редирект на HTTPS, secure cookies и mixed content.
Как тестироватьПрактический чек‑лист:
  • проверить сертификат (срок/домен)
  • проверить редирект http→https
  • проверить mixed content
ПримерПосле включения HTTPS часть ресурсов грузится по HTTP → mixed content.
Типовые ошибкиНа что чаще всего «падает»:
  • истёкший сертификат
  • неверные часы
Что такое сертификат безопасности?
Это документ, подтверждающий подлинность сайта и используемый для шифрования. Неверный сертификат — риск безопасности и падение доверия пользователей.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоСертификат подтверждает подлинность сервера и используется в TLS для HTTPS.
Зачем QAQA ловит ошибки доступа: истек срок, неверный домен, проблема цепочки, неверное время на устройстве.
Как тестироватьПрактический чек‑лист:
  • проверить срок и домен
  • проверить цепочку доверия
  • проверить дату/время на устройстве
ПримерПосле смены домена сертификат не обновили — браузер показывает warning.
Типовые ошибкиНа что чаще всего «падает»:
  • истёк сертификат
  • сертификат на другой домен
Что проверять при тестировании HTTPS-соединения?
Проверяем, что нет смешанного контента (HTTP внутри HTTPS), сертификат валиден, редиректы корректные, HSTS работает.
ПримерQA проверяет, что логин передается только по HTTPS и нет mixed content.
Что этоHTTPS = HTTP поверх TLS: шифрование + проверка сертификата.
Зачем QAQA проверяет сертификаты, редирект на HTTPS, secure cookies и mixed content.
Как тестироватьПрактический чек‑лист:
  • проверить сертификат (срок/домен)
  • проверить редирект http→https
  • проверить mixed content
ПримерПосле включения HTTPS часть ресурсов грузится по HTTP → mixed content.
Типовые ошибкиНа что чаще всего «падает»:
  • истёкший сертификат
  • неверные часы
Что такое firewall и может ли он влиять на тестирование?
Firewall фильтрует трафик. Он может блокировать запросы или ограничивать порты. QA должен учитывать это при тестах интеграции.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоFirewall блокирует/разрешает трафик по правилам.
Зачем QAQA учитывает сетевые блокировки как фактор окружения и не заводит “ложные” баги на продукт.
Как тестироватьПрактический чек‑лист:
  • сравнить разные сети
  • проверить порты/домены
ПримерИнтеграция работает дома, не работает в офисе — firewall/прокси.
Типовые ошибкиНа что чаще всего «падает»:
  • таймаут трактуют как баг приложения
Что такое процесс и поток (thread)?
Процесс — отдельная программа в ОС. Поток — выполнение внутри процесса. Пример: браузер = процесс, вкладки могут быть потоками.
ПримерПри одновременной загрузке нескольких файлов потоки распределяют работу внутри процесса.
Что этоПроцесс — экземпляр программы. Поток — параллельное выполнение внутри процесса.
Зачем QAQA понимает причины “плавающих” багов и зависаний из‑за конкуренции.
Как тестироватьПрактический чек‑лист:
  • воспроизводить параллельными действиями
  • замедлять сеть/CPU для проявления гонок
  • фиксировать тайминги и логи
ПримерДвойной клик “Оплатить” запускает два потока → дубли.
Типовые ошибкиНа что чаще всего «падает»:
  • race condition
  • deadlock
Что такое deadlock и race condition (понимание на уровне QA)?
  • Deadlock — взаимная блокировка (две операции ждут друг друга).
  • Race condition — ошибка из‑за одновременного выполнения.
Пример: два пользователя одновременно оплачивают один и тот же товар.
ПримерДва пользователя одновременно покупают последний товар — возможна race condition.
Что этоDeadlock — взаимная блокировка. Race condition — ошибка из‑за тайминга/порядка выполнения.
Зачем QAQA умеет повышать воспроизводимость и собирать артефакты для dev.
Как тестироватьПрактический чек‑лист:
  • параллельные действия (2 вкладки/2 пользователя)
  • повторы и стресс (двойные клики)
  • сбор логов с таймстемпами
ПримерИногда создается заказ без позиций — гонка между сохранением корзины и оформлением.
Типовые ошибкиНа что чаще всего «падает»:
  • нет логов/корреляции
Что такое виртуальная память и зачем она нужна?
Виртуальная память — расширение RAM за счет диска. Если ее не хватает, приложение может тормозить или падать.
ПримерПри нехватке RAM приложение начинает тормозить — QA фиксирует деградацию.
Что этоВиртуальная память позволяет ОС использовать RAM + swap (диск) для адресного пространства.
Зачем QAQA понимает резкие тормоза/краши на слабых устройствах и при утечках.
Как тестироватьПрактический чек‑лист:
  • длинные сессии (утечки)
  • тест на слабом железе
  • сбор метрик/логов памяти
ПримерПосле 30 минут работы растет потребление памяти → лаги.
Типовые ошибкиНа что чаще всего «падает»:
  • тестируют только коротко
В чем разница между RAM и ROM?
RAM — оперативная память (временная). ROM — постоянная (прошивки).
ПримерQA замечает, что низкий RAM вызывает вылеты на старых устройствах.
Что этоRAM — оперативная память, ROM — постоянная память/прошивка (в широком смысле).
Зачем QAQA учитывает ограничения ресурсов и причины крашей по памяти.
Как тестироватьПрактический чек‑лист:
  • проверять на слабых девайсах
  • проверять большие объемы данных
ПримерСписок на 50k элементов падает на старом телефоне — нехватка памяти.
Типовые ошибкиНа что чаще всего «падает»:
  • нет пагинации
Что такое файловая система? Какие бывают (NTFS, FAT32, ext4)?
Файловая система определяет, как данные хранятся на диске. NTFS (Windows), FAT32 (старые носители), ext4 (Linux).
ПримерФайл сохранения больше 4ГБ не сохраняется на FAT32 — это ограничение FS.
Что этоФайловая система задает правила хранения файлов (имена, права, ограничения).
Зачем QAQA учитывает ограничения (например, FAT32 ~4GB) и корректность сообщений об ошибках.
Как тестироватьПрактический чек‑лист:
  • проверить большой файл
  • проверить имена с юникодом/спецсимволами
  • проверить права/ошибки записи
ПримерФайл 6GB на FAT32 не записывается — нужно корректное сообщение.
Типовые ошибкиНа что чаще всего «падает»:
  • необработанная ошибка записи
Что такое права доступа (permissions) и как они работают?
Permissions определяют, кто может читать/писать/исполнять файлы. Пример: пользователь не может удалить системный файл без прав.
ПримерПри запрете геолокации приложение не падает и показывает понятную подсказку.
Что этоПрава доступа определяют, кто может читать/писать/выполнять (в ОС и в приложениях по ролям).
Зачем QAQA проверяет негатив: запрет действий по ролям и отсутствие доступа к чужим данным.
Как тестироватьПрактический чек‑лист:
  • проверить 401/403
  • проверить прямые ссылки (IDOR)
  • проверить смену ролей
ПримерПользователь без прав открывает URL отчета — должен получить 403.
Типовые ошибкиНа что чаще всего «падает»:
  • права только на UI
Что такое лог-файлы и где их искать?
Логи — записи о событиях приложения. Обычно находятся в папках logs, в системных журналах, в DevTools.
ПримерПри падении QA снимает logcat и прикладывает стек ошибки к багу.
Что этоЛоги — записи о событиях/ошибках приложения.
Зачем QAQA по логам ускоряет диагностику и делает баг‑репорт сильнее.
Как тестироватьПрактический чек‑лист:
  • собрать логи вокруг времени бага
  • искать request/correlation id
  • не включать PII/секреты
ПримерВ баге: request id + время → dev быстро находит запись в логах.
Типовые ошибкиНа что чаще всего «падает»:
  • логи без контекста
Как анализировать логи ошибок (error log)?
Ищем время, сообщение, стек ошибок, ID запроса. Сравниваем с шагами воспроизведения.
ПримерПри падении QA снимает logcat и прикладывает стек ошибки к багу.
Что этоАнализ логов — поиск причины по ERROR/WARN, stacktrace и корреляции событий.
Зачем QAQA может локализовать слой проблемы и дать dev воспроизводимость.
Как тестироватьПрактический чек‑лист:
  • сопоставить таймстемпы
  • выделить stacktrace и причину
  • приложить релевантный фрагмент
ПримерВ логе `NullPointerException` при пустом поле — не обработан null.
Типовые ошибкиНа что чаще всего «падает»:
  • нет request id
Что такое environment variables?
Переменные окружения — настройки, которые ОС передает приложению (URL, ключи).
ПримерQA меняет переменную BASE_URL, чтобы прогнать тесты на stage.
Что этоEnvironment variables — параметры конфигурации без изменения кода (эндпоинты, флаги, режим логов).
Зачем QAQA это нужно для воспроизводимости и понимания различий dev/stage/prod.
Как тестироватьПрактический чек‑лист:
  • фиксировать окружение и флаги в баге
  • проверить, что секреты не утекли в логи
ПримерНа stage включен флаг через env var, на prod — выключен, поэтому поведение разное.
Типовые ошибкиНа что чаще всего «падает»:
  • перепутанные окружения
Что такое background process и foreground process?
Foreground — активный процесс с UI, background — выполняется в фоне. Пример: загрузка файла идет в фоне, пока пользователь смотрит страницу.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоForeground — активный процесс, background — выполняется в фоне (часто с ограничениями).
Зачем QAQA проверяет, что приложение не теряет состояние и корректно работает после возврата.
Как тестироватьПрактический чек‑лист:
  • свернуть/развернуть во время операций
  • проверить фоновые задачи/уведомления
ПримерСвернули при загрузке — после возврата не должно быть краша/дубля.
Типовые ошибкиНа что чаще всего «падает»:
  • потеря состояния
Что такое реляционная база данных?
База данных, где данные хранятся в таблицах с отношениями. Пример: пользователи и заказы связаны по user_id.
ПримерЗаказы связаны с пользователями по user_id — это типичная реляционная модель.
Что этоРеляционная БД хранит данные в таблицах со связями и поддерживает SQL.
Зачем QAQA использует SQL для проверки факта сохранения и целостности данных.
Как тестироватьПрактический чек‑лист:
  • проверить CRUD в таблицах
  • проверить связи PK/FK
  • проверить ограничения unique/not null
ПримерПосле создания заказа проверяем `orders` и `order_items`.
Типовые ошибкиНа что чаще всего «падает»:
  • сиротские записи
Чем отличается таблица от записи (row) и поля (column)?
Таблица — набор строк (rows). Поле (column) — тип данных, строка — конкретная запись. Пример: column «email», row — email конкретного пользователя.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоТаблица — набор строк, строка — запись, колонка — поле записи.
Зачем QAQA корректно пишет проверки в БД и понимает результаты запросов.
Как тестироватьПрактический чек‑лист:
  • проверить, что изменена нужная строка по id
  • сверить значения колонок
ПримерПосле смены email сверяем колонку `email` в строке `users` по `id`.
Типовые ошибкиНа что чаще всего «падает»:
  • UPDATE без WHERE меняет лишнее (в разработке)
Что такое первичный ключ (Primary Key) и внешний ключ (Foreign Key)?
Primary Key — уникальный идентификатор записи. Foreign Key — ссылка на запись в другой таблице.
ПримерУдаление пользователя не должно оставлять «висячие» заказы без user_id.
Что этоPrimary Key уникально идентифицирует запись. Foreign Key связывает записи между таблицами.
Зачем QAQA проверяет, что связи корректны и нет “потерянных” данных.
Как тестироватьПрактический чек‑лист:
  • проверить наличие дочерних записей по FK
  • проверить каскады/запреты при удалении
ПримерУ заказа есть позиции, у платежа есть ссылка на заказ.
Типовые ошибкиНа что чаще всего «падает»:
  • сиротские записи
Что такое индексы в БД и зачем они нужны?
Индексы ускоряют поиск, но замедляют вставку/обновление. QA учитывает их при производительных тестах.
ПримерЗапрос по email ускорился после добавления индекса — QA проверяет время ответа.
Что этоИндекс ускоряет поиск/сортировку по колонке, но замедляет записи.
Зачем QAQA ловит деградацию на больших данных (поиск/сортировка/пагинация).
Как тестироватьПрактический чек‑лист:
  • тестировать на больших наборах
  • замерять p95
ПримерСортировка по дате на 1M записей стала 10+ секунд — вероятно, нет индекса.
Типовые ошибкиНа что чаще всего «падает»:
  • тестируют на маленькой БД
Как проверить, что данные корректно записались в базу?
Выполнить SELECT по ключу и сравнить значения с ожидаемыми. Пример: после регистрации в БД появилась запись с корректным email.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоПроверка сохранения — сверка факта и корректности данных в БД после операции.
Зачем QAQA подтверждает, что бизнес‑результат реально сохранен, а не только показан.
Как тестироватьПрактический чек‑лист:
  • SELECT по ключу и сверка полей
  • проверка статусов и связей
  • проверка дублей при повторе
ПримерПосле оплаты: статус заказа PAID, платеж создан, сумма совпадает.
Типовые ошибкиНа что чаще всего «падает»:
  • UI показывает одно, БД хранит другое
Что делают команды SELECT, INSERT, UPDATE, DELETE?
SELECT — чтение, INSERT — вставка, UPDATE — обновление, DELETE — удаление.
ПримерINSERT создает пользователя, SELECT подтверждает запись, UPDATE меняет роль, DELETE удаляет.
Что этоSELECT читает, INSERT создает, UPDATE изменяет, DELETE удаляет — базовый CRUD.
Зачем QAQA использует SELECT для проверки результата и для диагностики.
Как тестироватьПрактический чек‑лист:
  • после действия в UI сверить через SELECT
  • проверить soft delete vs hard delete
ПримерУдаление: запись помечена deleted=true (если soft delete).
Типовые ошибкиНа что чаще всего «падает»:
  • физическое удаление там, где нужен soft delete
Что делает JOIN и какие типы бывают (INNER, LEFT, RIGHT)?
JOIN объединяет таблицы по ключам. INNER — только совпадения, LEFT — все из левой + совпадения, RIGHT — наоборот.
ПримерJOIN пользователей и заказов помогает проверить, что заказ привязан к правильному user_id.
Что этоJOIN объединяет таблицы по условию (INNER/LEFT/RIGHT).
Зачем QAQA использует JOIN, чтобы проверить бизнес‑цепочку данных (заказ↔позиции↔платеж).
Как тестироватьПрактический чек‑лист:
  • LEFT JOIN для поиска “потерянных” связей
  • сверка сумм/статусов
ПримерЗаказ PAID без платежа находится через LEFT JOIN.
Типовые ошибкиНа что чаще всего «падает»:
  • неверное условие JOIN “размножает” строки
Как проверить целостность данных после теста?
Проверяем, что нет «висячих» ссылок и все foreign key корректны.
ПримерQA проверяет, что нет заказов без существующего пользователя.
Что этоЦелостность — корректные связи и ограничения (FK, unique, not null, допустимые статусы).
Зачем QAQA ловит “тихие” ошибки, которые проявятся позже в отчетах и интеграциях.
Как тестироватьПрактический чек‑лист:
  • проверить FK (нет сирот)
  • проверить уникальность
  • проверить допустимые статусы
ПримерУдалили заказ — не осталось позиций, ссылающихся на него (если каскад).
Типовые ошибкиНа что чаще всего «падает»:
  • сироты
Что делает команда WHERE, ORDER BY, GROUP BY, LIMIT?
WHERE — фильтр, ORDER BY — сортировка, GROUP BY — группировка, LIMIT — ограничение строк.
ПримерGROUP BY помогает проверить, что по каждому пользователю правильное число заказов.
Что этоWHERE фильтрует, ORDER BY сортирует, GROUP BY агрегирует, LIMIT ограничивает результат.
Зачем QAQA сверяет выдачи/отчеты UI с SQL и проверяет пагинацию/сортировку.
Как тестироватьПрактический чек‑лист:
  • сверить фильтры UI с WHERE
  • сверить сортировку с ORDER BY
  • проверить пагинацию (LIMIT/OFFSET)
ПримерUI показывает 20 строк на странице — SQL LIMIT 20 дает те же id.
Типовые ошибкиНа что чаще всего «падает»:
  • разная сортировка UI и DB
Как проверить бизнес-логику с помощью SQL-запросов?
Сопоставляем данные в БД с расчетами и статусами. Пример: скидка 10% → цена в заказе соответствует формуле.
ПримерСверяю источник истины: сумма заказа в `orders` = SUM(`order_items`) − скидки + доставка.
Что этоSQL можно использовать как «источник истины» для проверки бизнес‑правил (суммы, статусы, связи).
Зачем QAQA быстрее находит расхождения UI/API/БД.
Как тестироватьПрактический чек‑лист:
  • сверить суммы: позиции − скидки + доставка
  • проверить статусы и связи
ПримерПромокод в UI применился, а в БД скидка 0 — дефект сохранения/расчета.
Типовые ошибкиНа что чаще всего «падает»:
  • проверяют только UI
Что такое переменная, функция, условие (if), цикл (for, while)?
Переменная хранит значение, функция — блок кода, if — ветвление, цикл — повторение. Пример: если цена > 0 — показать «Купить».
ПримерЕсли user.isBlocked=true, функция логина возвращает ошибку — QA проверяет эту ветку.
Что этоБазовые конструкции: переменная, функция, условие (if), цикл (for/while).
Зачем QAQA строит тесты по веткам и границам условий и проверяет поведение на больших данных.
Как тестироватьПрактический чек‑лист:
  • покрыть true/false ветки
  • проверить границы условий
  • проверить большие входы (цикл/списки)
ПримерЛимит 18+: тесты 17/18/19.
Типовые ошибкиНа что чаще всего «падает»:
  • ошибка “>” vs “>=”
Что такое булевы выражения (true/false)?
Это выражения, которые дают истина/ложь. Пример: isLoggedIn = true → показываем профиль.
ПримерФлаг isActive=false скрывает кнопку «Оплатить» — QA проверяет условие.
Что этоБулевы выражения — логические условия true/false и операции AND/OR/NOT.
Зачем QAQA применяет для decision tables и покрытия комбинаций условий.
Как тестироватьПрактический чек‑лист:
  • покрыть комбинации условий
  • проверить приоритет AND/OR
ПримерДоступ = isAdmin OR (isOwner AND isActive) — тестируем все комбинации.
Типовые ошибкиНа что чаще всего «падает»:
  • пропущенные комбинации
Что такое операторы сравнения (==, !=, >, <)?
Операторы для сравнения значений: равно, не равно, больше, меньше. QA использует их при проверке условий и граничных значений.
ПримерВозраст >=18 — доступ разрешен; <18 — отказ.
Что этоОператоры сравнения задают условия и границы (==, !=, >, <, >=, <=).
Зачем QAQA ловит ошибки на границах и на сравнении типов.
Как тестироватьПрактический чек‑лист:
  • проверить min−1/min/min+1
  • проверить числа vs строки
ПримерПорог 1000: тесты 999/1000/1001.
Типовые ошибкиНа что чаще всего «падает»:
  • строковое сравнение чисел
Что такое массив / список и как получить элемент по индексу?
Массив — коллекция с доступом по индексу (начинается с 0). Пример: items[0] — первый элемент.
ПримерQA приводит короткий пример из продукта: конкретный сценарий, ожидаемое поведение и риск при отклонении.
Что этоМассив/список — коллекция элементов, доступ по индексу — получение по позиции.
Зачем QAQA проверяет пустые списки, выход за границы, дубликаты.
Как тестироватьПрактический чек‑лист:
  • проверить пусто/1/много
  • проверить первый/последний
ПримерНа последней странице пагинации список пуст — UI показывает empty‑state, не падает.
Типовые ошибкиНа что чаще всего «падает»:
  • IndexOutOfBounds
Что такое null и почему его важно проверять в тестировании?
Null — отсутствие значения. Ошибки с null часто приводят к падениям. QA проверяет, что система корректно обрабатывает пустые значения.
ПримерЕсли поле phone=null, UI должен показать «не указан», а не падать.
Что этоnull — отсутствие значения (не равно пустой строке/0/false).
Зачем QAQA проверяет пустые/неполные данные, чтобы избежать падений и “null” в UI.
Как тестироватьПрактический чек‑лист:
  • null vs отсутствие поля
  • пустые значения и дефолты
ПримерПрофиль без отчества: UI показывает “—”, а не “null”.
Типовые ошибкиНа что чаще всего «падает»:
  • NPE/краш
Что такое исключение (exception) и как оно проявляется?
Exception — ошибка во время выполнения кода. Проявляется как crash, ошибка 500, или сообщение в логах.
ПримерОшибка 500 в ответе API обычно соответствует exception в логах сервера.
Что этоException — ошибка выполнения, может приводить к 500/падению или быть обработана.
Зачем QAQA проверяет корректную обработку ошибок без утечки данных/stacktrace.
Как тестироватьПрактический чек‑лист:
  • негативные сценарии
  • корректные коды 400/401/403
  • без stacktrace пользователю
Пример400 VALIDATION_ERROR → подсветка поля и текст ошибки.
Типовые ошибкиНа что чаще всего «падает»:
  • 500 вместо 400
Что такое логика ветвления и как тестировать разные сценарии?
Ветвление — разные пути выполнения кода по условиям. QA тестирует все ветки: позитивную, негативную, граничные случаи.
ПримерДля условия `if role=admin` делаю тесты на обе ветки: admin видит кнопку, обычный пользователь — нет.
Что этоВетвление — разные пути выполнения (if/else).
Зачем QAQA покрывает ветки и комбинации условий.
Как тестироватьПрактический чек‑лист:
  • таблица условий (decision table)
  • границы
ПримерСкидка зависит от тарифа и суммы — decision table.
Типовые ошибкиНа что чаще всего «падает»:
  • пропущенная ветка
Что значит, что код детерминированный / недетерминированный?
Детерминированный код дает один и тот же результат при одинаковых входах. Недетерминированный зависит от времени, потоков, рандома — сложнее тестировать.
ПримерЕсли результат зависит от времени, QA фиксирует время и повторяет тест для устойчивости.
Что этоДетерминизм — одинаковый ввод дает одинаковый вывод; недетерминизм зависит от времени/гонок/внешних сервисов.
Зачем QAQA ищет условия flaky багов и фиксирует их для воспроизведения.
Как тестироватьПрактический чек‑лист:
  • зафиксировать время/таймзону/флаги
  • повторить N раз и оценить частоту
ПримерСписок иногда в разном порядке — нет сортировки.
Типовые ошибкиНа что чаще всего «падает»:
  • нет ORDER BY
Что такое регулярные выражения (RegExp) и где QA их может использовать?
RegExp — шаблоны для поиска/проверки строк. QA использует для валидации email, логов, форматов дат.
ПримерQA проверяет email по regexp и не принимает «test@».
Что этоRegExp — шаблоны для поиска/валидации текста.
Зачем QAQA использует для валидаций и поиска по логам.
Как тестироватьПрактический чек‑лист:
  • проверить валидные/невалидные форматы
  • поиск request id в логах
ПримерРегуляркой найти requestId в логах и собрать цепочку событий.
Типовые ошибкиНа что чаще всего «падает»:
  • слишком строгая/слабая валидация
Что такое API mocks / stubs / fakes и зачем они нужны?
Это подмены реальных сервисов для изоляции тестов. Пример: мок сервиса оплаты, чтобы тестировать без реальных транзакций.
ПримерСервис оплаты недоступен, QA использует мок, чтобы проверить сценарии заказа.
Что этоMocks/stubs/fakes — подмены зависимостей для изоляции и воспроизводимости.
Зачем QAQA использует для теста UI/клиента и редких ошибок без реального сервиса.
Как тестироватьПрактический чек‑лист:
  • эмулировать ответы 200/400/500
  • тестировать таймауты
ПримерМок оплаты возвращает declined → UI показывает отказ.
Типовые ошибкиНа что чаще всего «падает»:
  • мок не соответствует контракту
Что такое SQL Injection и как ее можно обнаружить?
SQL Injection — внедрение SQL‑кода через ввод пользователя. Пример: ввод в поле логина `' OR '1'='1` и проверка, что вход не выполняется.
ПримерВвод "' OR '1'='1" не должен давать доступ — QA проверяет защиту.
Что этоSQL Injection — инъекция, когда ввод попадает в SQL без параметризации.
Зачем QAQA делает базовые проверки и эскалирует риски утечки/обхода.
Как тестироватьПрактический чек‑лист:
  • проверить поля ввода типовыми payload
  • проверить, что ошибки не раскрывают SQL
ПримерPayload `' OR 1=1 --` не должен обходить логин.
Типовые ошибкиНа что чаще всего «падает»:
  • SQL‑ошибки в ответе
Что такое XSS (Cross-Site Scripting)?
XSS — внедрение скриптов в страницу. QA проверяет, что ввод не исполняется как код (экранирование).
ПримерВвод <script>alert(1)</script> должен отображаться как текст, а не выполняться.
Что этоXSS — выполнение скрипта из пользовательского ввода.
Зачем QAQA проверяет экранирование и что токены не доступны из JS (HttpOnly).
Как тестироватьПрактический чек‑лист:
  • вставить html/script и проверить, что не выполняется
  • проверить вывод пользовательского контента
ПримерВвод <script> должен отображаться как текст.
Типовые ошибкиНа что чаще всего «падает»:
  • выполнение HTML/JS
Что такое CSRF (Cross-Site Request Forgery)?
CSRF — атака, при которой пользователь выполняет нежелательное действие на сайте. Защита — токены и проверка источника запроса.
ПримерЗапрос без CSRF‑токена должен быть отклонен сервером.
Что этоCSRF — подделка запроса от имени пользователя через cookie.
Зачем QAQA проверяет CSRF‑защиту на критичных POST/PUT/DELETE.
Как тестироватьПрактический чек‑лист:
  • наличие CSRF‑токена
  • SameSite cookies
ПримерСмена email без CSRF‑токена не должна проходить.
Типовые ошибкиНа что чаще всего «падает»:
  • нет CSRF защиты
Что такое Brute-force атака и как защититься?
Brute-force — перебор пароля. Защита: лимиты попыток, капча, блокировки.
ПримерПосле 5 неверных паролей аккаунт блокируется на 10 минут.
Что этоBrute‑force — перебор паролей/кодов.
Зачем QAQA проверяет rate limiting/блокировки/капчу и нейтральные сообщения.
Как тестироватьПрактический чек‑лист:
  • ограничение попыток
  • задержка/капча
ПримерПосле 5 попыток логина — капча или временная блокировка.
Типовые ошибкиНа что чаще всего «падает»:
  • нет лимитов
Что такое DoS / DDoS атака?
DoS — перегрузка сервиса одним источником, DDoS — множеством. QA проверяет устойчивость и rate limiting.
ПримерСервис ограничивает частоту запросов и не падает при пике нагрузки.
Что этоDoS/DDoS — перегрузка сервиса запросами.
Зачем QAQA проверяет базовые меры: rate limiting, корректная обработка 429/503.
Как тестироватьПрактический чек‑лист:
  • проверить 429/503 и UI‑обработку
  • проверить лимиты на логин/OTP
ПримерПри превышении лимита API возвращает 429 и Retry‑After.
Типовые ошибкиНа что чаще всего «падает»:
  • клиент бесконечно ретраит
Что такое rate limiting?
Ограничение количества запросов за период времени для защиты сервиса. Пример: не более 5 логинов в минуту.
ПримерAPI возвращает 429 при превышении лимита запросов.
Что этоWHERE фильтрует, ORDER BY сортирует, GROUP BY агрегирует, LIMIT ограничивает результат.
Зачем QAQA сверяет выдачи/отчеты UI с SQL и проверяет пагинацию/сортировку.
Как тестироватьПрактический чек‑лист:
  • сверить фильтры UI с WHERE
  • сверить сортировку с ORDER BY
  • проверить пагинацию (LIMIT/OFFSET)
ПримерUI показывает 20 строк на странице — SQL LIMIT 20 дает те же id.
Типовые ошибкиНа что чаще всего «падает»:
  • разная сортировка UI и DB
Что такое шифрование (encryption) и хеширование (hashing)?
Шифрование можно расшифровать ключом. Хеширование — одностороннее. Пароли обычно хешируются, а не шифруются.
ПримерПароли в БД хранятся как хэш, а не в открытом виде.
Что этоШифрование — обратимо с ключом. Хеширование — необратимо (для паролей).
Зачем QAQA проверяет, что секреты не утекли и всё идет по HTTPS.
Как тестироватьПрактический чек‑лист:
  • нет пароля/токена в ответах/логах
  • HTTPS для чувствительных операций
ПримерПароль не должен возвращаться в API и не должен быть в логах.
Типовые ошибкиНа что чаще всего «падает»:
  • секреты в логах
Что такое JWT token и зачем его подписывают?
JWT содержит данные пользователя и подпись для защиты от подмены. Подпись подтверждает, что токен выдал сервер.
ПримерПосле логина сервер возвращает JWT, и QA проверяет доступ с истекшим токеном.
Что этоCookies — хранилище на клиенте, session — состояние на сервере, token/JWT — данные для аутентификации/авторизации.
Зачем QAQA тестирует сессии: истечение, logout, несколько устройств, безопасность cookie‑атрибутов.
Как тестироватьПрактический чек‑лист:
  • проверить истечение токена и 401
  • проверить logout: токен/сессия реально инвалидируется
  • проверить HttpOnly/Secure/SameSite
ПримерПосле logout запрос к профилю должен быть 401/редирект на логин.
Типовые ошибкиНа что чаще всего «падает»:
  • logout только на UI
Что проверять при тестировании безопасности?
Проверяем авторизацию, валидации, доступ по ролям, защиту от инъекций, HTTPS.
ПримерQA проверяет доступ к админ‑страницам без роли admin — доступ должен быть закрыт.
Что этоSecurity sanity для QA: права, сессии, утечки, валидации.
Зачем QAДаже без security‑роли QA может поймать критичные вещи (IDOR, 401/403, утечки).
Как тестироватьПрактический чек‑лист:
  • проверить доступ к чужим данным
  • проверить 401/403
  • проверить отсутствие stacktrace/секретов
ПримерПользователь без прав не может скачать чужой файл по прямой ссылке.
Типовые ошибкиНа что чаще всего «падает»:
  • права только на UI
Что такое нагрузочное тестирование и зачем оно нужно даже для manual QA?
Нагрузочное тестирование проверяет устойчивость при большом количестве пользователей. Даже manual QA должен уметь оценить риски и инициировать такие тесты.
ПримерQA инициирует нагрузочный тест 500 пользователей, чтобы проверить устойчивость оплаты.
Что этоНагрузочное тестирование — проверка под нагрузкой (latency, ошибки, ресурсы).
Зачем QAQA понимает пороги деградации и критичные сценарии.
Как тестироватьПрактический чек‑лист:
  • выбрать критичные сценарии
  • смотреть p95 и error rate
ПримерПоиск на пике дает 503 — фиксируем порог и условия.
Типовые ошибкиНа что чаще всего «падает»:
  • смотрят только среднее
Что такое CI/CD pipeline?
Автоматизированный процесс сборки, тестирования и доставки релиза. QA участвует, чтобы проверить тесты и стабильность сборок.
ПримерПосле коммита автотесты запускаются в pipeline и блокируют релиз при ошибках.
Что этоCI/CD — автоматизация сборки, тестов и доставки.
Зачем QAQA умеет читать пайплайн и понимать, что проверено перед релизом.
Как тестироватьПрактический чек‑лист:
  • build → tests → deploy
  • читать логи и артефакты
ПримерТесты упали в CI — QA смотрит отчет и артефакты.
Типовые ошибкиНа что чаще всего «падает»:
  • нет артефактов
Что такое build, deploy, release?
Build — сборка приложения, deploy — размещение на сервере, release — выпуск пользователям.
ПримерBuild собран, deploy на stage выполнен, release — после финального QA‑отчета.
Что этоBuild — сборка артефакта. Deploy — развертывание. Release — выпуск для пользователей.
Зачем QAQA корректно планирует проверки до/после деплоя.
Как тестироватьПрактический чек‑лист:
  • smoke после deploy
  • версия/окружение
ПримерDeploy прошел, но smoke показал 404 на ключевой странице — откат.
Типовые ошибкиНа что чаще всего «падает»:
  • нет smoke после деплоя
Что такое staging, production, dev environment?
Dev — разработка, staging — предрелизная среда, production — рабочая среда пользователей.
ПримерQA проверяет новую фичу на staging, а на production — минимальный sanity.
Что этоDev/Staging/Prod — окружения с разными данными и рисками.
Зачем QAQA избегает ложных выводов “не воспроизводится” из‑за конфигов/данных.
Как тестироватьПрактический чек‑лист:
  • фиксировать окружение и версию
  • учесть песочницы интеграций
ПримерНа stage платежи sandbox, на prod реальные — тесты разные.
Типовые ошибкиНа что чаще всего «падает»:
  • тестируют опасное на prod
Что делает Git и зачем QA знать команды (clone, pull, branch, merge)?
Git — система контроля версий. QA полезно уметь получать ветки, смотреть изменения и понимать историю.
ПримерQA берет ветку с фиксом через git pull, чтобы протестировать конкретный багфикс.
Что этоGit — контроль версий: ветки, коммиты, история изменений.
Зачем QAQA понимает, что именно попало в релиз, и может проверять конкретные фиксы.
Как тестироватьПрактический чек‑лист:
  • знать checkout/branch/log
  • фиксировать версию/коммит
ПримерПо коммиту из релиз‑нотов QA понимает, что тестировать.
Типовые ошибкиНа что чаще всего «падает»:
  • тестируют не ту версию
Что такое commit и pull request?
Commit — зафиксированное изменение кода. Pull request — запрос на вливание изменений в основную ветку с ревью.
ПримерQA видит список изменений в PR и понимает, что затронуто.
Что этоCommit — сохранение изменений. Pull Request — запрос на вливание изменений с ревью и CI.
Зачем QAQA использует PR для понимания объема изменений и рисков.
Как тестироватьПрактический чек‑лист:
  • читать описание PR и тест‑план
  • смотреть результаты CI
ПримерPR содержит чек‑лист регресса — QA проверяет по нему.
Типовые ошибкиНа что чаще всего «падает»:
  • PR без описания
Что такое environment variables в CI?
Это параметры для запуска тестов/сборок (URL, ключи, флаги).
ПримерQA меняет переменную BASE_URL, чтобы прогнать тесты на stage.
Что этоEnvironment variables — параметры конфигурации без изменения кода (эндпоинты, флаги, режим логов).
Зачем QAQA это нужно для воспроизводимости и понимания различий dev/stage/prod.
Как тестироватьПрактический чек‑лист:
  • фиксировать окружение и флаги в баге
  • проверить, что секреты не утекли в логи
ПримерНа stage включен флаг через env var, на prod — выключен, поэтому поведение разное.
Типовые ошибкиНа что чаще всего «падает»:
  • перепутанные окружения
Что делает Jenkins, GitHub Actions, GitLab CI?
Это инструменты для запуска CI/CD: сборка, тесты, деплой.
ПримерCI запускает прогон автотестов после каждого push.
Что этоCI‑системы запускают пайплайны и тесты.
Зачем QAQA читает логи и берет артефакты (скрины/отчеты) для анализа падений.
Как тестироватьПрактический чек‑лист:
  • найти stage падения
  • открыть отчет тестов
ПримерUI‑тест упал → QA смотрит скрин из артефактов.
Типовые ошибкиНа что чаще всего «падает»:
  • нет артефактов
Что такое Docker и зачем он используется?
Docker упаковывает приложение и его зависимости в контейнер. QA использует, чтобы тесты были воспроизводимы в одинаковой среде.
ПримерQA поднимает контейнер с БД, чтобы тесты были воспроизводимы локально.
Что этоDocker — контейнеризация: приложение + зависимости в контейнере.
Зачем QAQA быстрее поднимает стенд и понимает порты/переменные/логи.
Как тестироватьПрактический чек‑лист:
  • проверить env и порты
  • смотреть логи контейнера
ПримерКонтейнер не стартует — в логах ошибка миграции БД.
Типовые ошибкиНа что чаще всего «падает»:
  • не проброшен порт
Что такое mock-сервер и как QA может его использовать?
Mock‑сервер имитирует ответы API. Полезно, когда реальный сервис недоступен или нестабилен.
ПримерMock‑сервер возвращает заранее заданные ответы API для изолированного теста UI.
Что этоMock‑сервер отдает заранее заданные ответы API.
Зачем QAQA тестирует клиент без реального бэка и эмулирует ошибки/редкие ответы.
Как тестироватьПрактический чек‑лист:
  • ответы 200/400/500
  • таймауты
ПримерМок оплаты вернул declined → UI показывает отказ.
Типовые ошибкиНа что чаще всего «падает»:
  • мок не соответствует контракту
Как QA участвует в релизном процессе?
QA подтверждает качество, готовит отчет о рисках, участвует в go/no‑go решении.
ПримерПри одновременной загрузке нескольких файлов потоки распределяют работу внутри процесса.
Что этоQA в релизе: регресс/смоук, фиксация рисков (sign‑off), smoke после деплоя, мониторинг.
Зачем QAЭто снижает риск инцидента и дает прозрачность качества.
Как тестироватьПрактический чек‑лист:
  • перед релизом: критический путь
  • после деплоя: smoke
  • фиксировать known issues/риски
ПримерПеред релизом прогнали оплату/логин, после — smoke на прод.
Типовые ошибкиНа что чаще всего «падает»:
  • нет фиксации рисков
Как проверить, что система работает правильно при ограниченных данных?
Используем минимальные наборы данных + граничные значения. Пример: одна запись в списке, затем две, затем пустой список.
ПримерQA проверяет, что при пустом списке заказов UI показывает корректный empty state.
Что этоПроверка на малых данных: empty‑state, нулевые итоги, отсутствие деления на ноль.
Зачем QAQA ловит баги для новых пользователей и пустых списков.
Как тестироватьПрактический чек‑лист:
  • 0 записей, 1 запись
  • агрегаты (суммы/средние)
ПримерНовый пользователь: список заказов пуст — корректное empty‑state.
Типовые ошибкиНа что чаще всего «падает»:
  • краш на пустом списке
Как бы ты протестировал черный ящик без документации?
Исследовательское тестирование, анализ UI, логов и сетевых запросов. Формируем гипотезы, проверяем входы/выходы.
ПримерQA смотрит Network и UI‑поведение, чтобы понять правила работы без документации.
Что этоЧерный ящик — тестируем по входам/выходам без знания внутренней реализации.
Зачем QAQA быстро получает покрытие через risk‑based и exploratory подход.
Как тестироватьПрактический чек‑лист:
  • exploratory сессия + заметки
  • критический путь + негатив + границы
ПримерНет ТЗ: проверили логин/создание/оплату + негатив, оформили чек‑лист.
Типовые ошибкиНа что чаще всего «падает»:
  • хаотичное тестирование без фиксации
Как действовать, если система возвращает разные результаты при одинаковом вводе?
Проверяем зависимости от времени, кэша, данных, параллельных процессов. Фиксируем условия и минимальный сценарий воспроизведения.
ПримерQA выключает кэш и фиксирует время, чтобы исключить нестабильность из‑за условий.
Что этоРазные результаты при одинаковом вводе — недетерминизм (кэш, гонки, внешние зависимости, время).
Зачем QAQA ищет условия и фиксирует их для воспроизведения.
Как тестироватьПрактический чек‑лист:
  • повторить N раз и оценить частоту
  • проверить кеш/состояние
  • зафиксировать окружение и флаги
ПримерПорядок элементов “прыгает” — нет сортировки на сервере.
Типовые ошибкиНа что чаще всего «падает»:
  • нет ORDER BY
Как проверить, что фильтр сортирует корректно без видимого алгоритма?
Подготовить известный набор данных и сравнить результат сортировки с ожидаемым порядком. Проверить стабильность сортировки на равных значениях.
ПримерQA задает данные с одинаковой ценой и проверяет стабильность сортировки.
Что этоСортировку проверяют по свойствам результата: упорядоченность, сохранение элементов, стабильность/вторичный ключ.
Зачем QAQA может доказать дефект без знания алгоритма.
Как тестироватьПрактический чек‑лист:
  • монотонность по ключу
  • дубликаты и стабильность
  • null/локаль/регистр
ПримерЦены 10,2,2,30 → 2,2,10,30; равные цены сортируются по названию.
Типовые ошибкиНа что чаще всего «падает»:
  • строки вместо чисел
Как оценить сложность задачи по тестированию без полного ТЗ?
Разбить на области (UI, API, данные, интеграции) и оценить риски. Согласовать допущения с командой.
ПримерQA разделяет задачу на UI/API/DB и оценивает каждый блок отдельно.
Что этоОценка без полного ТЗ = риск‑оценка + допущения + диапазон.
Зачем QAQA дает управляемую оценку и список вопросов, чтобы уточнить объем.
Как тестироватьПрактический чек‑лист:
  • разбить на UI/API/данные/интеграции
  • дать диапазон и assumptions
ПримерОплата без деталей: спрашиваем провайдера, статусы, ретраи, 3DS — после уточнения точнее оцениваем.
Типовые ошибкиНа что чаще всего «падает»:
  • оценка “на глаз” без допущений
Как проверить корректность расчетов (пример — скидка, налог, комиссия)?
Проверяем формулы на простых и граничных значениях. Пример: цена 100, скидка 10% → 90; налог 20% → 108.
ПримерДелаю таблицу входов→ожидаемый итог. Пример: 100 −10% = 90; +20% налог = 108. Проверяю округления и границы.
Что этоРасчеты тестируют через таблицу входов→ожидаемый итог, границы и округления.
Зачем QAДеньги — критический риск, важно сверять UI↔API↔БД.
Как тестироватьПрактический чек‑лист:
  • таблица тестов
  • границы и округления
  • сверка с API/БД
Пример100 −10% = 90; +20% налог = 108. Проверить 99/100/101.
Типовые ошибкиНа что чаще всего «падает»:
  • ошибка округления
Как определить корневую причину бага, если ошибка плавающая?
Собираем логи, мониторим окружение, ищем зависимость от нагрузки, времени, данных. Пошагово исключаем гипотезы.
ПримерСобираю условия (частота, сеть, данные), артефакты (логи/HAR/request id), увеличиваю вероятность (throttling) и проверяю гипотезы (кэш/гонки/ретраи).
Что этоRCA — поиск первопричины, особенно для плавающих дефектов.
Зачем QAQA повышает воспроизводимость и собирает артефакты (логи, HAR, таймстемпы).
Как тестироватьПрактический чек‑лист:
  • частота и условия
  • артефакты (Network/HAR/логи)
  • минимальные шаги
ПримерБаг чаще на медленной сети: таймаут → повтор POST → дубли. Причина: нет идемпотентности.
Типовые ошибкиНа что чаще всего «падает»:
  • нет артефактов
Как определить, где именно ошибка: в UI, API или базе данных?
Проверяем API напрямую, сравниваем с UI, смотрим состояние в БД. Если API корректен, ошибка в UI; если данные неверны в БД — проблема на сервере.
ПримерСравниваю: UI → Network/Postman (API) → БД. Если API верно, UI неверно — фронт; если API неверно — бек/данные; если БД не совпадает — проблема в сохранении/миграции.
Что этоЛокализация: сравнить UI и API; если API верно — фронт, если API неверно — бек/данные; при необходимости сверить БД.
Зачем QAЭто ускоряет фиксы и делает баг‑репорт точным.
Как тестироватьПрактический чек‑лист:
  • Network/Postman: request/response
  • SQL/админка: сверка данных
ПримерUI показывает статус PAID, API вернул NEW — ошибка фронта/кэша; если API вернул неверно — бек.
Типовые ошибкиНа что чаще всего «падает»:
  • делают вывод без проверки API
Как проверить корректность асинхронных процессов (например, уведомления)?
Проверяем задержку, порядок, повторную отправку. Используем логи/очереди, фиксируем таймстемпы.
ПримерПри одновременной загрузке нескольких файлов потоки распределяют работу внутри процесса.
Что этоАсинхронность — выполнение с задержкой (очереди, фоновые задачи, уведомления).
Зачем QAQA проверяет таймауты, ретраи, отсутствие дублей, порядок событий.
Как тестироватьПрактический чек‑лист:
  • порог ожидания
  • ретраи и дубли
  • идемпотентность
ПримерВебхук пришел дважды — обработали один раз.
Типовые ошибкиНа что чаще всего «падает»:
  • дубли уведомлений
Как протестировать зависимость между несколькими системами (интеграция)?
Проверяем цепочку запросов, корректность данных на каждом шаге. Используем моки, чтобы изолировать сбойный компонент.
ПримерQA проверяет, что данные из CRM корректно приходят в биллинг.
Что этоИнтеграция — взаимодействие систем (форматы, статусы, ретраи, идемпотентность).
Зачем QAQA тестирует не только успех, но и сбои одной стороны.
Как тестироватьПрактический чек‑лист:
  • контракт и схемы
  • 4xx/5xx/таймаут
  • идемпотентность
ПримерПровайдер прислал вебхук дважды — нет дублей.
Типовые ошибкиНа что чаще всего «падает»:
  • дубли при повторах