July 5

Регрессионное тестирование — Базовый уровень

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

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

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

Вопрос 1:
Что подразумевается под регрессионным тестированием?

Варианты ответа:

1.     Повторное тестирование уже работающего функционала

2.     Анализ требований перед началом разработки

3.     Тестирование только пользовательского интерфейса

4.     Тестирование новых функций перед релизом

5.     Ретест дефектов после их исправления

Объяснение:
Регрессионное тестирование — это повторное тестирование уже работающего функционала после внесения изменений в систему (добавления новых функций, исправления багов и т.д.). Цель — убедиться, что эти изменения не вызвали новых ошибок в ранее рабочем коде. Это не только про баги или интерфейс, а именно проверка того, что «старое» работает как раньше.

Выбранный ответ: Повторное тестирование уже работающего функционала

Вопрос 2:
Что является основной целью регрессионного тестирования?

Варианты ответа:

1.     Найти максимальное количество новых багов

2.     Выполнить тестирование пользовательского интерфейса

3.     Убедиться, что исправления не вызвали новых ошибок

4.     Проверить производительность приложения

5.     Проверить соответствие требований перед разработкой

Объяснение:
Основная цель регрессионного тестирования — убедиться, что после внесения изменений (например, исправлений багов или добавления новых функций) в систему не появились новые ошибки в ранее работавших участках. Это не поиск максимального количества багов и не UI-тестирование, а проверка стабильности существующего функционала после модификаций.

Выбранный ответ:
Убедиться, что исправления не вызвали новых ошибок

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

Варианты ответа:

1.     Только данные, не связанные с реальными сценариями использования

2.     Только синтетические данные, созданные автоматически

3.     Уже использованные данные, покрывающие ключевые сценарии

4.     Только данные, сгенерированные случайным образом

5.     Только данные, предоставленные заказчиком

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

Исключаем:

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

Выбранный ответ:
Уже использованные данные, покрывающие ключевые сценарии

Вопрос 4:
Какой из перечисленных видов тестирования не относится к регрессионному и не используется для проверки влияния изменений на существующий функционал?

Варианты ответа:

1.     Проверка ключевых пользовательских сценариев

2.     Проверка, что функции работают после изменений

3.     Производительное тестирование под нагрузкой

4.     Повторное выполнение интеграционных тестов

5.     Повторное выполнение юнит-тестов

Объяснение:
Регрессионное тестирование может включать:

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

Но производительное тестирование под нагрузкой (performance/load testing) — это отдельный тип тестирования, цель которого — проверить поведение системы под высокой нагрузкой, а не стабильность после изменений.

Выбранный ответ:
Производительное тестирование под нагрузкой

Вопрос 5:
Что из перечисленного является ключевым фактором при выборе тестовых данных для регрессионного тестирования?

Варианты ответа:

1.     Только формат пользовательского ввода

2.     Частота использования функциональности

3.     Предпочтения команды разработки

4.     Платформа, на которой разрабатывается продукт

5.     Выбранный язык программирования

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

Остальные варианты:

  • Формат ввода — частный случай
  • Предпочтения команды — субъективны
  • Платформа и язык — важны для разработки, но не определяют выбор тестовых данных напрямую.

Выбранный ответ:
Частота использования функциональности

Вопрос 6:
Какой из уровней тестирования чаще всего включает в себя автоматизацию для регрессионного тестирования?

Варианты ответа:

1.     Смоук-тестирование

2.     Системное тестирование

3.     Модульное тестирование

4.     Тестирование безопасности

5.     Интеграционное тестирование

Объяснение:
Для регрессионного тестирования наиболее часто автоматизируются модульные тесты.
Почему?

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

Остальные уровни:

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

Выбранный ответ:
Модульное тестирование

Вопрос 7:
Какой тип тестирования проводится после исправления конкретного дефекта?

Варианты ответа:

1.     Частичное регрессионное тестирование

2.     Повторное тестирование (Retest)

3.     Полное регрессионное тестирование

4.     Санитарное тестирование

5.     Регрессионное тестирование по приоритетам

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

Важно не путать:

  • Retest — проверка конкретного исправления.
  • Регрессионное тестирование — проверка, что после исправления не поломалось что-то другое.

Выбранный ответ:
Повторное тестирование (Retest)

Вопрос 8:
Какие тесты обычно включают в минимальный набор регрессионного тестирования?

Варианты ответа:

1.     Тесты, которые ранее падали

2.     Критические smoke-тесты и основные сценарии

3.     Все тесты, написанные за последний год

4.     Только нагрузочные тесты

5.     Только новые тесты для добавленного функционала

Объяснение:
Минимальный (или смарт-) набор для регрессионного тестирования обычно включает:

  • Критические smoke-тесты, которые проверяют базовую работоспособность системы.
  • Основные пользовательские сценарии, затрагивающие наиболее важный и часто используемый функционал.

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

Остальные варианты:

  • Все тесты за год — слишком объёмно.
  • Только упавшие — это скорее Retest.
  • Только нагрузочные — не про регрессию.
  • Только новые — не проверяют старое поведение.

Выбранный ответ:
Критические smoke-тесты и основные сценарии

Вопрос 9:
Почему существует необходимость в регрессионном тестировании?

Варианты ответа:

1.     Чтобы использовать ранее написанные тест-кейсы

2.     Чтобы проверить насколько хорошо работает новый функционал системы

3.     Чтобы создать тест-кейсы для автоматизации

4.     Необходимо проверять функционал системы на отказоустойчивость и надежность

5.     Чтобы проверить работоспособность функционала системы после внесения в нее изменений

Объяснение:
Регрессионное тестирование необходимо для проверки, что ранее работающий функционал остался работоспособным после внесения изменений. Любые изменения в коде (исправление багов, добавление новых функций) могут неожиданно повлиять на другие части системы. Поэтому важно убедиться, что старое не сломалось вместе с новым.

Остальные варианты:

  • Использование старых тестов — это следствие, а не цель.
  • Проверка нового функционала — задача других видов тестирования.
  • Создание тест-кейсов и проверка отказоустойчивости — отдельные цели.

Выбранный ответ:
Чтобы проверить работоспособность функционала системы после внесения в нее изменений

Вопрос 10:
В каком случае тест-кейс необходимо добавить в объём регрессионного тестирования?

Варианты ответа:

1.     Если тест-кейс больше не нужен

2.     Если тест-кейс покрывает критичную функциональность системы

3.     Если тест-кейс больше не находит дефекты

4.     Если тест-кейс не проверяет новую функциональность

5.     Если тест-кейс легко автоматизировать

Объяснение:
Цель регрессионного тестирования — защитить критически важный функционал от сбоев после изменений. Если тест-кейс покрывает такую критичную часть системы, он должен обязательно быть включён в регрессионный набор — независимо от того, насколько часто он ранее находил баги или насколько он автоматизируем. Это про приоритет безопасности и стабильности.

Остальные варианты:

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

Выбранный ответ:
Если тест-кейс покрывает критичную функциональность системы

Заключение

После разбора вы будете понимать:

  • что такое регрессия и зачем она нужна;
  • какие ошибки чаще всего совершают новички;
  • как отвечать на базовые вопросы по регресс-тестированию.

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