---
title: Основные концепции тестирования
questionDates:
  q-transfer-0381: '2026-10-01'
  q-transfer-0382: '2026-10-01'
  q-transfer-0383: '2026-10-01'
  q-transfer-0396: '2026-10-01'
  q-transfer-0397: '2026-10-01'
  q-transfer-0398: '2026-10-01'
seo:
  description: >-
    Тема «Основные концепции тестирования» для собеседования QA. Что такое
    тестирование? Зачем тестировать ПО?
  title: Основные концепции тестирования — QA
---

[Все темы QA](/prep/qa)

## <strong>Что такое тестирование?</strong> [#q-14bee738d69b81eba8a7d3766478bf01]

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

:::note[Ссылки для изучения]

1. [Тестирование и 7 основных этапов проведения](https://neiros.ru/blog/code/testirovanie-i-7-osnovnykh-etapov-ego-provedeniya/)
   :::

---

## <strong>Зачем тестировать ПО?</strong> [#q-14bee738d69b818781a4c3584d3ee965]

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

:::note[Ссылки для изучения]

1. [Тестирование и 7 основных этапов проведения](https://neiros.ru/blog/code/testirovanie-i-7-osnovnykh-etapov-ego-provedeniya/)
   :::

---

## <strong>Какие существуют этапы тестирования?</strong> [#q-14bee738d69b81ea84e1de20a916842e]

Этапы тестирования ПО обычно включают&#58;

1. <strong>Планирование тестирования&#58;</strong> определение целей, стратегии
   и методов тестирования.

1. <strong>Дизайн тестов&#58;</strong> разработка тестовых случаев и сценариев
   на основе требований.

1. <strong>Исполнение тестов&#58;</strong> запуск тестовых случаев и сбор
   результатов.

1. <strong>Анализ результатов&#58;</strong> оценка и сопоставление полученных
   данных с ожидаемыми результатами.

1. <strong>Отчетность&#58;</strong> документирование результатов тестирования и
   выявленных ошибок.

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

:::note[Ссылки для изучения]

1. [Какие бывают виды тестирования](https://ru.hexlet.io/blog/posts/vidy-testirovaniya)
   :::

---

## <strong>Какие типы тестирования можете назвать?</strong> [#q-14bee738d69b81d1a1e5ee99210fdf05]

Различают следующие основные типы тестирования программного обеспечения&#58;

1. <strong>Модульное тестирование (</strong>
   <code>Unit testing</code>
   <strong>)&#58;</strong> Проверка отдельных модулей или компонентов программы
   на корректность их работы.

1. <strong>Интеграционное тестирование (</strong>
   <code>Integration testing</code>
   <strong>)&#58;</strong> Проверка взаимодействия между различными модулями или
   компонентами программы.

1. <strong>Системное тестирование (</strong>
   <code>System testing</code>
   <strong>)&#58;</strong> Проверка всей системы как единого целого для
   подтверждения соответствия требованиям.

1. <strong>Приемочное тестирование (</strong>
   <code>Acceptance testing</code>
   <strong>)&#58;</strong> Проверка программы на соответствие требованиям
   заказчика перед ее принятием.

1. <strong>Регрессионное тестирование (</strong>
   <code>Regression testing</code>
   <strong>)&#58;</strong> Повторное выполнение тестов для обнаружения новых
   ошибок после внесения изменений в программное обеспечение.

1. <strong>Нагрузочное тестирование (</strong>
   <code>Load testing</code>
   <strong>)&#58;</strong> Оценка производительности программы при определенной
   нагрузке.

1. <strong>Стресс-тестирование (</strong>
   <code>Stress testing</code>
   <strong>)&#58;</strong> Оценка стабильности программы при высоких нагрузках
   или необычных условиях.

1. <strong>Смоук-тестирование (</strong>
   <code>Smoke testing</code>
   <strong>)&#58;</strong> Первичное быстрое тестирование для проверки базовой
   функциональности после внесения изменений.

:::note[Ссылки для изучения]

1. [Типы тестирования: функциональное, нефункциональное и проверки изменений — ISTQB, PDF, раздел 2.2](https://www.rstqb.org/files/content/rstqb/downloads/ISTQB%20Downloads/ISTQB_CTFL_Syllabus-v4.0.1-RU-1.pdf#page=31)
   :::

---

## <strong>Какие уровни тестирования знаете?</strong> [#q-14bee738d69b81afb68de1c64e3344d8]

Уровни тестирования программного обеспечения включают&#58;

1. <strong>Модульное тестирование&#58;</strong> Проверка отдельных модулей или
   функций программы.

1. <strong>Интеграционное тестирование&#58;</strong> Проверка взаимодействия
   между модулями или компонентами.

1. <strong>Системное тестирование&#58;</strong> Проверка работы всей системы как
   единого целого.

1. <strong>Приемочное тестирование&#58;</strong> Проверка соответствия программы
   требованиям заказчика перед ее принятием.

:::note[Ссылки для изучения]

1. [Основы и виды тестирования](https://sedtest-school.ru/types-of-testing/osnovy-testirovaniya-vidy-testirovaniya-po-kriteriyu-urovnya/)
   :::

---

## <strong>Какие техники тест-дизайна знаете?</strong> [#q-14bee738d69b8190b99cf9d1c2d9a829]

Некоторые техники тест-дизайна включают&#58;

1. <strong>Эквивалентное разбиение&#58;</strong> Разделение данных на классы
   эквивалентности для тестирования.

1. <strong>Граничное значение&#58;</strong> Тестирование значений вблизи границ
   допустимых диапазонов.

1. <strong>Парное тестирование (</strong>
   <code>Pairwise Testing</code>
   <strong>)&#58;</strong> Создание комбинаций параметров для проверки
   взаимодействия между ними.

1. <strong>Тестирование состояний&#58;</strong> Проверка изменения состояний
   системы в ответ на действия.

1. <strong>Тестирование пути (</strong>
   <code>Path Testing</code>
   <strong>)&#58;</strong> Тестирование различных путей выполнения программы.

1. <strong>Тестирование интерфейсов&#58;</strong> Проверка взаимодействия между
   компонентами программного обеспечения.

:::note[Ссылки для изучения]

1. [Техники тест-дизайна: классы, границы, решения, состояния и pairwise — ISTQB, PDF, глава 3](https://www.rstqb.org/files/content/rstqb/downloads/ISTQB%20Downloads/ISTQB_CTAL-TA_Syllabus_v3.1.2_RU-1.pdf#page=29)
2. [Тест-дизайн и выбор тестовых данных. Artsiom Rusau QA Life, с 0:38](https://www.youtube.com/watch?v=HJPF5qJx7jg&t=38s)

:::

---

## <strong>Что такое техника анализа классов эквивалентности?</strong> [#q-14bee738d69b813283f6e401dd2c6222]

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

:::note[Ссылки для изучения]

1. [Техника анализа классов эквивалентности](https://testirovanieprob.blogspot.com/p/22.html#:~:text=%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0%20%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%20%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2%20%D1%8D%D0%BA%D0%B2%D0%B8%D0%B2%D0%B0%D0%BB%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8%20-,%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D0%BE%D0%B4%D0%B8%D0%BD%20%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%20%D1%8D%D1%82%D0%BE%D0%B9%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D1%8B)
2. [Классы эквивалентности с примером. Artsiom Rusau QA Life, с 1:50](https://www.youtube.com/watch?v=HJPF5qJx7jg&t=110s)

:::

---

## <strong>Что такое техника анализа предельных значений? В чем ценность этой техники?</strong> [#q-14bee738d69b8118b794fd5da1b7c0f3]

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

:::note[Ссылки для изучения]

1. [Анализ граничных значений: применимость, двух- и трёхточечное покрытие — ISTQB, PDF, раздел 3.2.2](https://www.rstqb.org/files/content/rstqb/downloads/ISTQB%20Downloads/ISTQB_CTAL-TA_Syllabus_v3.1.2_RU-1.pdf#page=31)
2. [Анализ граничных значений с примером. Artsiom Rusau QA Life, с 6:13](https://www.youtube.com/watch?v=HJPF5qJx7jg&t=373s)

:::

---

## <strong>Что такое</strong> <code>Regression</code> <strong>и</strong> <code>Confirmation</code> <strong>тестирование, какая между ними разница?</strong> [#q-14bee738d69b817e9847e35597c07256]

<code>Regression testing</code> и <code>Confirmation testing</code> являются
видами тестирования программного обеспечения, которые выполняются в различных
контекстах и имеют разные цели&#58;

{/* prettier-ignore */}
1. <code>Regression testing</code> <strong>(регрессионное тестирование)</strong>&#58;

    - <strong>Цель</strong>&#58; Проверка того, не повлияли ли внесенные изменения в программу на уже существующий функционал. Это необходимо для обеспечения того, что новые функции или исправления ошибок не привели к появлению новых ошибок в старом коде.

    - <strong>Процесс</strong>&#58; Запуск тестов, которые проверяют работу существующих функций и аспектов системы после внесенных изменений.

1. <code>Confirmation testing</code> <strong>(конфирмационное тестирование)</strong>&#58;

    - Цель&#58; подтвердить, что конкретный ранее обнаруженный дефект исправлен.

    - <strong>Процесс</strong>&#58; Запуск тестов, направленных на проверку только тех частей системы, которые были затронуты в процессе исправления конкретного бага или изменения.

<strong>Разница</strong>&#58;

- Основное различие между ними заключается в целях и областях применения&#58;
  - <strong>Регрессионное тестирование</strong> фокусируется на общей проверке
    старого и нового кода после внесенных изменений.

  - <strong>Конфирмационное тестирование</strong> сосредотачивается на проверке
    конкретного исправления или функции после его внесения.

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

:::note[Ссылки для изучения]

1. [Подтверждение исправления и регрессионное тестирование — ISTQB CTFL, PDF, раздел 2.2](https://www.rstqb.org/files/content/rstqb/downloads/ISTQB%20Downloads/ISTQB_CTFL_Syllabus-v4.0.1-RU-1.pdf#page=32)
   :::

---

## Как построить таблицу решений для тестов? [#q-transfer-0381]

Строками таблицы делают условия и действия, а каждый столбец представляет одно правило, то есть комбинацию значений условий и ожидаемых действий. Сначала перечисляют независимые условия и все варианты, затем отмечают невозможные или запрещённые комбинации. Одинаковые по результату столбцы можно объединить через «неважно», если это не скрывает риск. Из оставшихся правил получают по одному или несколько тестов с конкретными данными. Таблица особенно полезна для скидок, прав и маршрутизации. Она не обязана перебрать декартово произведение: цель состоит в покрытии различных решений, а не всех комбинаций ради числа.

:::note[Ссылки для изучения]

1. [Таблица решений: условия, правила, невозможные комбинации и сворачивание — ISTQB, PDF, раздел 3.2.3](https://www.rstqb.org/ru/istqb-downloads.html?cid=13630&file=files%2Fcontent%2Frstqb%2Fdownloads%2FISTQB+Downloads%2FISTQB_CTAL-TA_Syllabus_v3.1.2_RU-1.pdf#page=32)
   :::

---

## Как тестировать переходы между состояниями? [#q-transfer-0382]

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

:::note[Ссылки для изучения]

1. [Состояния, события и допустимые переходы: покрытие последовательностей — ISTQB, PDF, раздел 3.2.4](https://www.rstqb.org/ru/istqb-downloads.html?cid=13630&file=files%2Fcontent%2Frstqb%2Fdownloads%2FISTQB+Downloads%2FISTQB_CTAL-TA_Syllabus_v3.1.2_RU-1.pdf#page=34)
   :::

---

## Как обеспечить независимость тестов? [#q-transfer-0383]

Каждый тест должен создавать собственные данные и не зависеть от порядка запуска. Общие пользователи, файлы, очереди и порты получают уникальный namespace; внешние зависимости заменяют контролируемыми моками или одноразовыми контейнерами там, где это соответствует уровню проверки. Cleanup выполняют независимо от исхода теста, но лучше начинать из известного чистого состояния, а не надеяться только на уборку. Набор запускают в случайном порядке и параллельно: изменение результата указывает на утечку состояния. Глобальные часы, кэш и singleton тоже считаются общим состоянием и требуют контроля.

:::note[Ссылки для изучения]

1. [Независимые тесты: чистое начальное состояние БД и изоляция ресурсов — кейс Циан](https://habr.com/ru/companies/cian/articles/802673/)
   :::

---

## Когда BDD становится неэффективным? [#q-transfer-0396]

BDD теряет смысл, если сценарии пишет один автоматизатор после реализации, а продукт, разработка и QA не обсуждают примеры вместе. Технические шаги вроде кликов и селекторов превращают feature-файлы в дорогую копию тестового кода. Дублирующиеся сценарии, длинные background и попытка описать каждую деталь повышают стоимость поддержки без нового знания. BDD полезен для спорных бизнес-правил и общего языка. Для простого CRUD, алгоритма или низкоуровневой проверки лучше могут подойти unit-тест, таблица решений или обычная спецификация. Эффективность оценивают по устранённым недопониманиям, а не числу сценариев Gherkin.

:::note[Ссылки для изучения]

1. [Когда BDD сводят к слою Gherkin: потеря коммуникации и лишняя поддержка — Баз Дейкстра](https://software-testing.ru/library/testing/other-testing/4090-to-bdd-or-not-to-bdd)
   :::

---

## Когда pairwise-тестирование неприменимо? [#q-transfer-0397]

Pairwise предполагает, что большинство значимых дефектов вызывается взаимодействием пар параметров. Его недостаточно, если известен риск комбинации трёх и более факторов, например роль, регион и способ оплаты, либо если безопасность и расчёты требуют явного полного покрытия. Сложные ограничения между значениями могут сделать сгенерированные комбинации невозможными или скрыть обязательный сценарий. При двух параметрах метод почти ничего не сокращает. Pairwise также не заменяет граничные значения и переходы состояний. Его применяют после фиксации обязательных высокорисковых тестов и валидных ограничений, а результат проверяют предметно.

:::note[Ссылки для изучения]

1. [Ограничения попарного тестирования: взаимодействия трёх факторов и ограничения комбинаций — ISTQB, PDF, раздел 3.2.6](https://www.rstqb.org/ru/istqb-downloads.html?cid=13630&file=files%2Fcontent%2Frstqb%2Fdownloads%2FISTQB+Downloads%2FISTQB_CTAL-TA_Syllabus_v3.1.2_RU-1.pdf#page=39)
   :::

---

## Как применять прогнозирование ошибок? [#q-transfer-0398]

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

:::note[Ссылки для изучения]

1. [Предположение об ошибках: гипотезы, применение и ограничения — ISTQB, PDF, раздел 3.3.1](https://www.rstqb.org/ru/istqb-downloads.html?cid=13630&file=files%2Fcontent%2Frstqb%2Fdownloads%2FISTQB+Downloads%2FISTQB_CTAL-TA_Syllabus_v3.1.2_RU-1.pdf#page=42)
   :::
