Вопросы по теории тестирования на собеседовании
Теорию тестирования спрашивают у всех, от стажёра до автоматизатора, и заваливаются на ней чаще всего из-за заученных определений. Разница между приоритетом и серьёзностью бага проверяется одним уточняющим вопросом.
Что спрашивают
- +Виды и уровни: модульное, интеграционное, системное, приёмочное, функциональное против нефункционального
- +Тест-дизайн: классы эквивалентности, граничные значения, таблицы решений, попарное тестирование
- +Документация: чек-лист против тест-кейса, что обязано быть в баг-репорте, критерии входа и выхода
- +Дефекты: приоритет и серьёзность, жизненный цикл бага, что делать с невоспроизводимым дефектом
- +Процесс: этапы STLC, тестирование в спринте, регресс и дымовое тестирование
Из чего состоит тема
Так тема разложена в тренажёре: движок ведёт прогресс по каждой подтеме отдельно и возвращает те, где вы ошибаетесь.
- Основы тестирования15
- Документация и дефекты14
- Нефункциональное и нагрузка14
- Процессы и инструменты14
- Таблицы решений14
- STLC и процесс13
- Граничные значения13
- Классы эквивалентности13
- Комбинаторные и опытные13
- Состояния и переходы13
- Уровни тестирования13
- Виды тестирования12
- Логи и наблюдаемость12
Разборы подтем
Конспект по каждой: что это, как отвечать вслух, на чём валятся, плюс вопросы для самопроверки.
- Тест-документация и баг-репорты14 вопросов
- Основы тестирования15 вопросов
- Уровни тестирования13 вопросов
- Нефункциональное тестирование и нагрузка14 вопросов
- Процессы и инструменты тестирования14 вопросов
- Логи и наблюдаемость для тестировщика12 вопросов
- STLC: процесс тестирования13 вопросов
- Виды тестирования12 вопросов
- Граничные значения13 вопросов
- Комбинаторные техники и опыт13 вопросов
- Таблицы решений14 вопросов
- Классы эквивалентности13 вопросов
- Состояния и переходы13 вопросов
Примеры вопросов с разбором
- Что такое тест-кейс и что в нём обязательно должно быть?A)Предусловия, шаги, тестовые данные и ожидаемый результат — воспроизводимая проверкаB)Список шагов, которые нужно выполнить, без указания ожидаемого результатаC)Отчёт о найденном дефекте с шагами воспроизведения, серьёзностью и приоритетом ошибкиD)Общий план тестирования проекта с расписанием, ресурсами и распределением ролей в команде
показать ответ и разбор
+A)Предусловия, шаги, тестовые данные и ожидаемый результат — воспроизводимая проверка// разбор: Тест-кейс — формализованное описание одной проверки, которое любой исполнитель может повторить одинаково. Обязательные элементы: идентификатор/название, предусловия (состояние системы до), шаги выполнения по порядку, тестовые данные, и — ключевое — ожидаемый результат, с которым сравнивают фактический. Без ожидаемого результата это не тест-кейс: непонятно, пройден он или нет. Хороший кейс атомарен (проверяет одну вещь), однозначен и не зависит от того, кто его выполняет. Кейсы часто связывают с требованиями (трассируемость), чтобы видеть покрытие. Именно наличие ожидаемого результата отличает тест-кейс от простого списка действий.
- Какова главная цель тестирования ПО?A)Дать стейкхолдерам информацию о качестве и рисках продукта — для решения о релизеB)Доказать, что в программе нет ни одного дефекта и она работает правильноC)Исправить все найденные ошибки в коде продукта до его выхода в продакшенD)Написать как можно больше тест-кейсов, чтобы формально закрыть требования по документации
показать ответ и разбор
+A)Дать стейкхолдерам информацию о качестве и рисках продукта — для решения о релизе// разбор: Тестирование — не про то, чтобы «сломать» продукт или доказать, что он идеален. Его задача — собрать объективную информацию о том, насколько ПО соответствует требованиям и где риски, чтобы бизнес мог осознанно решать: релизить, доработать или отложить. Тестировщик снижает неопределённость: показывает, что работает, что нет и чем это грозит. Найденные дефекты — побочный, а не единственный результат; даже прогон без багов даёт ценную информацию (эта область проверена). Поэтому «не нашёл багов» не равно «плохо поработал».
- Какие основные уровни тестирования выделяют в порядке снизу вверх?A)Модульное → интеграционное → системное → приёмочное: от компонентов ко всей системеB)Дымовое → регрессионное → нагрузочное → приёмочное, по возрастанию сложности проверокC)Ручное → автоматизированное → нагрузочное → пользовательское, по способу выполнения проверокD)Приёмочное → системное → интеграционное → модульное, строго от общего к частному компоненту
показать ответ и разбор
+A)Модульное → интеграционное → системное → приёмочное: от компонентов ко всей системе// разбор: Уровни тестирования соответствуют этапам сборки системы и идут от мелкого к крупному. Модульное (unit) проверяет отдельный компонент/функцию в изоляции. Интеграционное — как модули взаимодействуют между собой и через интерфейсы. Системное — всю собранную систему целиком против требований. Приёмочное (acceptance/UAT) — готовность продукта к передаче, проверяет заказчик/бизнес под реальные сценарии. Каждый уровень ловит свой класс дефектов: unit — логику компонента, интеграционное — стыки, системное — сквозное поведение, приёмочное — соответствие ожиданиям бизнеса.
- Что проверяет нагрузочное тестирование (performance)?A)Поведение системы под нагрузкой: время отклика, пропускную способность, стабильностьB)Соответствие пользовательского интерфейса макетам и принятым гайдлайнам дизайнаC)Правильность бизнес-логики приложения на типовых пользовательских сценарияхD)Устойчивость приложения к взлому, инъекциям и утечкам чувствительных данных
показать ответ и разбор
+A)Поведение системы под нагрузкой: время отклика, пропускную способность, стабильность// разбор: Нагрузочное (performance) тестирование — вид нефункционального: проверяет не «что» делает система, а «как быстро и сколько держит». Ключевые метрики: время отклика (латентность), пропускная способность (запросов в секунду), потребление ресурсов, стабильность под нагрузкой и точка деградации. Отвечает на вопросы «выдержит ли распродажу», «где узкое место». Функциональность, дизайн и безопасность проверяют другие виды тестирования.
- Что такое спринт в Scrum?A)Совещание всей команды в начале каждого рабочего дняB)Фиксированная итерация (1–4 недели) с готовым инкрементом на выходеC)Формальный документ с полным списком требований к продукту на год вперёдD)Роль в команде, которая отвечает за приоритеты продуктового бэклога
показать ответ и разбор
+B)Фиксированная итерация (1–4 недели) с готовым инкрементом на выходе// разбор: Спринт — короткая итерация фиксированной длины (обычно 1–4 недели): команда берёт объём работ из бэклога и к концу выдаёт потенциально готовый инкремент продукта. Внутри спринта — планирование, ежедневная работа, ревью и ретроспектива. Для тестировщика важно, что тестирование идёт внутри спринта, а не после: тест-дизайн начинается с разбора требований, а не когда фича «уже готова». Спринт — не совещание и не документ.
- Зачем в логах приложения разделяют уровни DEBUG, INFO, WARN, ERROR?A)Чтобы логи разных уровней складывались в разные файлы и не занимали общий дискB)Чтобы фильтровать записи по важности: на проде оставляют INFO и выше, DEBUG шумитC)Чтобы уровнем задать язык сообщения: ERROR по-английски, INFO на языке пользователяD)Чтобы система по уровню сама решала, какие из ошибок чинить автоматически, не привлекая разработчика
показать ответ и разбор
+B)Чтобы фильтровать записи по важности: на проде оставляют INFO и выше, DEBUG шумит// разбор: Уровень — это метка важности записи. Она позволяет управлять детализацией и быстро находить нужное: DEBUG — подробности для отладки (шумно, на проде обычно выключен), INFO — нормальный ход событий, WARN — подозрительное, но не сломавшее работу, ERROR — то, что реально упало. На проде фильтруют от INFO и выше, а при разборе инцидента временно включают DEBUG. Тестировщику это ускоряет диагностику: он идёт сразу к ERROR/WARN около времени бага, а не читает весь поток.
- Что описывает STLC (software testing life cycle)?A)Фазы процесса тестирования: планирование, дизайн кейсов, выполнение, завершениеB)Этапы написания и компиляции исходного кода приложения от анализа до сборки релизаC)Уровни тестирования — модульное, интеграционное, системное и приёмочное по порядкуD)Жизненный цикл дефекта от его обнаружения и регистрации до финального закрытия
показать ответ и разбор
+A)Фазы процесса тестирования: планирование, дизайн кейсов, выполнение, завершение// разбор: STLC — жизненный цикл тестирования, структурирующий работу QA по фазам: анализ требований (что и можно ли тестировать), планирование (объём, ресурсы, риски, расписание — рождается тест-план), дизайн тест-кейсов и подготовка данных, настройка тестового окружения, выполнение тестов и фиксация дефектов, завершение (отчёт, метрики, ретро). У каждой фазы свои входные и выходные критерии и артефакты. STLC — часть более широкого SDLC (жизненного цикла разработки) и в Agile идёт итеративно внутри спринтов, а не одним большим этапом в конце.
- Чем функциональное тестирование отличается от нефункционального?A)Функциональное — что делает система; нефункциональное — как: скорость, надёжность, удобствоB)Функциональное выполняется вручную, а нефункциональное — автоматизированными инструментамиC)Функциональное проверяет скорость и надёжность, а нефункциональное — корректность бизнес-функцийD)Нефункциональное тестирование не связано с требованиями и проводится без каких-либо критериев
показать ответ и разбор
+A)Функциональное — что делает система; нефункциональное — как: скорость, надёжность, удобство// разбор: Функциональное тестирование отвечает на вопрос «делает ли система то, что должна»: проверяет бизнес-функции против требований — вход даёт правильный выход, сценарии работают. Нефункциональное отвечает на «насколько хорошо она это делает»: производительность и время отклика, нагрузочная устойчивость, безопасность, удобство использования (usability), совместимость, надёжность, масштабируемость. Продукт может быть функционально корректным, но непригодным из-за нефункциональных проблем (тормозит под нагрузкой, небезопасен, неудобен). Поэтому проверяют оба аспекта, а нефункциональные требования часто задают числами (SLA, время отклика).
- Почему ошибки в программах особенно часто проявляются на границах диапазонов?A)Границы кодируются условиями сравнения (< vs ≤), где легко ошибиться на единицу (off-by-one)B)Потому что на границах диапазона данные физически хранятся в другой области памятиC)Потому что пользователи чаще всего вводят именно крайние значения полей на практикеD)Потому что граничные значения дольше обрабатываются процессором и вызывают таймауты
показать ответ и разбор
+A)Границы кодируются условиями сравнения (< vs ≤), где легко ошибиться на единицу (off-by-one)// разбор: Граница диапазона в коде — это оператор сравнения: age >= 18, count < limit. Именно здесь программисты чаще всего ошибаются: путают < и ≤, включают лишний или теряют крайний элемент (off-by-one), неверно обрабатывают равенство границе. Середина диапазона проходит через ту же ветку и такими ошибками не задета, а край — задет напрямую. Поэтому тесты на самих граничных значениях и их соседях ловят непропорционально много дефектов относительно своего числа.
это 9 из 173
Ещё 164 вопросов по теме — в тренажёре, с движком повторения
Прочитать разбор и ответить самому — разные навыки. В Сеньорчике вопросы идут сессиями, а движок возвращает подтемы, где вы ошибаетесь, пока они не начнут отскакивать. Бесплатно, лимит по энергии.
Частые вопросы
Чем приоритет отличается от серьёзности дефекта?
Серьёзность описывает влияние на систему, приоритет — срочность починки для бизнеса. Классический пример: опечатка в логотипе на главной имеет низкую серьёзность и высокий приоритет.
Какие техники тест-дизайна спрашивают чаще всего?
Классы эквивалентности и граничные значения, следом таблицы решений и попарное тестирование. Обычно просят применить технику к конкретному полю или форме, а не пересказать определение.
Что спрашивают у начинающего тестировщика?
Виды и уровни тестирования, оформление баг-репорта, простой тест-дизайн и умение задать вопросы к неполным требованиям. Автоматизацию на старте спрашивают редко.