Перейти к основному содержимому

200 вопросов по тестированию ПО

200 вопросов по тестированию ПО

Основы тестирования программного обеспечения

Вопрос

Что такое тестирование программного обеспечения?

Ответ

Тестирование программного обеспечения — это процесс проверки соответствия системы заданным требованиям и выявление дефектов путём выполнения программы под контролируемыми условиями.


Вопрос

Зачем нужно тестирование ПО?

Ответ

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


Вопрос

Что такое качество программного обеспечения?

Ответ

Качество программного обеспечения — это степень, в которой система удовлетворяет заявленным и предполагаемым потребностям пользователей, включая функциональность, надёжность, удобство использования, производительность, безопасность и сопровождаемость.


Вопрос

Какие основные цели тестирования?

Ответ

Основные цели тестирования:

  • Обнаружение дефектов.
  • Подтверждение соответствия требованиям.
  • Предоставление информации о качестве продукта заинтересованным сторонам.
  • Предотвращение появления дефектов за счёт раннего анализа требований и проектирования.

Вопрос

Что такое дефект (bug)?

Ответ

Дефект — это несоответствие между фактическим и ожидаемым поведением программного обеспечения при выполнении определённых условий.


Вопрос

Что такое ошибка (error), сбой (failure) и дефект (defect)? В чём разница?

Ответ

  • Ошибка — неверное действие человека (например, программиста), приводящее к дефекту.
  • Дефект — неисправность в коде или документации.
  • Сбой — внешнее проявление дефекта во время выполнения программы, когда система ведёт себя некорректно.

Вопрос

Что такое тест-кейс?

Ответ

Тест-кейс — это набор входных данных, предусловий, шагов выполнения и ожидаемого результата, предназначенный для проверки конкретного аспекта поведения системы.


Вопрос

Из каких частей состоит тест-кейс?

Ответ

Тест-кейс обычно включает:

  • Уникальный идентификатор.
  • Название.
  • Предусловия.
  • Шаги выполнения.
  • Ожидаемый результат.
  • Постусловия (при необходимости).
  • Приоритет или серьёзность.

Вопрос

Что такое тестовая документация?

Ответ

Тестовая документация — это совокупность документов, используемых в процессе тестирования: план тестирования, стратегия, чек-листы, тест-кейсы, отчёты о багах, матрица трассировки требований и другие артефакты.


Вопрос

Что такое тест-план?

Ответ

Тест-план — это документ, описывающий цели, подход, ресурсы, расписание и действия, необходимые для выполнения тестирования проекта или его части.


Вопрос

Что такое проверка (verification) и подтверждение (validation)?

Ответ

  • Проверка (verification) — это процесс оценки того, правильно ли система построена (соответствует ли спецификациям). Пример: ревью кода.
  • Подтверждение (validation) — это процесс оценки того, правильно ли построена нужная система (удовлетворяет ли требованиям пользователя). Пример: выполнение тестов.

Вопрос

В чём разница между тестированием и отладкой?

Ответ

Тестирование — это процесс обнаружения дефектов. Отладка — это процесс анализа и устранения причин этих дефектов разработчиком.


Вопрос

Что такое регрессионное тестирование?

Ответ

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


Вопрос

Что такое smoke-тестирование?

Ответ

Smoke-тестирование — это базовый набор тестов, выполняемый после сборки, чтобы проверить, пригодна ли сборка для дальнейшего тестирования. Если smoke-тесты падают, сборка считается нерабочей.


Вопрос

Что такое sanity-тестирование?

Ответ

Sanity-тестирование — это узконаправленная проверка конкретной функции или исправления после небольшого изменения, чтобы подтвердить, что логика работает корректно.


Вопрос

В чём разница между smoke и sanity тестированием?

Ответ

  • Smoke-тестирование охватывает ключевые функции всей системы и проверяет общую работоспособность сборки.
  • Sanity-тестирование фокусируется на конкретной области или исправлении и проводится после небольших изменений.

Вопрос

Что такое позитивное и негативное тестирование?

Ответ

  • Позитивное тестирование проверяет поведение системы при корректных входных данных.
  • Негативное тестирование проверяет реакцию системы на некорректные, неожиданные или граничные входные данные.

Вопрос

Что такое exploratory testing?

Ответ

Exploratory testing — это подход к тестированию, при котором проектирование тестов и их выполнение происходят одновременно, основываясь на знаниях тестировщика и исследовании системы в реальном времени.


Вопрос

Что такое ad-hoc тестирование?

Ответ

Ad-hoc тестирование — это неформальный метод тестирования без предварительного планирования и документирования тестов, направленный на быстрое обнаружение очевидных дефектов.


Вопрос

Что такое тестирование «чёрного ящика»?

Ответ

Тестирование «чёрного ящика» — это метод, при котором тестировщик проверяет функциональность системы, не имея доступа к внутренней структуре или коду, основываясь только на требованиях и спецификациях.


Вопрос

Что такое тестирование «белого ящика»?

Ответ

Тестирование «белого ящика» — это метод, при котором тестировщик имеет доступ к внутренней структуре кода и проектирует тесты на основе логики реализации, покрытия путей, ветвлений и операторов.


Вопрос

Что такое серое поле (grey box testing)?

Ответ

Серое поле — это гибридный подход, при котором тестировщик частично знает внутреннюю структуру системы (например, архитектуру или базу данных), но тестирует её преимущественно как конечный пользователь.


Вопрос

Что такое покрытие требований?

Ответ

Покрытие требований — это метрика, показывающая, какие требования были проверены хотя бы одним тест-кейсом. Обычно отслеживается через матрицу трассировки требований (RTM).


Вопрос

Что такое RTM (Requirement Traceability Matrix)?

Ответ

RTM — это таблица, связывающая требования с тест-кейсами, чтобы гарантировать, что каждое требование покрыто тестами и позволяет отслеживать статус проверки каждого требования.


Вопрос

Что такое приоритет и серьёзность бага?

Ответ

  • Серьёзность (severity) — степень влияния дефекта на работу системы (например, критический, мажор, минор).
  • Приоритет (priority) — срочность исправления дефекта с точки зрения бизнеса или графика (например, high, medium, low).

Вопрос

Может ли баг иметь высокую серьёзность, но низкий приоритет?

Ответ

Да. Например, критическая ошибка в функции, которая будет удалена в следующем релизе, может иметь высокую серьёзность, но низкий приоритет исправления.


Вопрос

Что такое жизненный цикл бага (bug lifecycle)?

Ответ

Жизненный цикл бага — это последовательность состояний, через которые проходит дефект: New → Assigned → Open → Fixed → Retest → Verified → Closed (или Reopened, если не исправлен).


Вопрос

Что такое retesting?

Ответ

Retesting — это повторное выполнение конкретного теста, который ранее выявил дефект, чтобы убедиться, что исправление устранило проблему.


Вопрос

В чём разница между retesting и регрессионным тестированием?

Ответ

  • Retesting проверяет, исправлен ли конкретный дефект.
  • Регрессионное тестирование проверяет, не появились ли новые дефекты в других частях системы из-за исправления.

Вопрос

Что такое тестовое окружение?

Ответ

Тестовое окружение — это конфигурация аппаратного и программного обеспечения, на которой выполняется тестирование: серверы, базы данных, сети, браузеры, версии ОС и другие компоненты, имитирующие production-среду.


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

Вопрос

Что такое функциональное тестирование?

Ответ

Функциональное тестирование — это проверка того, соответствует ли поведение системы описанным в требованиях функциям. Оно фокусируется на том, что система делает, а не на том, как она это делает.


Вопрос

Что такое нефункциональное тестирование?

Ответ

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


Вопрос

Какие основные виды нефункционального тестирования?

Ответ

Основные виды нефункционального тестирования:

  • Нагрузочное (load testing).
  • Стресс-тестирование (stress testing).
  • Тестирование производительности (performance testing).
  • Тестирование отказоустойчивости (reliability testing).
  • Тестирование масштабируемости (scalability testing).
  • Тестирование юзабилити (usability testing).
  • Тестирование безопасности (security testing).
  • Тестирование совместимости (compatibility testing).

Вопрос

Что такое нагрузочное тестирование?

Ответ

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


Вопрос

Что такое стресс-тестирование?

Ответ

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


Вопрос

Что такое тестирование производительности?

Ответ

Тестирование производительности — это общий термин, охватывающий оценку скорости, времени отклика, пропускной способности и стабильности системы под различными условиями нагрузки.


Вопрос

Что такое тестирование безопасности?

Ответ

Тестирование безопасности — это процесс выявления уязвимостей, угроз и рисков в системе, которые могут привести к утечке данных, несанкционированному доступу или другим инцидентам.


Вопрос

Что такое тестирование совместимости?

Ответ

Тестирование совместимости — это проверка корректной работы программного обеспечения в различных окружениях: операционных системах, браузерах, устройствах, версиях зависимостей и сетевых конфигурациях.


Вопрос

Что такое кросс-браузерное тестирование?

Ответ

Кросс-браузерное тестирование — это подвид тестирования совместимости, направленный на проверку одинакового отображения и функционирования веб-приложения в разных браузерах и их версиях.


Вопрос

Что такое мобильное тестирование?

Ответ

Мобильное тестирование — это проверка приложений, разработанных для мобильных устройств, с учётом особенностей платформ (iOS, Android), экранов, сенсоров, сетевых условий и энергопотребления.


Вопрос

Что такое локализационное тестирование?

Ответ

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


Вопрос

Что такое интернационализационное тестирование?

Ответ

Интернационализационное тестирование — это проверка готовности приложения к локализации: поддержка Unicode, изолированные строковые ресурсы, гибкая верстка, отсутствие жёстко закодированных сообщений.


Вопрос

Что такое тестирование установки и развёртывания?

Ответ

Тестирование установки и развёртывания — это проверка корректности процессов установки, обновления, настройки и удаления программного обеспечения в целевых окружениях.


Вопрос

Что такое тестирование восстановления (recovery testing)?

Ответ

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


Вопрос

Что такое тестирование конфигураций?

Ответ

Тестирование конфигураций — это проверка работы системы при различных комбинациях настроек: параметров запуска, файлов конфигурации, переменных окружения, профилей пользователя.


Вопрос

Что такое тестирование API?

Ответ

Тестирование API — это проверка интерфейсов взаимодействия между компонентами или системами: корректность запросов, ответов, статус-кодов, обработка ошибок, безопасность и производительность.


Вопрос

Что такое контрактное тестирование?

Ответ

Контрактное тестирование — это проверка соблюдения соглашения между потребителями и поставщиками сервиса относительно формата, структуры и поведения API.


Вопрос

Что такое end-to-end тестирование?

Ответ

End-to-end тестирование — это проверка полного пользовательского сценария от начала до конца через все компоненты системы, включая внешние зависимости, как если бы его выполнял реальный пользователь.


Вопрос

Что такое интеграционное тестирование?

Ответ

Интеграционное тестирование — это проверка взаимодействия между модулями, компонентами или системами после их объединения, с целью выявления дефектов в интерфейсах и потоках данных.


Вопрос

Что такое системное тестирование?

Ответ

Системное тестирование — это комплексная проверка всей интегрированной системы на соответствие заданным требованиям в условиях, максимально приближенных к production-среде.


Вопрос

Что такое приёмочное тестирование?

Ответ

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


Вопрос

Что такое UAT (User Acceptance Testing)?

Ответ

UAT — это форма приёмочного тестирования, выполняемая конечными пользователями или их представителями в реалистичной среде для подтверждения готовности системы к использованию в рабочих процессах.


Вопрос

Что такое alpha- и beta-тестирование?

Ответ

  • Alpha-тестирование проводится внутри компании или ограниченной группой доверенных пользователей до публичного релиза.
  • Beta-тестирование проводится внешними пользователями в реальных условиях после завершения внутреннего тестирования, но до официального выпуска.

Вопрос

Что такое тестирование на основе рисков?

Ответ

Тестирование на основе рисков — это подход, при котором усилия сосредоточены на тех областях системы, где вероятность появления критических дефектов или последствий от них наиболее высока.


Вопрос

Что такое тестирование доступности (accessibility testing)?

Ответ

Тестирование доступности — это проверка того, насколько продукт может использоваться людьми с ограниченными возможностями: слепыми, слабовидящими, с нарушениями моторики и другими особенностями.


Вопрос

Что такое тестирование документации?

Ответ

Тестирование документации — это проверка точности, полноты, ясности и актуальности пользовательских руководств, справочных материалов, API-документации и других текстовых артефактов.


Вопрос

Что такое тестирование базы данных?

Ответ

Тестирование базы данных — это проверка корректности схемы, триггеров, хранимых процедур, целостности данных, производительности запросов и согласованности между приложением и СУБД.


Вопрос

Что такое тестирование миграций?

Ответ

Тестирование миграций — это проверка корректности переноса данных и структур из одной версии системы или базы данных в другую без потерь, искажений и простоев.


Вопрос

Что такое тестирование обратной совместимости?

Ответ

Тестирование обратной совместимости — это проверка того, что новая версия системы корректно работает с данными, конфигурациями или клиентами, созданными для предыдущих версий.


Вопрос

Что такое тестирование прямой совместимости?

Ответ

Тестирование прямой совместимости — это проверка возможности старых версий системы работать с данными или сервисами, созданными для новых версий (например, старый клиент с новым API).


Вопрос

Что такое тестирование отказоустойчивости?

Ответ

Тестирование отказоустойчивости — это проверка способности системы продолжать функционировать (полностью или частично) при возникновении сбоев в одном или нескольких компонентах.


Методологии и процессы тестирования

Вопрос

Что такое V-модель разработки?

Ответ

V-модель — это модель жизненного цикла разработки ПО, в которой каждому этапу разработки соответствует конкретный этап тестирования: анализ требований → приёмочное тестирование, проектирование → системное тестирование, детальное проектирование → интеграционное тестирование, кодирование → модульное тестирование.


Вопрос

Что такое водопадная модель (Waterfall)?

Ответ

Водопадная модель — это последовательная модель разработки, в которой каждый этап завершается полностью до начала следующего: требования → проектирование → реализация → тестирование → развёртывание. Тестирование выполняется только после завершения кодирования.


Вопрос

Как устроено тестирование в Agile?

Ответ

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


Вопрос

Что такое Shift-Left Testing?

Ответ

Shift-Left Testing — это практика переноса тестирования на более ранние этапы жизненного цикла разработки: анализ требований, проектирование и написание кода. Цель — предотвратить появление дефектов, а не только их обнаруживать.


Вопрос

Что такое Shift-Right Testing?

Ответ

Shift-Right Testing — это практика продолжения тестирования после выпуска продукта в production: мониторинг поведения пользователей, сбор логов, A/B-тестирование, канареечные релизы. Цель — выявлять проблемы в реальных условиях эксплуатации.


Вопрос

Что такое Continuous Testing?

Ответ

Continuous Testing — это стратегия, при которой автоматизированные тесты выполняются на каждом этапе конвейера CI/CD для обеспечения немедленной обратной связи о качестве и рисках.


Вопрос

Какова роль тестировщика в Scrum-команде?

Ответ

Тестировщик в Scrum-команде — полноценный участник кросс-функциональной группы. Он участвует в планировании спринта, оценке задач, написании и выполнении тестов, анализе дефектов и демонстрации результатов. Его цель — обеспечить готовность инкремента к релизу.


Вопрос

Что такое Definition of Done (DoD) и как оно связано с тестированием?

Ответ

Definition of Done — это соглашение команды о критериях завершения задачи. Оно обычно включает требования к тестированию: покрытие unit- и интеграционными тестами, прохождение всех автоматизированных проверок, отсутствие критических багов.


Вопрос

Что такое тестовая тактика и тестовая стратегия?

Ответ

  • Тестовая стратегия — это высокоуровневый план, определяющий подход к тестированию на уровне проекта или организации: цели, методы, ресурсы, метрики.
  • Тестовая тактика — это конкретные действия и техники, применяемые в рамках стратегии для достижения целей тестирования.

Вопрос

Что такое тестовый подход (test approach)?

Ответ

Тестовый подход — это выбранный способ организации тестирования: например, risk-based, model-based, exploratory, scripted, keyword-driven. Он определяет, какие виды тестов будут использоваться и как они будут проектироваться и выполняться.


Вопрос

Что такое тестовый уровень?

Ответ

Тестовый уровень — это стадия в жизненном цикле тестирования, на которой проводится определённый тип проверок: модульное, интеграционное, системное, приёмочное тестирование.


Вопрос

Кто такой QA-инженер и чем он отличается от тестировщика?

Ответ

QA-инженер (инженер по обеспечению качества) фокусируется на процессах, стандартах и предотвращении дефектов на всех этапах разработки. Тестировщик чаще сосредоточен на выполнении тестов и обнаружении багов. На практике роли часто совпадают, особенно в небольших командах.


Вопрос

Что такое SDET?

Ответ

SDET (Software Development Engineer in Test) — это инженер, сочетающий навыки разработки и тестирования. Он создаёт фреймворки автоматизации, пишет тестовый код на том же уровне, что и production-код, и активно участвует в архитектуре тестовой инфраструктуры.


Вопрос

Что такое тестовая зрелость (Test Maturity)?

Ответ

Тестовая зрелость — это степень развития процессов тестирования в организации: от хаотичных и реактивных действий до предсказуемых, измеримых, оптимизированных и непрерывно улучшаемых практик.


Вопрос

Что такое TMMi (Test Maturity Model integration)?

Ответ

TMMi — это модель оценки и улучшения процессов тестирования, состоящая из пяти уровней зрелости: начальный, управляемый, определённый, измеряемый и оптимизирующий. Она помогает организациям систематически повышать качество тестирования.


Вопрос

Что такое тест-менеджмент?

Ответ

Тест-менеджмент — это планирование, организация, контроль и отчётность по всем аспектам тестирования: распределение ролей, оценка усилий, управление рисками, координация с другими командами, анализ результатов.


Вопрос

Что такое тест-аналитик?

Ответ

Тест-аналитик — специалист, занимающийся анализом требований, проектированием тестовых сценариев, созданием чек-листов и тест-кейсов, а также участвующий в оценке покрытия и качества тестирования.


Вопрос

Что такое тест-дизайн?

Ответ

Тест-дизайн — это процесс проектирования тестовых условий и тест-кейсов на основе анализа требований, рисков и спецификаций системы.


Вопрос

Какие основные техники тест-дизайна?

Ответ

Основные техники тест-дизайна:

  • Эквивалентное разбиение.
  • Анализ граничных значений.
  • Таблицы решений.
  • Попарное тестирование (pairwise).
  • Тестирование переходов состояний.
  • Сценарное тестирование.
  • Ошибочные предположения (error guessing).

Вопрос

Что такое эквивалентное разбиение?

Ответ

Эквивалентное разбиение — это техника, при которой входные данные делятся на классы эквивалентности, где все значения в классе ведут себя одинаково. Достаточно протестировать одно значение из каждого класса.


Вопрос

Что такое анализ граничных значений?

Ответ

Анализ граничных значений — это техника тестирования, основанная на том, что ошибки чаще всего возникают на границах диапазонов допустимых значений. Проверяются значения на границе и сразу за ней (например, 0, 1, 99, 100 для диапазона 1–99).


Вопрос

Что такое таблицы решений?

Ответ

Таблицы решений — это техника, используемая для тестирования бизнес-логики, зависящей от комбинации условий. Каждая строка таблицы представляет уникальную комбинацию входных условий и ожидаемое действие.


Вопрос

Что такое попарное тестирование?

Ответ

Попарное тестирование — это метод, при котором тестируются все возможные пары входных параметров, а не все возможные комбинации. Это значительно сокращает количество тестов при сохранении высокой эффективности обнаружения дефектов.


Вопрос

Что такое тестирование переходов состояний?

Ответ

Тестирование переходов состояний — это техника, применяемая к системам, поведение которых зависит от текущего состояния. Тесты проверяют корректность переходов между состояниями при различных событиях.


Вопрос

Что такое сценарное тестирование?

Ответ

Сценарное тестирование — это проектирование тестов на основе реальных пользовательских сценариев или историй использования, часто взятых из user stories или требований заказчика.


Вопрос

Что такое error guessing?

Ответ

Error guessing — это неформальная техника, при которой тестировщик использует свой опыт и интуицию для предсказания мест, где наиболее вероятно появление ошибок, и создаёт тесты для их проверки.


Вопрос

Что такое метрики тестирования?

Ответ

Метрики тестирования — это количественные показатели, используемые для оценки прогресса, качества и эффективности тестирования: покрытие требований, покрытие кода, количество найденных/закрытых багов, плотность дефектов, время выполнения тестов.


Вопрос

Что такое покрытие кода?

Ответ

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


Вопрос

Что такое defect leakage?

Ответ

Defect leakage — это количество дефектов, не обнаруженных на предыдущих этапах тестирования и найденных на более поздних (например, в production). Используется для оценки эффективности тестовых процессов.


Вопрос

Что такое defect clustering?

Ответ

Defect clustering — это принцип, согласно которому большинство дефектов сосредоточено в относительно небольшом числе модулей. Это позволяет фокусировать тестовые усилия на проблемных областях.


Вопрос

Что такое pesticide paradox?

Ответ

Pesticide paradox — это явление, при котором повторное использование одного и того же набора тестов со временем перестаёт находить новые дефекты. Для борьбы с этим необходимо регулярно обновлять и расширять тестовые наборы.


Инструменты и автоматизация тестирования

Вопрос

Что такое автоматизированное тестирование?

Ответ

Автоматизированное тестирование — это выполнение тестов с использованием специализированных инструментов или скриптов вместо ручного запуска. Оно применяется для повышения скорости, точности и повторяемости проверок, особенно в регрессионном и нагрузочном тестировании.


Вопрос

Какие преимущества автоматизации тестирования?

Ответ

Преимущества автоматизации:

  • Повторяемость без усталости.
  • Высокая скорость выполнения.
  • Возможность запуска в любое время (например, ночью).
  • Поддержка сложных сценариев (нагрузка, параллелизм).
  • Интеграция в CI/CD-конвейеры.
  • Снижение стоимости поддержки при частых релизах.

Вопрос

Какие недостатки автоматизации тестирования?

Ответ

Недостатки автоматизации:

  • Высокие первоначальные затраты на разработку и поддержку.
  • Не подходит для тестирования UX/UI без дополнительных средств.
  • Требует технических навыков от тестировщика.
  • Автоматизированные тесты не заменяют исследовательское тестирование.
  • Частые изменения интерфейса приводят к необходимости обновления скриптов.

Вопрос

Когда стоит автоматизировать тесты?

Ответ

Тесты целесообразно автоматизировать, если они:

  • Выполняются часто (например, регрессионные).
  • Стабильны и редко меняются.
  • Требуют больших объёмов данных или повторений.
  • Являются критически важными для бизнеса.
  • Имеют чёткие входные и выходные условия.

Вопрос

Какие виды тестов чаще всего автоматизируют?

Ответ

Чаще всего автоматизируют:

  • Модульные (unit) тесты.
  • Интеграционные тесты.
  • API-тесты.
  • Регрессионные тесты.
  • Нагрузочные и стресс-тесты.
  • Smoke- и sanity-тесты.

Вопрос

Что такое фреймворк автоматизации тестирования?

Ответ

Фреймворк автоматизации тестирования — это набор правил, библиотек, инструментов и практик, обеспечивающих структурированную и масштабируемую реализацию автоматизированных тестов. Он включает подход к организации кода, управление данными, отчётность и запуск тестов.


Вопрос

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

Ответ

Популярные фреймворки автоматизации:

  • Selenium WebDriver — для UI-тестирования веб-приложений.
  • Playwright — современный инструмент для end-to-end тестирования веба.
  • Cypress — фреймворк с быстрым выполнением и отладкой в реальном времени.
  • Appium — для мобильного тестирования (iOS/Android).
  • JUnit / TestNG — для Java unit- и интеграционных тестов.
  • PyTest / unittest — для Python.
  • NUnit / xUnit / MSTest — для .NET.
  • Postman / REST Assured — для API-тестирования.

Вопрос

Что такое Selenium WebDriver?

Ответ

Selenium WebDriver — это инструмент с открытым исходным кодом для автоматизации взаимодействия с веб-браузерами. Он позволяет управлять браузером программно: открывать страницы, кликать элементы, вводить текст, проверять содержимое.

Пример на Python:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")
assert "Example" in driver.title
driver.quit()

Вопрос

Что такое Page Object Model (POM)?

Ответ

Page Object Model — это паттерн проектирования тестов, при котором каждая веб-страница представлена как отдельный класс. Элементы страницы инкапсулированы в свойства, а действия — в методы. Это повышает читаемость, поддерживаемость и переиспользуемость тестового кода.

Пример на C#:

public class LoginPage
{
private IWebDriver driver;
private By usernameField = By.Id("username");
private By passwordField = By.Id("password");
private By loginButton = By.Id("loginBtn");

public LoginPage(IWebDriver driver)
{
this.driver = driver;
}

public void Login(string user, string pass)
{
driver.FindElement(usernameField).SendKeys(user);
driver.FindElement(passwordField).SendKeys(pass);
driver.FindElement(loginButton).Click();
}
}

Вопрос

Что такое headless-браузер?

Ответ

Headless-браузер — это браузер без графического интерфейса, запускаемый в фоновом режиме. Он используется для автоматизации тестов, парсинга и других задач, где визуальный вывод не требуется. Примеры: Chrome Headless, Firefox Headless.


Вопрос

Что такое CI/CD и как он связан с тестированием?

Ответ

CI/CD (Continuous Integration / Continuous Delivery or Deployment) — это практика автоматической сборки, тестирования и развёртывания кода при каждом изменении. Тестирование интегрировано в этот процесс: после коммита запускаются автоматизированные тесты, и только при их успешном прохождении код попадает в production.


Вопрос

Какие метрики используются для оценки эффективности автоматизации?

Ответ

Метрики автоматизации:

  • Процент автоматизированных тестов от общего числа.
  • Время выполнения тестового набора.
  • Частота ложных срабатываний (flaky tests).
  • Покрытие требований/функциональности.
  • ROI (возврат на инвестиции) от автоматизации.
  • Количество найденных дефектов до релиза.

Вопрос

Что такое flaky test?

Ответ

Flaky test — это тест, который иногда проходит, а иногда падает при одних и тех же условиях. Причины: гонки потоков, внешние зависимости, таймауты, нестабильная среда. Такие тесты снижают доверие к автоматизации и требуют исправления.


Вопрос

Что такое TDD (Test-Driven Development)?

Ответ

TDD — это методология разработки, при которой сначала пишется автоматизированный тест, описывающий желаемое поведение, затем — минимальный код для прохождения теста, и далее — рефакторинг. Цикл: Red → Green → Refactor.


Вопрос

Что такое BDD (Behavior-Driven Development)?

Ответ

BDD — это расширение TDD, ориентированное на описание поведения системы на языке, понятном бизнесу. Используются конструкции вида «Given-When-Then». Инструменты: Cucumber, SpecFlow, Behave.

Пример сценария на Gherkin:

Feature: Login
Scenario: Successful login
Given the user is on the login page
When they enter valid credentials
Then they should be redirected to the dashboard

Вопрос

Что такое mocking и stubbing?

Ответ

  • Mocking — создание имитации зависимостей (например, сервисов или баз данных) для изоляции тестируемого компонента. Mock-объекты могут проверять, вызывались ли определённые методы.
  • Stubbing — предоставление заранее заданных ответов от зависимостей без логики вызова.

Пример на Python с unittest.mock:

from unittest.mock import Mock

service = Mock()
service.get_user.return_value = {"name": "Alice"}
result = service.get_user(1)
assert result["name"] == "Alice"

Вопрос

Что такое контрактное тестирование и какие инструменты для него используются?

Ответ

Контрактное тестирование проверяет соответствие между потребителем и поставщиком API. Инструменты: Pact, Spring Cloud Contract. Они генерируют «контракт» — файл, описывающий ожидаемые запросы и ответы, который проверяется на обеих сторонах.


Вопрос

Что такое тестовые данные и как их управлять?

Ответ

Тестовые данные — это входные значения, используемые для выполнения тестов. Управление включает:

  • Генерацию (например, Faker).
  • Изоляцию (чтобы тесты не влияли друг на друга).
  • Очистку после выполнения.
  • Хранение в файлах (JSON, CSV) или базах данных.
  • Использование параметризованных тестов.

Вопрос

Что такое параллельное выполнение тестов?

Ответ

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


Вопрос

Что такое визуальное тестирование?

Ответ

Визуальное тестирование — это сравнение скриншотов интерфейса с эталонными изображениями для выявления неожиданных изменений в оформлении. Инструменты: Applitools, Percy, Playwright Visual Comparisons.


Вопрос

Что такое accessibility testing tools?

Ответ

Инструменты тестирования доступности проверяют соответствие веб-контента стандартам WCAG. Примеры: axe, Lighthouse, WAVE. Они анализируют контраст, наличие альтернативного текста, семантику HTML и другие аспекты.


Вопрос

Что такое mutation testing?

Ответ

Mutation testing — это метод оценки качества тестов путём внесения небольших изменений (мутаций) в код и проверки, обнаружат ли тесты эти изменения. Если мутант «выжил», тесты недостаточно полны.


Вопрос

Что такое code coverage и как её измеряют?

Ответ

Code coverage — это метрика, показывающая, какой процент исходного кода был выполнен во время тестов. Измеряется инструментами: JaCoCo (Java), Coverage.py (Python), dotCover (.NET), Istanbul (JavaScript).


Вопрос

Что такое тестовая среда (test environment)?

Ответ

Тестовая среда — это изолированная инфраструктура, воспроизводящая конфигурацию production: серверы, базы данных, сети, версии ПО. Она необходима для достоверного тестирования без риска для основной системы.


Вопрос

Что такое тестовый стенд?

Ответ

Тестовый стенд — это конкретный экземпляр тестовой среды, подготовленный для выполнения определённого набора тестов. Может быть временным (для одного прогона) или постоянным.


Вопрос

Что такое canary-релиз и как он связан с тестированием?

Ответ

Canary-релиз — это стратегия развёртывания, при которой новая версия выпускается сначала небольшой группе пользователей. Тестирование происходит в реальных условиях: собираются метрики, логи, обратная связь. При успехе — развёртывание расширяется.


Вопрос

Что такое feature toggle и как он помогает тестированию?

Ответ

Feature toggle — это механизм включения/выключения функций без пересборки кода. Он позволяет выпускать незавершённые функции в production, но скрывать их от пользователей. Тестировщики могут включать такие функции для проверки в реальной среде.


Вопрос

Что такое chaos engineering и как оно связано с тестированием?

Ответ

Chaos engineering — это практика преднамеренного внесения сбоев в систему (отказ узлов, сетевые задержки) для проверки её устойчивости. Инструменты: Chaos Monkey, Gremlin. Это форма стресс- и отказоустойчивого тестирования в production-like условиях.


Вопрос

Что такое observability и как она помогает QA?

Ответ

Observability — это способность системы предоставлять данные (логи, метрики, трейсы), позволяющие понять её внутреннее состояние. QA использует эти данные для анализа сбоев, воспроизведения багов и проверки поведения в production.


Вопрос

Что такое synthetic monitoring?

Ответ

Synthetic monitoring — это автоматизированная проверка доступности и производительности приложения из внешних точек (например, через Pingdom или Datadog). Это форма непрерывного тестирования в production.


Вопрос

Что такое A/B-тестирование и как оно связано с QA?

Ответ

A/B-тестирование — это сравнение двух версий интерфейса или функции на реальных пользователях для выбора более эффективной. QA участвует в подготовке корректной реализации вариантов, проверке изоляции и сборе данных.


Тест-дизайн и техники проектирования тестов

Вопрос

Что такое тест-дизайн?

Ответ

Тест-дизайн — это процесс анализа требований, рисков и спецификаций с целью создания эффективных тестовых условий и тест-кейсов, обеспечивающих максимальное покрытие и обнаружение дефектов.


Вопрос

Какие цели тест-дизайна?

Ответ

Цели тест-дизайна:

  • Обеспечить полноту проверки функциональности.
  • Минимизировать количество избыточных тестов.
  • Повысить вероятность обнаружения критических дефектов.
  • Сделать тесты воспроизводимыми и поддерживаемыми.

Вопрос

Что такое эквивалентное разбиение?

Ответ

Эквивалентное разбиение — это техника, при которой входные данные делятся на классы эквивалентности, где все значения в классе ведут себя одинаково. Достаточно выбрать по одному значению из каждого класса для тестирования.

Пример: поле «Возраст» принимает значения от 18 до 65.
Классы:

  • Недопустимый: <18
  • Допустимый: 18–65
  • Недопустимый: >65

Тесты: 17, 30, 66.


Вопрос

Что такое анализ граничных значений?

Ответ

Анализ граничных значений — это техника тестирования, основанная на том, что ошибки чаще всего возникают на границах допустимых диапазонов. Проверяются значения на границе и сразу за ней.

Пример: диапазон 1–100 → тестируются значения 0, 1, 2, 99, 100, 101.


Вопрос

Что такое таблицы решений?

Ответ

Таблицы решений — это техника, используемая для тестирования бизнес-логики, зависящей от комбинации условий. Каждая строка представляет уникальную комбинацию входных условий и ожидаемое действие.

Пример: система скидок:

  • Условия: клиент постоянный? (да/нет), сумма > 1000? (да/нет)
  • Результат: скидка 10%, 5% или 0%.

Вопрос

Что такое попарное тестирование (pairwise testing)?

Ответ

Попарное тестирование — это метод, при котором тестируются все возможные пары входных параметров, а не все возможные комбинации. Это значительно сокращает количество тестов при сохранении высокой эффективности обнаружения дефектов.

Инструменты: PICT, AllPairs.


Вопрос

Что такое тестирование переходов состояний?

Ответ

Тестирование переходов состояний — это техника, применяемая к системам, поведение которых зависит от текущего состояния. Тесты проверяют корректность переходов между состояниями при различных событиях.

Пример: ATM — состояния: «ожидание карты», «ввод PIN», «выбор операции», «выдача наличных».


Вопрос

Что такое сценарное тестирование?

Ответ

Сценарное тестирование — это проектирование тестов на основе реальных пользовательских сценариев или историй использования, часто взятых из user stories или требований заказчика.

Пример: «Пользователь регистрируется, логинится, добавляет товар в корзину, оплачивает заказ».


Вопрос

Что такое error guessing?

Ответ

Error guessing — это неформальная техника, при которой тестировщик использует свой опыт и интуицию для предсказания мест, где наиболее вероятно появление ошибок, и создаёт тесты для их проверки.

Пример: ввод пустой строки, SQL-инъекция в поле поиска, отключение интернета во время загрузки.


Вопрос

Что такое классы эквивалентности?

Ответ

Классы эквивалентности — это подмножества входных данных, которые система обрабатывает одинаково. Один тест из класса считается достаточным для проверки всего класса.


Вопрос

Как комбинировать техники тест-дизайна?

Ответ

Техники комбинируются для повышения покрытия:

  • Анализ граничных значений применяется внутри классов эквивалентности.
  • Таблицы решений используются для сложной логики, а сценарное тестирование — для end-to-end потоков.
  • Pairwise — для конфигураций с множеством параметров.

Вопрос

Что такое тестовые оракулы?

Ответ

Тестовый оракул — это механизм или источник, позволяющий определить ожидаемый результат теста. Это может быть спецификация, эталонная система, математическая формула или экспертное мнение.


Вопрос

Что такое оракульность (oracle problem)?

Ответ

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


Вопрос

Что такое чек-лист в тестировании?

Ответ

Чек-лист — это упрощённая форма тестовой документации, представляющая собой список тем или условий для проверки без детализации шагов. Используется в exploratory testing и быстрой проверке.

Пример:

  • Авторизация через Google
  • Восстановление пароля
  • Блокировка после 3 неудачных попыток

Вопрос

Когда использовать чек-листы вместо тест-кейсов?

Ответ

Чек-листы уместны:

  • При ограниченном времени.
  • Для опытных тестировщиков.
  • В exploratory-сессиях.
  • При частых изменениях требований.
  • Для smoke- и sanity-тестов.

Вопрос

Что такое тестовая матрица?

Ответ

Тестовая матрица — это таблица, связывающая условия, входные данные, ожидаемые результаты и фактические результаты. Часто используется как упрощённая альтернатива набору тест-кейсов.


Вопрос

Что такое дерева решений в тест-дизайне?

Ответ

Дерево решений — это графическое представление последовательности решений и условий, используемое для моделирования сложной бизнес-логики и генерации тестовых путей.


Вопрос

Что такое cause-effect graphing?

Ответ

Cause-effect graphing — это техника, при которой сначала строится граф причин (входы) и следствий (выходы), затем преобразуется в таблицу решений для генерации тестов. Подходит для сложных систем с множеством зависимостей.


Вопрос

Что такое тестирование на основе рисков в контексте тест-дизайна?

Ответ

Тестирование на основе рисков в тест-дизайне означает, что приоритет при создании тестов отдаётся тем областям, где:

  • Вероятность дефекта высока.
  • Последствия сбоя критичны.
  • Покрытие недостаточно.
  • Изменения были значительными.

Вопрос

Как учитывать данные при тест-дизайне?

Ответ

При тест-дизайне учитываются:

  • Типы данных (строка, число, дата).
  • Диапазоны и ограничения.
  • Форматы (email, телефон, ИНН).
  • Локализация (язык, валюта).
  • Граничные и специальные значения (null, пустая строка, Unicode).

Вопрос

Что такое data-driven testing?

Ответ

Data-driven testing — это подход, при котором один и тот же тестовый сценарий выполняется с разными наборами входных данных, обычно загружаемых из внешних источников: CSV, Excel, JSON, базы данных.


Вопрос

Как проектировать тесты для API?

Ответ

Тесты для API проектируются на основе:

  • Спецификации (OpenAPI/Swagger).
  • Ожидаемых статус-кодов.
  • Структуры запроса и ответа.
  • Валидации параметров.
  • Обработки ошибок.
  • Аутентификации и авторизации.

Пример на Python с requests:

import requests

response = requests.get("https://api.example.com/users/1")
assert response.status_code == 200
assert "name" in response.json()

Вопрос

Что такое contract testing в контексте тест-дизайна?

Ответ

Contract testing — это проектирование тестов на основе соглашения между потребителем и поставщиком API. Тесты проверяют, что обе стороны соблюдают контракт: формат, поля, типы, поведение при ошибках.


Вопрос

Как проектировать тесты для UI?

Ответ

Тесты для UI проектируются с учётом:

  • Визуальной целостности.
  • Навигации и потоков.
  • Обратной связи (ошибки, загрузки).
  • Адаптивности (разные экраны).
  • Доступности (клавиатура, скринридеры).
  • Локализации (тексты, даты).

Вопрос

Что такое accessibility test design?

Ответ

Accessibility test design — это проектирование тестов для проверки соответствия интерфейса стандартам доступности (WCAG): контраст, альтернативный текст, семантика HTML, навигация с клавиатуры.


Вопрос

Как проектировать тесты для мобильных приложений?

Ответ

Тесты для мобильных приложений учитывают:

  • Разные устройства и ОС.
  • Ориентацию экрана.
  • Сетевые условия (Wi-Fi, 4G, offline).
  • Жесты (свайп, pinch).
  • Уведомления и фон.
  • Энергопотребление и память.

Вопрос

Что такое тестирование локализации при проектировании?

Ответ

Тестирование локализации включает проверку:

  • Переводов на соответствие контексту.
  • Форматов дат, времени, чисел.
  • Расположения элементов (RTL-языки).
  • Длины текстов (переполнение).
  • Культурных особенностей (иконки, цвета).

Вопрос

Как проектировать тесты безопасности?

Ответ

Тесты безопасности проектируются для проверки:

  • Аутентификации и сессий.
  • Авторизации (роли, права).
  • Защиты от инъекций (SQL, XSS).
  • Конфиденциальности данных.
  • Безопасности API (rate limiting, CORS).
  • Настроек сервера и заголовков.

Вопрос

Что такое mutation testing в контексте тест-дизайна?

Ответ

Mutation testing — это техника оценки качества тестов, при которой в код вносятся небольшие изменения (мутации), и проверяется, обнаружат ли тесты эти изменения. Если мутант «выжил», тесты недостаточно полны.


Вопрос

Как проектировать тесты для производительности?

Ответ

Тесты производительности проектируются с учётом:

  • Ожидаемой нагрузки (пользователи/сек).
  • Целевых метрик (время отклика, пропускная способность).
  • Порогов отказа (ошибки, таймауты).
  • Мониторинга ресурсов (CPU, память, сеть).
  • Сценариев использования (пик, длительная нагрузка).

Вопрос

Что такое тестирование отказоустойчивости при проектировании?

Ответ

Тестирование отказоустойчивости проектируется для проверки:

  • Поведения при падении сервисов.
  • Времени восстановления.
  • Сохранения данных.
  • Грациозной деградации функциональности.
  • Логирования и алертинга.

Вопрос

Как документировать тест-дизайн?

Ответ

Тест-дизайн документируется в виде:

  • Таблиц решений.
  • Диаграмм состояний.
  • Чек-листов.
  • Тест-кейсов с предусловиями и шагами.
  • Матрицы трассировки требований.
  • Комментариев в автоматизированных тестах.

Управление тестированием и процессы QA

Вопрос

Что такое тест-менеджмент?

Ответ

Тест-менеджмент — это совокупность процессов по планированию, организации, контролю и отчётности в рамках тестирования: определение стратегии, оценка ресурсов, распределение задач, управление рисками, координация с командами и анализ результатов.


Вопрос

Какие основные обязанности тест-менеджера?

Ответ

Основные обязанности тест-менеджера:

  • Разработка тестовой стратегии и плана.
  • Оценка трудозатрат и сроков.
  • Формирование и управление командой.
  • Координация с разработкой, аналитиками и заказчиками.
  • Контроль качества и покрытия.
  • Подготовка отчётов и метрик.
  • Управление инцидентами и дефектами.

Вопрос

Что включает в себя тест-план?

Ответ

Тест-план включает:

  • Цели и объекты тестирования.
  • Подход и методы.
  • Тестовые элементы и исключения.
  • Критерии входа и выхода.
  • Расписание и ресурсы.
  • Риски и зависимости.
  • Инструменты и окружение.
  • Метрики и отчётность.

Вопрос

Что такое критерии входа (entry criteria)?

Ответ

Критерии входа — это условия, которые должны быть выполнены до начала тестирования: завершение кода, готовность окружения, наличие документации, утверждение требований.


Вопрос

Что такое критерии выхода (exit criteria)?

Ответ

Критерии выхода — это условия, при выполнении которых тестирование считается завершённым: все критические баги закрыты, достигнуто целевое покрытие, пройдены регрессионные тесты, одобрение стейкхолдеров.


Вопрос

Что такое матрица трассировки требований (RTM)?

Ответ

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


Вопрос

Как измеряется качество тестирования?

Ответ

Качество тестирования измеряется через метрики:

  • Покрытие требований и кода.
  • Количество найденных и закрытых дефектов.
  • Плотность дефектов (дефектов на функцию/модуль).
  • Утечка дефектов в production.
  • Время на обнаружение и исправление.
  • Процент автоматизированных тестов.
  • Стабильность тестового набора.

Вопрос

Что такое defect density?

Ответ

Defect density — это количество дефектов, приходящихся на единицу размера продукта (например, на 1000 строк кода или одну функцию). Используется для сравнения качества между модулями или проектами.


Вопрос

Что такое defect leakage?

Ответ

Defect leakage — это процент дефектов, не обнаруженных на предыдущих этапах тестирования и найденных на более поздних (например, в production). Высокая утечка указывает на слабые процессы тестирования.


Вопрос

Что такое test effort estimation?

Ответ

Test effort estimation — это оценка трудозатрат, необходимых для выполнения тестирования. Методы: экспертная оценка, аналогия с прошлыми проектами, декомпозиция задач, использование функциональных точек.


Вопрос

Какие риски типичны для тестирования?

Ответ

Типичные риски:

  • Неполные или меняющиеся требования.
  • Неготовность тестового окружения.
  • Дефицит времени или ресурсов.
  • Зависимости от других команд.
  • Высокая сложность системы.
  • Недостаточная автоматизация.
  • Частые изменения в коде.

Вопрос

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

Ответ

Управление рисками включает:

  • Идентификацию потенциальных проблем.
  • Оценку вероятности и воздействия.
  • Приоритизацию рисков.
  • Разработку мер по снижению (mitigation).
  • Мониторинг и обновление реестра рисков.

Вопрос

Что такое тестовая среда и зачем она нужна?

Ответ

Тестовая среда — это изолированная инфраструктура, воспроизводящая конфигурацию production: серверы, базы данных, сети, версии ПО. Она необходима для достоверного тестирования без риска для основной системы.


Вопрос

Какие виды тестовых сред бывают?

Ответ

Виды тестовых сред:

  • Dev — для разработчиков.
  • QA/Test — для функционального тестирования.
  • Staging/UAT — максимально приближена к production, для приёмочных тестов.
  • Performance — для нагрузочного тестирования.
  • Security — для тестов безопасности.
  • Demo — для демонстрации заказчику.

Вопрос

Что такое тестовые данные и как их управлять?

Ответ

Тестовые данные — это входные значения, используемые для выполнения тестов. Управление включает:

  • Генерацию (например, Faker).
  • Анонимизацию (если используются production-данные).
  • Изоляцию (чтобы тесты не влияли друг на друга).
  • Очистку после выполнения.
  • Хранение в файлах или базах данных.
  • Версионирование (если данные критичны).

Вопрос

Что такое data masking?

Ответ

Data masking — это процесс замены конфиденциальных данных в тестовых базах на фиктивные, но реалистичные значения, чтобы соблюсти требования безопасности и GDPR.


Вопрос

Как организовать тестирование в распределённой команде?

Ответ

Для распределённой команды важно:

  • Единые инструменты и процессы.
  • Чёткая документация.
  • Регулярная синхронизация (daily standups, демо).
  • Общее хранилище тестовой документации и баг-трекер.
  • Автоматизация как источник истины.
  • Чёткое распределение зон ответственности.

Вопрос

Что такое тестовая политика?

Ответ

Тестовая политика — это корпоративный документ, определяющий общие принципы, цели и подходы к тестированию на уровне всей организации. Она задаёт стандарты, роли, метрики и ожидания от QA.


Вопрос

Что такое тестовая стратегия?

Ответ

Тестовая стратегия — это высокоуровневый план для конкретного проекта, описывающий: цели тестирования, подходы, уровни, виды, инструменты, риски, критерии качества и ответственности.


Вопрос

В чём разница между тестовой политикой и стратегией?

Ответ

  • Тестовая политика — постоянный документ на уровне организации.
  • Тестовая стратегия — временный документ на уровне проекта, основанный на политике.

Вопрос

Как внедрять QA-процессы в компанию?

Ответ

Этапы внедрения:

  • Анализ текущего состояния.
  • Определение целей и метрик успеха.
  • Разработка политики и шаблонов.
  • Обучение команд.
  • Поэтапное внедрение (пилотный проект).
  • Сбор обратной связи и итеративное улучшение.

Вопрос

Что такое QA-аудит?

Ответ

QA-аудит — это независимая оценка процессов тестирования и разработки на соответствие установленным стандартам, политикам и лучшим практикам.


Вопрос

Какие метрики используются в отчётах по тестированию?

Ответ

Типичные метрики в отчётах:

  • Прогресс выполнения тестов (% пройдено).
  • Статус дефектов (открыто/закрыто по severity).
  • Покрытие требований.
  • Время на тестирование.
  • Количество flaky-тестов.
  • Утечка дефектов.
  • ROI от автоматизации.

Вопрос

Что такое daily build и почему он важен для QA?

Ответ

Daily build — это автоматическая сборка системы каждый день. Она важна, потому что:

  • Позволяет рано обнаруживать интеграционные проблемы.
  • Даёт QA стабильную и свежую версию для тестирования.
  • Поддерживает культуру непрерывной интеграции.

Вопрос

Что такое smoke-тест в контексте управления?

Ответ

Smoke-тест в управлении — это минимальный набор проверок, который должен пройти сразу после сборки. Если он падает, сборка отклоняется, и дальнейшее тестирование не начинается. Это экономит время и ресурсы.


Вопрос

Как управлять приоритетами в тестировании при нехватке времени?

Ответ

При нехватке времени применяется risk-based testing:

  • Фокус на критически важных функциях.
  • Проверка наиболее уязвимых модулей.
  • Использование автоматизированных регрессионных тестов.
  • Откладывание тестов с низким риском.
  • Чёткая коммуникация с заказчиком о компромиссах.

Вопрос

Что такое тестовая зрелость (test maturity)?

Ответ

Тестовая зрелость — это степень развития процессов тестирования в организации: от хаотичных и реактивных действий до предсказуемых, измеримых, оптимизированных и непрерывно улучшаемых практик.


Вопрос

Что такое модель TMMi?

Ответ

TMMi (Test Maturity Model integration) — это модель из пяти уровней зрелости тестирования:

  1. Initial — процессы хаотичны.
  2. Managed — есть базовое управление.
  3. Defined — процессы стандартизированы.
  4. Measured — процессы измеряются и контролируются.
  5. Optimizing — непрерывное улучшение на основе данных.

Вопрос

Как оценивать эффективность QA-команды?

Ответ

Эффективность QA-команды оценивается по:

  • Количеству дефектов, найденных до релиза.
  • Уровню утечки в production.
  • Скорости обратной связи.
  • Покрытию ключевых сценариев.
  • Удовлетворённости команды разработки и заказчика.
  • Вкладу в предотвращение дефектов (shift-left).

Вопрос

Что такое QA-культура в компании?

Ответ

QA-культура — это общее понимание того, что качество — ответственность всей команды, а не только тестировщиков. Она включает: внимание к деталям, автоматизацию, прозрачность, обучение и стремление к непрерывному улучшению.


Вопрос

Как мотивировать QA-инженеров?

Ответ

Мотивация QA-инженеров достигается через:

  • Признание вклада в качество продукта.
  • Возможности профессионального роста (автоматизация, архитектура).
  • Участие в принятии решений.
  • Чёткие цели и обратную связь.
  • Поддержку инициатив по улучшению процессов.

Вопрос

Что такое QA-лид?

Ответ

QA-лид — это технический лидер QA-команды, отвечающий за:

  • Архитектуру тестовой инфраструктуры.
  • Наставничество и развитие инженеров.
  • Взаимодействие с другими техлидами.
  • Выбор инструментов и подходов.
  • Обеспечение качества на всех этапах.

Безопасность, производительность и специализированные виды тестирования

Вопрос

Что такое тестирование безопасности (security testing)?

Ответ

Тестирование безопасности — это процесс выявления уязвимостей, угроз и рисков в системе, которые могут привести к несанкционированному доступу, утечке данных или другим инцидентам. Оно проверяет конфиденциальность, целостность и доступность системы.


Вопрос

Какие основные цели тестирования безопасности?

Ответ

Основные цели:

  • Обнаружение уязвимостей в коде, конфигурациях и архитектуре.
  • Проверка корректности механизмов аутентификации и авторизации.
  • Подтверждение защиты от известных атак (например, XSS, SQL injection).
  • Оценка соответствия стандартам (OWASP, PCI DSS, GDPR).

Вопрос

Что такое OWASP Top 10?

Ответ

OWASP Top 10 — это список десяти наиболее критичных уязвимостей веб-приложений, составленный Open Web Application Security Project. Он включает: инъекции, нарушения аутентификации, раскрытие конфиденциальных данных, XXE, неправильную конфигурацию безопасности и другие.


Вопрос

Что такое penetration testing?

Ответ

Penetration testing — это имитация реальной кибератаки на систему с целью выявления уязвимостей. Выполняется этичными хакерами (white-hat hackers) в контролируемых условиях.


Вопрос

Что такое SAST и DAST?

Ответ

  • SAST (Static Application Security Testing) — анализ исходного кода без его выполнения для поиска уязвимостей.
  • DAST (Dynamic Application Security Testing) — анализ работающего приложения через его интерфейсы (например, API или веб-формы).

Вопрос

Что такое нагрузочное тестирование?

Ответ

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


Вопрос

Что такое стресс-тестирование?

Ответ

Стресс-тестирование — это проверка поведения системы за пределами нормальных условий эксплуатации: при чрезмерной нагрузке, нехватке памяти, отказе компонентов. Цель — выявить точки разрушения и реакцию на сбои.


Вопрос

Что такое soak testing (тестирование на выдержку)?

Ответ

Soak testing — это длительное выполнение нагрузки на уровне, близком к максимальному, чтобы выявить утечки памяти, деградацию производительности или сбои, проявляющиеся со временем.


Вопрос

Что такое spike testing?

Ответ

Spike testing — это проверка реакции системы на резкие скачки нагрузки (например, внезапный приток пользователей после рекламной кампании). Оценивается время восстановления и стабильность.


Вопрос

Что такое scalability testing?

Ответ

Scalability testing — это проверка способности системы масштабироваться: добавлять ресурсы (CPU, память, узлы) и сохранять или улучшать производительность при росте нагрузки.


Вопрос

Что такое тестирование отказоустойчивости?

Ответ

Тестирование отказоустойчивости — это проверка способности системы продолжать функционировать (полностью или частично) при возникновении сбоев в одном или нескольких компонентах.


Вопрос

Что такое chaos engineering?

Ответ

Chaos engineering — это практика преднамеренного внесения сбоев в систему (отказ узлов, сетевые задержки) для проверки её устойчивости. Инструменты: Chaos Monkey, Gremlin.


Вопрос

Что такое тестирование юзабилити (usability testing)?

Ответ

Тестирование юзабилити — это оценка удобства, эффективности и удовлетворённости пользователей при взаимодействии с системой. Проводится с участием реальных пользователей или их представителей.


Вопрос

Что такое accessibility testing?

Ответ

Accessibility testing — это проверка того, насколько продукт может использоваться людьми с ограниченными возможностями: слепыми, слабовидящими, с нарушениями моторики. Соответствует стандартам WCAG.


Вопрос

Что такое совместимость (compatibility testing)?

Ответ

Совместимость — это проверка корректной работы программного обеспечения в различных окружениях: операционных системах, браузерах, устройствах, версиях зависимостей и сетевых конфигурациях.


Вопрос

Что такое кросс-браузерное тестирование?

Ответ

Кросс-браузерное тестирование — это подвид тестирования совместимости, направленный на проверку одинакового отображения и функционирования веб-приложения в разных браузерах и их версиях.


Вопрос

Что такое локализационное тестирование?

Ответ

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


Вопрос

Что такое интернационализационное тестирование?

Ответ

Интернационализационное тестирование — это проверка готовности приложения к локализации: поддержка Unicode, изолированные строковые ресурсы, гибкая верстка, отсутствие жёстко закодированных сообщений.


Вопрос

Что такое тестирование установки и развёртывания?

Ответ

Тестирование установки и развёртывания — это проверка корректности процессов установки, обновления, настройки и удаления программного обеспечения в целевых окружениях.


Вопрос

Что такое тестирование восстановления (recovery testing)?

Ответ

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


Вопрос

Что такое тестирование конфигураций?

Ответ

Тестирование конфигураций — это проверка работы системы при различных комбинациях настроек: параметров запуска, файлов конфигурации, переменных окружения, профилей пользователя.


Вопрос

Что такое тестирование API?

Ответ

Тестирование API — это проверка интерфейсов взаимодействия между компонентами или системами: корректность запросов, ответов, статус-кодов, обработка ошибок, безопасность и производительность.


Вопрос

Что такое контрактное тестирование?

Ответ

Контрактное тестирование — это проверка соблюдения соглашения между потребителями и поставщиками сервиса относительно формата, структуры и поведения API.


Вопрос

Что такое mutation testing?

Ответ

Mutation testing — это метод оценки качества тестов путём внесения небольших изменений (мутаций) в код и проверки, обнаружат ли тесты эти изменения. Если мутант «выжил», тесты недостаточно полны.


Вопрос

Что такое visual testing?

Ответ

Visual testing — это сравнение скриншотов интерфейса с эталонными изображениями для выявления неожиданных изменений в оформлении. Инструменты: Applitools, Percy, Playwright Visual Comparisons.


Вопрос

Что такое тестирование мобильных приложений?

Ответ

Тестирование мобильных приложений — это проверка приложений, разработанных для мобильных устройств, с учётом особенностей платформ (iOS, Android), экранов, сенсоров, сетевых условий и энергопотребления.


Вопрос

Что такое тестирование базы данных?

Ответ

Тестирование базы данных — это проверка корректности схемы, триггеров, хранимых процедур, целостности данных, производительности запросов и согласованности между приложением и СУБД.


Вопрос

Что такое тестирование миграций?

Ответ

Тестирование миграций — это проверка корректности переноса данных и структур из одной версии системы или базы данных в другую без потерь, искажений и простоев.


Вопрос

Что такое тестирование обратной совместимости?

Ответ

Тестирование обратной совместимости — это проверка того, что новая версия системы корректно работает с данными, конфигурациями или клиентами, созданными для предыдущих версий.


Вопрос

Что такое тестирование прямой совместимости?

Ответ

Тестирование прямой совместимости — это проверка возможности старых версий системы работать с данными или сервисами, созданными для новых версий (например, старый клиент с новым API).


Вопрос

Что такое A/B-тестирование и как оно связано с QA?

Ответ

A/B-тестирование — это сравнение двух версий интерфейса или функции на реальных пользователях для выбора более эффективной. QA участвует в подготовке корректной реализации вариантов, проверке изоляции и сборе данных.


Вопрос

Что такое synthetic monitoring?

Ответ

Synthetic monitoring — это автоматизированная проверка доступности и производительности приложения из внешних точек (например, через Pingdom или Datadog). Это форма непрерывного тестирования в production.


Вопрос

Что такое observability и как она помогает QA?

Ответ

Observability — это способность системы предоставлять данные (логи, метрики, трейсы), позволяющие понять её внутреннее состояние. QA использует эти данные для анализа сбоев, воспроизведения багов и проверки поведения в production.


Вопрос

Что такое canary-релиз и как он связан с тестированием?

Ответ

Canary-релиз — это стратегия развёртывания, при которой новая версия выпускается сначала небольшой группе пользователей. Тестирование происходит в реальных условиях: собираются метрики, логи, обратная связь. При успехе — развёртывание расширяется.


Вопрос

Что такое feature toggle и как он помогает тестированию?

Ответ

Feature toggle — это механизм включения/выключения функций без пересборки кода. Он позволяет выпускать незавершённые функции в production, но скрывать их от пользователей. Тестировщики могут включать такие функции для проверки в реальной среде.


Инструменты и фреймворки для тестирования

Вопрос

Какие инструменты используются для автоматизации UI-тестов веб-приложений?

Ответ

Основные инструменты:

  • Selenium WebDriver — кроссплатформенный инструмент с поддержкой множества языков (Java, Python, C#, JavaScript).
  • Playwright — современный инструмент от Microsoft с поддержкой Chromium, Firefox и WebKit, встроенным ожиданием и возможностью записи скриптов.
  • Cypress — фреймворк для end-to-end тестирования с быстрой обратной связью, отладкой в реальном времени и изолированным выполнением в браузере.
  • Puppeteer — библиотека от Google для управления Chrome/Chromium через DevTools Protocol, часто используется для парсинга и визуального тестирования.

Вопрос

Что такое Selenium WebDriver и как он работает?

Ответ

Selenium WebDriver — это API для программного управления веб-браузерами. Он взаимодействует с браузером через драйвер (например, chromedriver), отправляя команды и получая ответы. Поддерживает множество языков и браузеров.

Пример на Python:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")
assert "Example" in driver.title
driver.quit()

Вопрос

В чём преимущества Playwright перед Selenium?

Ответ

Преимущества Playwright:

  • Встроенная поддержка ожиданий (автоматическое ожидание элементов).
  • Возможность эмуляции мобильных устройств, геолокации, сетевых условий.
  • Поддержка нескольких страниц, вкладок и iframe «из коробки».
  • Более стабильное выполнение за счёт прямого взаимодействия с браузерным движком.
  • Встроенная возможность делать скриншоты, записывать видео и трассировки.

Вопрос

Что такое Page Object Model (POM) и зачем он нужен?

Ответ

Page Object Model — это паттерн проектирования тестов, при котором каждая веб-страница представлена как отдельный класс. Элементы страницы инкапсулированы в свойства, а действия — в методы. Это повышает читаемость, поддерживаемость и переиспользуемость тестового кода.

Пример на C#:

public class LoginPage
{
private IWebDriver driver;
private By usernameField = By.Id("username");
private By passwordField = By.Id("password");
private By loginButton = By.Id("loginBtn");

public LoginPage(IWebDriver driver)
{
this.driver = driver;
}

public void Login(string user, string pass)
{
driver.FindElement(usernameField).SendKeys(user);
driver.FindElement(passwordField).SendKeys(pass);
driver.FindElement(loginButton).Click();
}
}

Вопрос

Какие инструменты используются для API-тестирования?

Ответ

Популярные инструменты:

  • Postman — GUI-инструмент для создания, выполнения и документирования API-запросов. Поддерживает коллекции, переменные, окружения, мониторинг.
  • REST Assured — библиотека для Java, позволяющая писать читаемые тесты для REST API.
  • Pytest + requests — комбинация для Python.
  • Karate DSL — фреймворк на основе Gherkin для тестирования API без написания кода.
  • Insomnia — альтернатива Postman с открытым исходным кодом.

Вопрос

Как автоматизировать API-тесты на Python?

Ответ

С использованием библиотек requests и pytest:

import requests
import pytest

def test_user_exists():
response = requests.get("https://api.example.com/users/1")
assert response.status_code == 200
assert "name" in response.json()

Запуск: pytest api_tests.py.


Вопрос

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

Ответ

Основные инструменты:

  • JMeter — мощный open-source инструмент от Apache для нагрузочного и функционального тестирования. Поддерживает HTTP, FTP, JDBC, SOAP, REST и другие протоколы.
  • Gatling — высокопроизводительный фреймворк на Scala с DSL для описания сценариев.
  • k6 — современный инструмент с простым JavaScript-синтаксисом, ориентированный на разработчиков и CI/CD.
  • Locust — фреймворк на Python, позволяющий писать сценарии на обычном Python-коде.

Вопрос

Как выглядит простой тест в k6?

Ответ

Пример сценария на JavaScript:

import http from 'k6/http';
import { check, sleep } from 'k6';

export default function () {
const res = http.get('https://test-api.example.com');
check(res, {
'status is 200': (r) => r.status === 200,
});
sleep(1);
}

Запуск: k6 run script.js.


Вопрос

Какие инструменты используются для тестирования безопасности?

Ответ

Инструменты безопасности:

  • OWASP ZAP — open-source инструмент для DAST.
  • Burp Suite — коммерческий (и бесплатный Community Edition) инструмент для анализа веб-безопасности.
  • SonarQube + SonarScanner — для SAST (статического анализа кода).
  • Bandit — для анализа безопасности Python-кода.
  • ESLint с плагинами безопасности — для JavaScript/TypeScript.

Вопрос

Какие инструменты используются для мобильного тестирования?

Ответ

Основной инструмент — Appium:

  • Поддерживает iOS и Android.
  • Использует стандартные драйверы (XCUITest для iOS, UiAutomator2 для Android).
  • Работает с теми же языкками, что и Selenium.
    Альтернативы: Espresso (Android), XCUITest (iOS) — нативные фреймворки от платформ.

Вопрос

Что такое тестовые фреймворки и зачем они нужны?

Ответ

Тестовые фреймворки — это библиотеки и инструменты, упрощающие написание, организацию, выполнение и отчётность тестов. Они предоставляют:

  • Механизмы запуска и группировки тестов.
  • Утверждения (assertions).
  • Фикстуры (setup/teardown).
  • Параметризацию.
  • Интеграцию с CI/CD.

Примеры: JUnit (Java), PyTest (Python), NUnit (.NET), Jest (JavaScript).


Вопрос

Что такое mocking и какие инструменты для него существуют?

Ответ

Mocking — создание имитации зависимостей для изоляции тестируемого компонента.
Инструменты:

  • Mockito (Java)
  • unittest.mock (Python)
  • Moq (.NET)
  • Jest.fn() (JavaScript)

Пример на Python:

from unittest.mock import Mock

service = Mock()
service.get_user.return_value = {"name": "Alice"}
result = service.get_user(1)
assert result["name"] == "Alice"

Вопрос

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

Ответ

Инструменты визуального тестирования:

  • Playwright — встроенные средства сравнения скриншотов.
  • Percy — облачный сервис для визуальной регрессии.
  • Applitools — AI-подход к сравнению изображений.
  • Selenium + OpenCV — ручная реализация с компьютерным зрением.

Вопрос

Какие инструменты используются для тестирования доступности?

Ответ

Инструменты accessibility testing:

  • axe — библиотека и расширение для браузера.
  • Lighthouse — встроенный в Chrome инструмент аудита.
  • WAVE — онлайн-сервис и расширение.
  • Pa11y — CLI-инструмент для автоматизации проверок.

Вопрос

Какие инструменты используются для управления тестовой документацией?

Ответ

Управление документацией:

  • TestRail — коммерческая система для хранения тест-кейсов, запусков и отчётов.
  • Zephyr — интеграция с Jira.
  • qTest — enterprise-решение.
  • Excel / Google Sheets — для небольших проектов.
  • Confluence + Xray — для команд, использующих Atlassian Stack.

Вопрос

Какие инструменты используются для отслеживания дефектов?

Ответ

Баг-трекеры:

  • Jira — наиболее популярный.
  • Bugzilla — open-source.
  • MantisBT — лёгкий open-source трекер.
  • YouTrack — от JetBrains.
  • Azure DevOps — встроенный в Microsoft экосистему.

Вопрос

Как интегрировать тесты в CI/CD?

Ответ

Тесты интегрируются через:

  • GitHub Actions, GitLab CI, Jenkins, CircleCI, Azure Pipelines.
  • Запуск unit-, интеграционных и smoke-тестов после каждого коммита.
  • Блокировка мержа при падении критических тестов.
  • Публикация отчётов и артефактов (логи, скриншоты).

Пример шага в GitHub Actions:

- name: Run tests
run: pytest tests/

Вопрос

Что такое TDD-фреймворки?

Ответ

TDD-фреймворки поддерживают цикл Red-Green-Refactor:

  • JUnit + Mockito (Java)
  • PyTest + unittest.mock (Python)
  • NUnit + Moq (.NET)
  • Jest (JavaScript)

Они позволяют быстро писать и запускать unit-тесты с минимальной конфигурацией.


Вопрос

Что такое BDD-фреймворки?

Ответ

BDD-фреймворки описывают поведение на языке бизнеса (Given-When-Then):

  • Cucumber (Java, Ruby, JavaScript)
  • SpecFlow (.NET)
  • Behave (Python)
  • Jasmine / Cucumber.js (JavaScript)

Сценарии пишутся в файлах .feature, а шаги реализуются в коде.


Вопрос

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

Ответ

Генерация данных:

  • Faker (Python, JavaScript, PHP, Java и др.) — генерирует реалистичные фейковые данные.
  • Mockaroo — онлайн-генератор CSV/JSON.
  • JSON Server — мок-бэкенд для REST API.
  • Factory Boy (Python) — для создания объектов в тестах.

Вопрос

Что такое headless-браузер и зачем он нужен?

Ответ

Headless-браузер — это браузер без графического интерфейса, запускаемый в фоновом режиме. Используется для автоматизации тестов, парсинга и других задач, где визуальный вывод не требуется. Примеры: Chrome Headless, Firefox Headless.


Вопрос

Какие инструменты используются для анализа покрытия кода?

Ответ

Анализ покрытия:

  • JaCoCo (Java)
  • Coverage.py (Python)
  • Istanbul / NYC (JavaScript)
  • dotCover / Coverlet (.NET)
  • gcov + lcov (C/C++)

Интегрируются в CI и генерируют отчёты в HTML или XML.


Вопрос

Что такое flaky test detection tools?

Ответ

Инструменты для обнаружения нестабильных тестов:

  • Встроенные механизмы в JUnit 5 (retries).
  • pytest-rerunfailures (Python).
  • Test Retry Plugin в Gradle.
  • Анализ истории запусков в TestRail или Jenkins.

Вопрос

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

Ответ

Контрактное тестирование:

  • Pact — де-факто стандарт для микросервисов.
  • Spring Cloud Contract — для экосистемы Spring.
    Генерируют «контракт» — файл, описывающий ожидаемые запросы и ответы, который проверяется на обеих сторонах.

Вопрос

Какие инструменты используются для тестирования баз данных?

Ответ

Тестирование БД:

  • DBUnit (Java) — управление состоянием БД перед/после тестов.
  • pytest-django / SQLAlchemy (Python) — для работы с fixtures.
  • tSQLt — фреймворк для unit-тестирования в MS SQL Server.
  • pgTAP — для PostgreSQL.

Вопрос

Какие инструменты используются для тестирования производительности баз данных?

Ответ

Производительность БД:

  • sysbench — для нагрузочного тестирования MySQL, PostgreSQL.
  • HammerDB — для Oracle, SQL Server, DB2.
  • pgbench — встроенный в PostgreSQL.
  • SQL Profiler / Extended Events — для MS SQL Server.

Работа с дефектами и баг-трекинг

Вопрос

Что такое дефект (bug)?

Ответ

Дефект — это несоответствие между фактическим и ожидаемым поведением программного обеспечения при выполнении определённых условий.


Вопрос

Что такое ошибка (error), сбой (failure) и дефект (defect)? В чём разница?

Ответ

  • Ошибка — неверное действие человека (например, программиста), приводящее к дефекту.
  • Дефект — неисправность в коде или документации.
  • Сбой — внешнее проявление дефекта во время выполнения программы, когда система ведёт себя некорректно.

Вопрос

Что такое жизненный цикл дефекта (bug lifecycle)?

Ответ

Жизненный цикл дефекта — это последовательность состояний, через которые проходит баг:
New → Assigned → Open → In Progress → Fixed → Retest → Verified → Closed
Если дефект не исправлен — он переходит в состояние Reopened.


Вопрос

Какие основные статусы дефекта в баг-трекере?

Ответ

Типичные статусы:

  • New — только что обнаружен.
  • Open / Confirmed — подтверждён как реальный дефект.
  • Assigned — назначен разработчику.
  • In Progress — находится в работе.
  • Fixed / Resolved — исправлен.
  • Retest — готов к повторной проверке.
  • Verified — подтверждено, что исправление работает.
  • Closed — завершён.
  • Reopened — дефект воспроизводится после исправления.
  • Rejected / Not a Bug — не признан ошибкой.
  • Deferred / Postponed — отложен на будущий релиз.

Вопрос

Что такое серьёзность (severity) дефекта?

Ответ

Серьёзность — это степень влияния дефекта на работу системы. Обычно шкала:

  • Critical / Blocker — система неработоспособна.
  • Major / High — важная функция недоступна.
  • Medium / Moderate — частичное нарушение функциональности.
  • Minor / Low — косметическая ошибка.
  • Trivial / Cosmetic — опечатка, незначительное несоответствие UI.

Вопрос

Что такое приоритет (priority) дефекта?

Ответ

Приоритет — это срочность исправления дефекта с точки зрения бизнеса или графика релиза. Обычно:

  • High / Urgent — должен быть исправлен немедленно.
  • Medium / Normal — будет исправлен в ближайшем релизе.
  • Low — может быть отложен.

Вопрос

Может ли баг иметь высокую серьёзность, но низкий приоритет?

Ответ

Да. Например, критическая ошибка в функции, которая будет удалена в следующем релизе, может иметь высокую серьёзность, но низкий приоритет исправления.


Вопрос

Что должно содержать хорошее описание бага?

Ответ

Хорошее описание бага включает:

  • Чёткий и уникальный заголовок.
  • Шаги воспроизведения (по порядку, без пропусков).
  • Фактический результат.
  • Ожидаемый результат.
  • Окружение (ОС, браузер, версия приложения).
  • Приоритет и серьёзность.
  • Скриншоты, логи, видео (при необходимости).
  • Уникальные данные (ID пользователя, URL, временная метка).

Вопрос

Как воспроизводить дефект?

Ответ

Воспроизведение дефекта — это выполнение тех же шагов, что и при его обнаружении, в том же окружении, чтобы убедиться, что проблема стабильно проявляется. Это необходимо для подтверждения и передачи разработчику.


Вопрос

Что делать, если дефект не воспроизводится?

Ответ

Если дефект не воспроизводится:

  • Проверить окружение и данные.
  • Запросить у пользователя дополнительную информацию.
  • Проанализировать логи и метрики.
  • Отметить как «Cannot Reproduce» с комментарием.
  • Предложить мониторинг или добавление диагностических данных.

Вопрос

Что такое дубликат бага?

Ответ

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


Вопрос

Что такое regression bug?

Ответ

Regression bug — это дефект, который появился после внесения изменений в код и привёл к нарушению ранее работавшей функциональности.


Вопрос

Как предотвратить регрессии?

Ответ

Для предотвращения регрессий применяются:

  • Регрессионное тестирование.
  • Автоматизация критических сценариев.
  • Code review.
  • Покрытие unit- и интеграционными тестами.
  • Анализ изменений перед мержем.

Вопрос

Что такое retesting?

Ответ

Retesting — это повторное выполнение конкретного теста, который ранее выявил дефект, чтобы убедиться, что исправление устранило проблему.


Вопрос

В чём разница между retesting и регрессионным тестированием?

Ответ

  • Retesting проверяет, исправлен ли конкретный дефект.
  • Регрессионное тестирование проверяет, не появились ли новые дефекты в других частях системы из-за исправления.

Вопрос

Какие метрики связаны с дефектами?

Ответ

Метрики по дефектам:

  • Количество открытых/закрытых багов.
  • Среднее время до обнаружения и исправления.
  • Плотность дефектов (на модуль или KLOC).
  • Утечка дефектов в production.
  • Процент регрессий.
  • Распределение по severity/priority.

Вопрос

Что такое defect clustering?

Ответ

Defect clustering — это принцип, согласно которому большинство дефектов сосредоточено в относительно небольшом числе модулей. Это позволяет фокусировать тестовые усилия на проблемных областях.


Вопрос

Что такое zero-bug policy?

Ответ

Zero-bug policy — это практика, при которой все критические и высокоуровневые дефекты должны быть закрыты до выпуска новой версии. Низкоприоритетные баги могут быть отложены, но явно задокументированы.


Вопрос

Как классифицировать дефекты по типу?

Ответ

Типы дефектов:

  • Функциональные.
  • UI/UX.
  • Производительности.
  • Безопасности.
  • Совместимости.
  • Локализации.
  • Документации.
  • Требований (missing functionality).

Вопрос

Что такое root cause analysis (RCA) дефекта?

Ответ

Root cause analysis — это процесс выявления первопричины дефекта: ошибка в требованиях, недостаточное покрытие тестами, сложность логики, человеческий фактор. Цель — предотвратить появление подобных дефектов в будущем.


Вопрос

Какие инструменты используются для баг-трекинга?

Ответ

Популярные баг-трекеры:

  • Jira — наиболее распространённый.
  • Bugzilla — open-source.
  • MantisBT — лёгкий и простой.
  • YouTrack — от JetBrains.
  • Azure DevOps — в экосистеме Microsoft.
  • Redmine — гибкий open-source трекер.

Вопрос

Как интегрировать баг-трекер с системой контроля версий?

Ответ

Интеграция достигается через:

  • Указание ID задачи в комментариях коммитов (например, PROJ-123).
  • Использование плагинов (Jira + Bitbucket/GitHub).
  • Автоматическое обновление статуса задачи при мерже.
  • Связь между пул-реквестами и тикетами.

Вопрос

Что такое triage дефектов?

Ответ

Triage — это процесс приоритизации и распределения новых дефектов: определение серьёзности, приоритета, ответственного и необходимости исправления. Обычно проводится на регулярных встречах QA + разработка + продакт.


Вопрос

Как обрабатывать массовые дефекты (например, после major release)?

Ответ

При массовых дефектах:

  • Проводится срочный triage.
  • Выделяются критические проблемы.
  • Формируется hotfix-команда.
  • Временно приостанавливается разработка новых фич.
  • Увеличивается частота коммуникации и отчётности.

Вопрос

Что такое known issue?

Ответ

Known issue — это дефект, который известен команде, но не будет исправлен в текущем релизе. Документируется в release notes и может быть учтён в пользовательских инструкциях.


Вопрос

Как документировать дефекты в отчётах?

Ответ

В отчётах указываются:

  • Общее количество дефектов по статусам.
  • Распределение по severity/priority.
  • Топ-5 проблемных модулей.
  • Динамика открытия/закрытия.
  • Уровень утечки в production.
  • Рекомендации по улучшению.

Подготовка к собеседованию и карьерное развитие в QA

Вопрос

Какие основные темы спрашивают на собеседовании QA-инженера?

Ответ

Основные темы:

  • Основы тестирования (виды, уровни, цели).
  • Тест-дизайн (техники, примеры).
  • Жизненный цикл дефекта.
  • Работа с баг-трекером.
  • Знание инструментов (Selenium, Postman, Jira и др.).
  • Опыт автоматизации (если требуется).
  • Понимание CI/CD и Agile.
  • Практические задачи (анализ требований, составление тест-кейсов).

Вопрос

Как отвечать на вопрос «Расскажите о себе» на QA-собеседовании?

Ответ

Следует кратко представить:

  • Опыт в тестировании (годы, проекты, роли).
  • Технический стек (инструменты, языки, типы тестов).
  • Достижения (автоматизация, улучшение процессов, снижение утечки багов).
  • Мотивацию (почему QA, почему эта компания).
    Пример: «Я QA-инженер с трёхлетним опытом. Работал над веб- и мобильными проектами, писал автоматизированные API- и UI-тесты на Python и Java. Участвовал во внедрении регрессионного набора, что сократило время релиза на 30%».

Вопрос

Как подготовиться к технической части собеседования по тестированию?

Ответ

Подготовка включает:

  • Повторение теории тестирования (ISTQB-база).
  • Решение практических задач (написание тест-кейсов, анализ требований).
  • Изучение инструментов, указанных в вакансии.
  • Практика написания кода для автоматизации (если требуется).
  • Разбор реальных кейсов из прошлых проектов (STAR-метод: Situation, Task, Action, Result).

Вопрос

Что такое ISTQB и стоит ли его проходить?

Ответ

ISTQB (International Software Testing Qualifications Board) — это международная сертификация по тестированию. Базовый уровень (Foundation Level) подтверждает знание фундаментальных концепций: видов тестирования, жизненного цикла, тест-дизайна, управления дефектами. Сертификат полезен для начинающих и при трудоустройстве в крупные компании.


Вопрос

Какие книги рекомендуются для подготовки QA-специалиста?

Ответ

Ключевые книги:

  • «Тестирование Дот Ком» — Роман Савин.
  • «Искусство тестирования программного обеспечения» — Гленфорд Майерс.
  • «Agile Testing» — Лиза Криспин, Джанет Грегори.
  • «Lessons Learned in Software Testing» — Канер, Бач, Петтичон.
  • «Тестирование производительности» — Дмитрий Шабанов.

Вопрос

Какие практические задания могут дать на собеседовании?

Ответ

Типичные задания:

  • Написать тест-кейсы для формы входа или корзины.
  • Найти дефекты в спецификации или макете.
  • Спроектировать тесты для API-эндпоинта.
  • Написать простой автоматизированный тест (например, на Selenium или REST Assured).
  • Проанализировать лог ошибки и предложить гипотезу.

Вопрос

Как отвечать на вопрос «Как вы тестируете сайт?»

Ответ

Структурированный ответ:

  1. Анализ требований — понимание функциональности.
  2. Планирование — определение видов тестов (функциональное, UI, безопасность и т.д.).
  3. Проектирование — создание тест-кейсов и чек-листов.
  4. Выполнение — ручное и/или автоматизированное тестирование.
  5. Отчётность — фиксация багов, анализ покрытия.
  6. Регрессия и smoke — перед релизом.

Вопрос

Как показать опыт без коммерческой работы?

Ответ

Можно продемонстрировать:

  • Личные проекты (GitHub с автоматизацией).
  • Участие в open-source тестировании.
  • Практические кейсы из обучения (курсы, хакатоны).
  • Блог или статьи по тестированию.
  • Домашние задания с детальным описанием подхода.

Вопрос

Какие soft skills важны для QA?

Ответ

Важные soft skills:

  • Внимательность к деталям.
  • Аналитическое мышление.
  • Коммуникация (чёткое описание багов, взаимодействие с командой).
  • Инициативность (предложение улучшений процессов).
  • Умение работать в условиях неопределённости.

Вопрос

Как развиваться в QA-карьере?

Ответ

Пути развития:

  • Технический путь: ручной тестировщик → автоматизатор → SDET → QA-архитектор.
  • Управленческий путь: QA-инженер → QA-лид → менеджер тестирования.
  • Специализация: нагрузочное тестирование, безопасность, мобильные платформы, аналитика качества.
  • Смежные области: переход в разработку, аналитику или DevOps.

Вопрос

Какие метрики качества может привести QA на собеседовании?

Ответ

Примеры метрик:

  • Покрытие требований тестами — 95%.
  • Утечка дефектов в production — менее 2%.
  • Время выполнения регрессионного набора сокращено с 8 до 2 часов.
  • Количество автоматизированных тестов — 500+, стабильность — 98%.
  • Среднее время закрытия критического бага — 4 часа.

Вопрос

Как отвечать на вопрос «Почему вы хотите работать именно у нас?»

Ответ

Следует связать интерес с конкретикой компании:

  • Технологический стек («Мне интересен ваш стек на Playwright + k6»).
  • Продукт («Я пользуюсь вашим сервисом и хочу участвовать в его развитии»).
  • Культура («Ценю ваш подход к качеству и shift-left testing»).
  • Возможности роста («Хочу развиваться в автоматизации, а у вас сильная QA-команда»).

Вопрос

Какие вопросы стоит задавать на собеседовании?

Ответ

Рекомендуемые вопросы:

  • Как устроены процессы тестирования в команде?
  • Какой процент автоматизации?
  • Какие инструменты используются?
  • Есть ли менторство для новых сотрудников?
  • Как измеряется качество продукта?
  • Какие ближайшие цели у QA-команды?

Вопрос

Как подготовиться к кейсовому интервью?

Ответ

Для кейсового интервью:

  • Практикуйте анализ требований на предмет неполноты и противоречий.
  • Учитесь выделять граничные значения и эквивалентные классы.
  • Тренируйтесь объяснять свой ход мыслей вслух.
  • Используйте структуру: цель → ограничения → подход → примеры тестов.

Вопрос

Как вести себя при тестировании «вживую» на собеседовании?

Ответ

Рекомендации:

  • Говорите, что делаете и почему.
  • Задавайте уточняющие вопросы.
  • Не бойтесь сказать «я бы проверил X, но сейчас нет доступа к Y».
  • Фокусируйтесь на критических сценариях.
  • Показывайте системный подход, а не хаотичный клик.

Вопрос

Какие ошибки чаще всего допускают кандидаты на QA-собеседованиях?

Ответ

Типичные ошибки:

  • Отсутствие структуры в ответах.
  • Неспособность привести примеры из практики.
  • Путаница в терминах (например, «регрессия» vs «retesting»).
  • Игнорирование нефункциональных аспектов (безопасность, юзабилити).
  • Отказ от решения практической задачи под предлогом «я ручной тестировщик».

Вопрос

Как оценить свою готовность к собеседованию?

Ответ

Проверьте, можете ли вы:

  • Объяснить разницу между всеми видами тестирования.
  • Спроектировать тесты для любой функции за 5 минут.
  • Описать жизненный цикл бага.
  • Написать простой автоматизированный тест (если требуется).
  • Привести пример, когда вы улучшили процесс тестирования.

Вопрос

Стоит ли учить алгоритмы и структуры данных для QA?

Ответ

Для ручного тестировщика — не обязательно. Для автоматизатора или SDET — да:

  • Понимание сложности помогает писать эффективные тесты.
  • Знание коллекций и алгоритмов необходимо при работе с данными.
  • На некоторых собеседованиях (особенно в FAANG-подобных компаниях) могут быть алгоритмические задачи.

Вопрос

Как составить резюме QA-инженера?

Ответ

Эффективное резюме содержит:

  • Чёткое указание роли (Manual QA / Automation QA / SDET).
  • Технологии и инструменты (Selenium, Postman, Jira, Jenkins и др.).
  • Конкретные достижения с цифрами («снизил утечку багов на 40%»).
  • Описание участия в процессах (Agile, CI/CD, code review).
  • Ссылку на GitHub или портфолио (если есть автоматизация).

Вопрос

Как использовать GitHub для демонстрации навыков QA?

Ответ

На GitHub можно разместить:

  • Проекты автоматизации с README и архитектурой.
  • Примеры тест-кейсов и чек-листов.
  • Скрипты для генерации тестовых данных.
  • Отчёты о нагрузочном тестировании.
  • Документацию по настройке тестового окружения.

Вопрос

Какие онлайн-курсы помогут подготовиться к собеседованию?

Ответ

Рекомендуемые курсы:

  • «QA Engineering» от SkillFactory или GeekBrains.
  • «Software Testing Fundamentals» на Udemy.
  • Курсы по Selenium, Playwright, Postman.
  • ISTQB Foundation Level (официальный или подготовительный).
  • Практические задания на Stepik или Test Automation University.

Вопрос

Как готовиться к английскому языку на QA-собеседовании?

Ответ

Фокус на:

  • Технической лексике (bug, test case, regression, assertion).
  • Умении описать процесс тестирования на английском.
  • Чтении документации и логов.
  • Практике через mock interviews или языковые обмены.
  • Просмотре технических видео (например, от Ministry of Testing).

Вопрос

Как вести переговоры о зарплате?

Ответ

Стратегия:

  • Узнайте рыночные ставки для вашей роли и региона.
  • Подчеркните свою ценность (опыт, достижения, навыки).
  • Не называйте цифру первым — попросите диапазон от работодателя.
  • Готовьтесь обосновать запрос: «Я владею автоматизацией на Python и могу сразу внедрять тесты в ваш pipeline».

Вопрос

Что делать, если не прошли собеседование?

Ответ

Рекомендуется:

  • Попросить фидбэк у рекрутера.
  • Проанализировать свои слабые места.
  • Проработать пробелы (теория, практика, soft skills).
  • Продолжать подавать заявки — отказ не означает недостаточную квалификацию, часто решающую роль играет совпадение требований.

Вопрос

Как поддерживать знания QA в актуальном состоянии?

Ответ

Способы:

  • Чтение блогов (Ministry of Testing, QA Weekly).
  • Участие в конференциях (Heisenbug, SeleniumConf).
  • Эксперименты с новыми инструментами (Playwright, Cypress, k6).
  • Обсуждение кейсов с коллегами.
  • Регулярное решение задач на платформах вроде Codewars или LeetCode (для автоматизаторов).

Вопрос

Какие тренды в QA стоит отслеживать?

Ответ

Актуальные тренды:

  • Shift-left и shift-right testing.
  • AI в тестировании (генерация тестов, анализ логов).
  • Quality Assistance вместо контроля.
  • Observability как часть QA.
  • Тестирование в production (canary, feature flags).
  • Low-code/no-code инструменты для тестирования.

Вопрос

Как перейти с ручного тестирования на автоматизацию?

Ответ

Пошаговый план:

  1. Выберите язык (Python, JavaScript или Java).
  2. Освойте базовый синтаксис и работу с API.
  3. Изучите один UI-фреймворк (Selenium или Playwright).
  4. Напишите первый end-to-end тест.
  5. Интегрируйте его в CI (GitHub Actions, Jenkins).
  6. Постепенно расширяйте набор и рефакторите код (POM, fixtures).
  7. Добавьте отчёты и параллельный запуск.

Вопрос

Какие качества отличают сильного QA-инженера?

Ответ

Ключевые качества:

  • Любопытство и склонность к исследованию.
  • Системное мышление.
  • Ответственность за качество продукта.
  • Умение находить «невидимые» дефекты.
  • Готовность учиться и делиться знаниями.
  • Баланс между скоростью и глубиной тестирования.

Практические кейсы и примеры решений

Вопрос

Напишите тест-кейсы для формы входа (login form).

Ответ

Тест-кейсы для формы входа:

  1. Позитивный сценарий

    • Шаги: ввести корректный email и пароль, нажать «Войти».
    • Ожидаемый результат: переход на личный кабинет.
  2. Неверный пароль

    • Шаги: ввести корректный email и неверный пароль.
    • Ожидаемый результат: сообщение «Неверный email или пароль».
  3. Несуществующий email

    • Шаги: ввести несуществующий email и любой пароль.
    • Ожидаемый результат: то же сообщение об ошибке (без раскрытия, существует ли аккаунт).
  4. Пустые поля

    • Шаги: оставить оба поля пустыми, нажать «Войти».
    • Ожидаемый результат: подсветка полей, сообщения о необходимости заполнения.
  5. SQL-инъекция в поле email

    • Шаги: ввести ' OR '1'='1 в email.
    • Ожидаемый результат: ошибка валидации или безопасная обработка без доступа.
  6. Длинный email/пароль

    • Шаги: ввести 255+ символов.
    • Ожидаемый результат: ограничение на ввод или корректная обрезка.
  7. Регистронезависимость email

    • Шаги: войти с User@Example.com при регистрации как user@example.com.
    • Ожидаемый результат: успешный вход.
  8. Блокировка после N попыток

    • Шаги: ввести неверные данные 5 раз.
    • Ожидаемый результат: временная блокировка или CAPTCHA.
  9. Сброс пароля

    • Шаги: нажать «Забыли пароль?», ввести email.
    • Ожидаемый результат: письмо со ссылкой на сброс.
  10. Вход через соцсети

    • Шаги: нажать «Войти через Google».
    • Ожидаемый результат: редирект на OAuth, затем возврат в систему.

Вопрос

Как протестировать поиск на сайте?

Ответ

Подход к тестированию поиска:

  1. Позитивные запросы

    • Поиск существующего товара/статьи → результат отображается.
  2. Негативные запросы

    • Поиск несуществующего термина → сообщение «Ничего не найдено».
  3. Граничные значения

    • Один символ, 255 символов, специальные символы (@#$%).
  4. Регистр и опечатки

    • «iPhone» vs «iphone» → одинаковый результат.
    • «iphon» → предложения исправления (если есть).
  5. Фильтрация и сортировка

    • После поиска применить фильтр → результаты соответствуют.
  6. Производительность

    • Поиск по 100 000 записям → время ответа < 2 сек.
  7. Безопасность

    • XSS-вектор в поиске (<script>alert(1)</script>) → отображается как текст.
  8. Мультиязычность

    • Поиск на русском в англоязычной версии → корректная обработка.

Вопрос

Как протестировать кнопку «Добавить в корзину»?

Ответ

Тест-сценарии:

  1. Успешное добавление

    • Клик → товар появляется в корзине, счётчик увеличивается.
  2. Добавление без авторизации

    • Разрешено ли? Если да — сохраняется в сессии.
  3. Добавление отсутствующего товара

    • Через API или URL → ошибка 404 или redirect.
  4. Множественное добавление

    • Несколько кликов → количество увеличивается корректно.
  5. Добавление товара с опциями

    • Цвет, размер → выбранные опции сохраняются в корзине.
  6. Очистка корзины

    • После добавления — очистить → корзина пуста.
  7. Синхронизация между устройствами

    • Добавить на десктопе → видно в мобильном приложении (если есть аккаунт).
  8. Лимиты

    • Добавить 999 штук → система принимает или выдаёт ошибку.

Вопрос

Как протестировать API-эндпоинт GET /users/{id}?

Ответ

Тесты для REST API:

  1. Успешный запрос

    • Запрос с существующим ID → статус 200, тело содержит данные пользователя.
  2. Неизвестный ID

    • Запрос с несуществующим ID → статус 404.
  3. Невалидный ID

    • Строка вместо числа → статус 400, сообщение об ошибке.
  4. Авторизация

    • Без токена → 401 Unauthorized.
    • С токеном другого пользователя → 403 Forbidden (если нет доступа).
  5. Поля ответа

    • Проверка наличия обязательных полей: id, name, email.
  6. Формат данных

    • Email соответствует формату, дата — ISO 8601.
  7. Производительность

    • Время ответа < 500 мс при нагрузке 100 RPS.
  8. Rate limiting

    • 1000 запросов подряд → 429 Too Many Requests.

Вопрос

Как протестировать загрузку файла?

Ответ

Сценарии тестирования:

  1. Поддерживаемый формат

    • JPG, PNG → загружается успешно.
  2. Неподдерживаемый формат

    • EXE, BAT → ошибка, файл не принимается.
  3. Размер файла

    • Меньше лимита → OK.
    • Равен лимиту → OK.
    • Больше лимита → ошибка.
  4. Повреждённый файл

    • Файл с изменённой сигнатурой → обрабатывается как недопустимый.
  5. Пустой файл

    • Размер 0 байт → ошибка или предупреждение.
  6. Имена файлов

    • Кириллица, спецсимволы, длинное имя → корректная обработка.
  7. Множественная загрузка

    • 10 файлов одновременно → все обрабатываются.
  8. Отмена загрузки

    • Нажать «Отмена» → процесс прерывается, файл не сохраняется.
  9. Безопасность

    • Файл с вредоносным скриптом → блокируется или очищается.

Вопрос

Как протестировать форму регистрации?

Ответ

Ключевые проверки:

  1. Все поля обязательны

    • Пропуск любого поля → ошибка валидации.
  2. Формат email

    • user@domain → ошибка.
    • user@domain.com → OK.
  3. Сила пароля

    • Короткий, без цифр → ошибка.
    • Соответствует политике → OK.
  4. Уникальность email/логина

    • Повторная регистрация → ошибка «Пользователь уже существует».
  5. Подтверждение пароля

    • Несовпадение → ошибка.
  6. CAPTCHA

    • Неверный ввод → регистрация не проходит.
  7. Политика конфиденциальности

    • Чекбокс не отмечен → кнопка неактивна.
  8. Подтверждение email

    • После регистрации — письмо с ссылкой.
    • Без подтверждения — вход невозможен.
  9. Локализация

    • Сообщения на языке интерфейса.

Вопрос

Как протестировать работу приложения без интернета?

Ответ

Сценарии offline-тестирования:

  1. Запуск приложения без сети

    • Отображается понятное сообщение.
  2. Кэширование данных

    • Ранее загруженные данные доступны.
  3. Операции, требующие сети

    • Кнопки неактивны или показывают уведомление.
  4. Восстановление после подключения

    • Автоматическая синхронизация данных.
  5. Очередь действий

    • Действия (например, отправка формы) сохраняются и выполняются при восстановлении связи.
  6. Энергопотребление

    • Приложение не пытается постоянно переподключиться.
  7. Mobile-specific

    • Переключение между Wi-Fi и мобильной сетью → корректное поведение.

Вопрос

Как протестировать уведомления (push/email)?

Ответ

Проверки:

  1. Триггер события

    • Действие (например, заказ) → уведомление отправлено.
  2. Содержание

    • Корректные данные (номер заказа, сумма), персонализация.
  3. Форматирование

    • Email отображается во всех клиентах, push — в iOS/Android.
  4. Ссылки

    • Все ссылки рабочие, ведут в правильный раздел.
  5. Частота

    • Нет дублирования при повторном событии.
  6. Отписка

    • Ссылка «Отписаться» работает, последующие уведомления не приходят.
  7. Локализация

    • Язык соответствует настройкам пользователя.
  8. Безопасность

    • В уведомлении нет конфиденциальных данных (полный номер карты и т.п.).

Вопрос

Как протестировать платежную систему?

Ответ

Критические проверки:

  1. Успешная оплата

    • Тестовые карты → статус «Оплачено», заказ в статусе «Обрабатывается».
  2. Отказ банка

    • Карта с отказом → сообщение об ошибке, заказ не оплачен.
  3. Невалидные данные карты

    • Неправильный CVV, срок → ошибка до отправки.
  4. Дублирование платежа

    • Двойной клик → только одна транзакция.
  5. Валюты и курсы

    • Корректный расчёт при выборе валюты.
  6. Возврат средств

    • Инициация возврата → деньги возвращаются, статус обновляется.
  7. PCI DSS соответствие

    • Никакие данные карты не логируются.
  8. Интеграция с внешними шлюзами

    • Stripe, PayPal — корректная обработка webhook’ов.

Вопрос

Как протестировать многопользовательский чат?

Ответ

Сценарии:

  1. Отправка сообщения

    • Сообщение появляется у отправителя и получателя.
  2. Офлайн-получатель

    • Сообщение доставляется после входа.
  3. Форматирование

    • Жирный, курсив, ссылки — отображаются корректно.
  4. Медиафайлы

    • Изображения, видео — загружаются и отображаются.
  5. Уведомления

    • Push/email при новом сообщении (если включено).
  6. Блокировка пользователя

    • Заблокированный не может писать.
  7. История сообщений

    • При перезагрузке — история сохраняется.
  8. Производительность

    • 1000 пользователей в чате — задержка < 1 сек.
  9. Безопасность

    • XSS в сообщении → отображается как текст.