Собеседование QA Junior++ / Middle — вопросы с короткими ответами
Цикломатическая сложность — Матрица отслеживания требований — Объясните понятия bug leakage/bug release, defect triage, test harness — Объясните суть тестирования All-pair, Failover, Fuzz, Pilot, DevBox — Критерии входа и выхода — Тестирование и дебаг — Agile и манифест — Lean — Роли в Scrum — Скрам-митинг — TDD — Латентный и замаскированный баг — PDCA-цикл — Тестовые метрики— Context-Driven-Testing
В чем разница между bug leakage и bug release?
Bug leakage: когда протестированный продукт выпущен на рынок, и пользователь нашёл баг. Подразумевается, что этот баг прошел мимо внимания QA-команды в процессе тестирования.
Bug release: новая версия продукта выпущена на рынок, и в ней есть баг, известный команде, и его предполагается пофиксить в следующей версии. Обычно это баги с низким приоритетом; их принято указывать в примечаниях к релизу, то есть наличие бага не скрывается от конечных пользователей.
Что такое defect triage?
QA-процесс, в котором дефектам присваиваются приоритеты по серьезности, риску, времени нужном чтобы пофиксить, и пр. Обычно по этому поводу проводится отдельный митинг команды, с участием стейкхолдеров, а также dev- и QA-команд, проджект-менеджера, бизнес-аналитика (владельца продукта), и других причастных лиц, и они приваивают/уточняют приоритеты багов.
Что такое test harness?
(Средства тестирования) — коллекция тестовых сценариев и тестовых данных, используемая в юнит— и интеграционном тестировании. Она включает стабы и драйверы для модулей и интегрированных компонентов.
Что такое all pair тестирование?
(Тестирование всех пар / чаще попарное тестирование) — в котором в приложение подаются все возможные комбинации значений входных параметров.
Что такое failover-тестирование?
(Тестирование на отказ) — проверка способности приложения/сайта выделять больше ресурсов (например больше памяти и места на сервере) в случае отказа, и выполнять резервное копирование (бекап) критически важных частей. Как правило сочетается с тестированием восстановления после отказа.
Что такое fuzz-тестирование?
В приложение подается большой объем рендомных данных. Таким способом иногда удается найти дыры в безопасности и другие проблемы.
Что такое пилотное тестирование?
(Pilot testing) — своего рода «репетиция» или «прогон» тестов, выполняемый небольшим количеством конечных пользователей, которые оценивают систему и дают фидбек перед этапом финального деплоя.
Что такое dev-box тестирование?
Выполняется разработчиком или, реже, тестировщиком на девелоперской системе до передачи в репозиторий. Цель: проверить основные функции приложения на стабильность и готовность к обычному тестированию.
Что такое матрица отслеживания требований?
(Requirement traceability matrix, RTM) — таблица, сопоставляющая требования «высокого уровня» (кратко сформулированные основные) с детализированными требованиями «на низком уровне», с тест-планами, и тест-кейсами. Это помогает повысить тестовое покрытие.
Что такое цикломатическая сложность?
(Cyclomatic complexity). Мера сложности компьютерной программы, описанная через количество независимых путей выполнения в программе. Дает понимание, какие усилия придется приложить для тестирования функциональности, проще говоря, какое минимальное количество тестов понадобится. Описывается выражением вида:
Цикломатическая сложность = L — N + 2P, где:
L — количество ребер в графе выполнения программы
N — количество узлов (нодов)
P — количество отсоединенных частей в графе
Что такое критерии входа?
Набор предварительных условий для начала процесса тестирования, включает тестовое окружение, инструменты, тестовые данные, базы данных, и прочее необходимое.
А что такое критерии выхода?
Формализированный набор условий, описывающий согласованные заранее функции / состояние приложения, которые будут свидетельствовать об успешном завершении тестирования.
Уточните разницу между тестированием и дебагом?
Тестирование выполняется QA-командой с целью найти баги в системе.
Дебаг проводится командой разработки с целью устранения дефекта и предотвращения в будущем.
Тестирование возможно без знания «внутренностей» программы, ее архитектуры.
Дебаг требует понимания архитектуры программы, ее кода.
Опишите Agile в двух словах.
Эджайл стоит на двух подходах, итеративном и инкрементальном. Agile-модель разработки «разбивает» приложение на небольшие билды, над которыми работает команда. Обеспечивает быструю доставку и быструю адаптацию к изменяющимся условиям.
Перечислите 4 Главных Ценности из Манифеста Agile.
- Индивидуальности и Взаимодействия между ними — выше (приоритетнее) процессов и инструментов.
- Работающий софт — выше подробной документации.
- Взаимопонимание с клиентами — выше контрактных обязательств.
- Отвечать на изменения — выше следования плану.
Что такое Lean-методология?
Lean-модель разработки (и тестирования), или Экономная методология (здесь подробнее), это одна из эджайл-методологий, основанная на принципах экономного производства (на опыте японских промышленников середины XX века, которые научились делать свою продукцию одновременно очень дешевой и очень качественной). Принципы Lean: экономия усилий, концентрация на главном, устранение «всего лишнего», быстрая доставка софта, внимательная оптимизация времени, денег, и усилий.
Какие бывают роли в скраме?
- Владелец продукта. Он «повелевает» разработкой продукта, назначает задачи команде, выступает в качестве связующего звена между скрам-командой (разработчиков) и стейкхолдерами.
- Скрам-мастер. Мониторит, соблюдаются ли правила скрам-командой, и проводит скрам-митинги.
- Скрам-команда. Участвует в скрам-митингах и выполняет присвоенные задачи.
Что такое скрам-митинг?
Ежедневный сбор команды, в методологии Scrum. Созывает скрам-мастер. Обсуждаются апдейты по процессам предыдущего дня, также задачи на следующий день, и проясняют контексты.
Что такое TDD?
(Test Driven Development). Методология разработки ПО, в которой разработка базируется «на основе тест-кейсов» по функциональности. В TDD сначала создаются тест-кейсы, а затем, «под эти тест-кейсы» пишется код приложения, который должен нормально «пройти» через эти тест-кейсы. Далее код рефакторят.
В чем разница между латентным и замаскированным дефектом?
Латентный дефект — неидентифицированный дефект в текущем релизе, не обнаруженный из-за того что условия, при которых он проявляется, слишком редкие/специфические. Такие дефекты случаются лишь при определенных событиях (вводах), которые нельзя предсказать наперед.
Замаскированный дефект — существующий в приложении, но не вызывающий проблем, из-за того что он как бы «заслонен» другим, более явным дефектом, или этот явный дефект по какой-то причине мешает найти более «глубокий» дефект.
Что такое PDCA-цикл тестирования?
Это непрерывное совершенствование процессов, выполняемое в таком порядке:
- План. Планируются цели, текущие и глобальные, и действия, которые должны улучшить удовлетворенность клиентов.
- Выполнение. План работает. Клиенты обслуживаются более качественно.
- Проверка плана, насколько точно выполняется, все ли учтено.
- Коррекция. Результаты проверки учитываются, что еще лучше позволяет достичь целей из п.1.
Что такое метрика тестирования?
Количественный показатель прогресса (выполнения) проекта. Каждый проект имеет свой таймлайн, поэтому обеспечение доставки проекта вовремя — требует задания промежуточных результатов на какую-то дату, и это показывает тестовая метрика.
Что такое Context-driven-тестирование?
Тип тестирования, при котором изменяются и «перенастраиваются» практики и методологии в зависимости от контекста в проекте.
Вместо дотошного следования однажды прописанным лучшим практикам выбирают то что лучше работает «здесь и сейчас», учитывая скиллы и опытность команды.