Теория тестирования
Уровни тестирования: модульное, интеграционное, системное и приёмочное
Уровни тестирования показывают, какая часть системы сейчас под тестом. По программе ISTQB их четыре: компонентное (модульное, unit) тестирование проверяет отдельную функцию или модуль, интеграционное проверяет, как работают вместе два модуля или системы, системное охватывает всё приложение, а приёмочное решает, готов ли продукт к сдаче заказчику. Отдельно от уровней тесты делят на позитивные, где система работает по штатному сценарию с верными данными, и негативные, где ей дают неверные данные, и позитивные проверяют первыми.
- 4 уровня
- компонентное, интеграционное, системное и приёмочное
- Сначала позитивные
- основной сценарий проверяют раньше неверного ввода
- Бесплатно
- урок с заданиями в моём базовом курсе
Что такое уровни тестирования
Уровни тестирования – это группы активностей тестирования, которые организуются и управляются как единое целое. Так их определяет программа ISTQB Foundation Level, и определение стоит запомнить: на собеседовании его могут спросить. На каждом уровне под тестом свой кусок системы, от одной функции в коде до всего приложения.
Классификаций тестирования много, и в разных источниках они отличаются. В уроке 2020 года я называю три уровня и добавляю к ним приёмочное тестирование, в разборе 2025 года говорю уже о четырёх, как в программе ISTQB 2018 года. В программе 2023 года интеграционный уровень разделён на компонентный интеграционный и системный интеграционный, поэтому уровней там пять.
Компонентное (модульное, unit)
Проверяет отдельную функцию или метод в коде. Такие тесты пишут разработчики, а тестировщики, даже автоматизаторы, обычно ими не занимаются. Иногда модульным называют проверку части приложения, например модуля регистрации, но под юнит-тестами лучше понимать проверку отдельных частей кода.
Интеграционное
Проверяет, как работают вместе два модуля и больше. Пример из урока: со страницы корзины интернет-магазина заказ оплачивается через платёжную систему.
Системное
Проверяет собранную систему целиком на соответствие требованиям. В магазине это весь путь пользователя: зарегистрироваться, найти товар, положить его в корзину, оплатить заказ и отследить доставку.
Приёмочное
Проводится, когда готовый продукт или его часть сдают заказчику, и отвечает, готов ли продукт к выпуску. Проверки строят по спецификации и требованиям, и смотрят в основном главную функциональность.
Интеграционное тестирование и интерфейсы
Интеграционное тестирование бывает двух видов. Компонентное интеграционное проверяет, как модули одного приложения взаимодействуют между собой. Системное интеграционное проверяет взаимодействие разных систем и интерфейсы, через которые они общаются. Здесь есть ловушка: по ISTQB системное интеграционное тестирование идёт после системного или параллельно с ним, хотя по названию кажется, что раньше.
В интернет-магазине пример системной интеграции – связь с внешней службой доставки. Тестировщик оформляет заказ и проверяет, что служба получила адрес и состав посылки, а в карточке заказа появился трек-номер. Отдельно проверяют, что будет, если сервис доставки не отвечает: заказ должен остаться в магазине, и передачу нужно повторить, когда сервис снова доступен.
Есть ещё подходы к интеграции: большой взрыв, снизу вверх и сверху вниз. В них участвуют драйверы и заглушки, и я считаю, что новичку они не обязательны, ведь с ними работают далеко не все опытные специалисты.
Системы общаются через интерфейсы, и в уроке разобраны три вида.
API (application programming interface)
Набор методов, через которые одна программа пользуется функциями другой. Так магазин подключает готовую платёжную систему вместо того, чтобы писать свою, и так же сайты подключают вход через социальные сети.
CLI (command line interface)
Командная строка, где команды компьютеру дают текстом с клавиатуры, как в командной строке Windows.
GUI (graphical user interface)
Графический интерфейс, в котором функции программы представлены элементами на экране. Пример – страница, открытая в браузере.
Приёмочное тестирование: альфа, бета и другие формы
Приёмочное тестирование – финальный этап проверки перед релизом, и его цель в том, чтобы решить, готов ли продукт к выпуску. Дефекты здесь тоже находят, но по ISTQB много дефектов на приёмке означает риск для всего проекта.
К английским названиям стоит привыкать сразу: в работе чаще встречаются аббревиатуры вроде UAT, чем русские термины. У приёмочного тестирования несколько форм.
Пользовательское (UAT, user acceptance testing)
Проводят конечные пользователи. Перед релизом собирают группу, и она проверяет, отвечает ли продукт её ожиданиям. Программу для бухгалтеров дают протестировать бухгалтерам.
Эксплуатационное
Сотрудники эксплуатации или системные администраторы проверяют систему в среде, похожей на рабочую: резервное копирование, восстановление после аварии, безопасность. Перед запуском нового интернет-банка администраторы восстанавливают базу из ночной резервной копии на стенде и проверяют, что клиенты входят и видят историю платежей, а восстановление уложилось в оговорённое время.
Контрактное и нормативное
Контрактное проверяет соответствие критериям приёмки из договора. Нормативное проверяет соответствие законам и стандартам, например ГОСТу или европейскому регламенту о защите персональных данных GDPR, за нарушение которого грозят крупные штрафы.
Альфа-тестирование
Проходит на мощностях компании-разработчика, но его проводят люди, независимые от разработки: потенциальные или существующие клиенты, операторы или независимая группа тестирования.
Бета-тестирование
Проходит снаружи и без участия разработчиков. Бета-версию получает группа пользователей, иногда в тысячи человек, и по её отзывам до выхода на рынок исправляют оставшиеся дефекты. Так часто делают с компьютерными играми.
Позитивные и негативные тесты
Кроме уровней, тесты делят по позитивности сценария. Позитивный тест проверяет нормальное, ожидаемое поведение системы, то, ради чего её создавали. На калькуляторе из урока 2 + 2 даёт 4. В разборе 2025 года я называю такие проверки happy path: правильный логин, правильный пароль, кнопка входа, и пользователь в системе.
Негативный тест проверяет нештатное поведение, то есть исключительные ситуации и неверные данные. Деление на ноль на калькуляторе должно закончиться сообщением об ошибке, а вход с верным логином и неверным паролем должен сообщить, что пароль не подходит. Глоссарий ISTQB описывает негативное тестирование скорее как настрой тестировщика, чем как отдельную технику.
Многие новички думают, что сначала нужно попытаться сломать систему. Я с этим не согласен: первыми идут позитивные тесты, особенно когда времени мало, а в тестировании его всегда мало. Представьте реакцию заказчика, который не может войти в систему с верными данными, хотя тестировщик успел проверить логин из 9999 символов.
Пример: оплата заказа на каждом уровне
Одна и та же функция интернет-магазина, оплата заказа, проверяется на каждом уровне по-своему. Чем выше уровень, тем крупнее кусок системы под тестом и тем ближе проверка к тому, что делает живой покупатель.
Компонентный
Разработчик пишет юнит-тест на функцию, которая считает сумму заказа по товарам в корзине.
Интеграционный
Проверяется, что корзина передаёт сумму в модуль оплаты, а платёжная система принимает её и возвращает ответ.
Системный
Проходится весь путь покупателя: регистрация, поиск товара, корзина, оплата и отслеживание заказа.
Приёмочный
Заказчик или группа пользователей проходят основные сценарии покупки и решают, можно ли выпускать магазин.
Позитивный и негативный тест
На любом уровне позитивный тест платит действующей картой и ждёт подтверждения заказа. Негативный вводит карту с истёкшим сроком и ждёт понятного сообщения об ошибке.
Видеоуроки, шпаргалка и задания
Я разбираю уровни тестирования и позитивность тестов в четвёртом уроке курса "Тестировщик с нуля" на YouTube, а в коротком ролике 2025 года повторяю тему как вопрос с собеседования. В бесплатном базовом курсе по тестированию ей посвящён урок "Уровни тестирования. Позитивные и негативные тесты", и после теории в нём идут задания.
Шпаргалка показывает уровни на пирамиде и разбирает каждый из них. В тренажёре классификации примеры тестов нужно разложить по уровням, видам и методам.
Курсы по теме
Вопросы и ответы
Какие есть уровни тестирования?
По программе ISTQB 2018 года их четыре: компонентное (модульное, unit), интеграционное, системное и приёмочное. Компонентное проверяет отдельную функцию кода, интеграционное проверяет, как модули или системы работают вместе, системное охватывает всё приложение, а приёмочное решает, готов ли продукт к сдаче заказчику.
Сколько уровней тестирования: три, четыре или пять?
Зависит от источника. В старых материалах, включая мой урок 2020 года, называют три уровня и отдельно приёмочное тестирование. В программе ISTQB 2018 года уровней четыре, а в программе 2023 года интеграционный уровень разделён на компонентный интеграционный и системный интеграционный, так что их пять. Я советую запомнить четыре и уметь рассказать, что проверяют на каждом.
Кто проводит модульное (unit) тестирование?
Обычно разработчики. Юнит-тест проверяет отдельную функцию или метод, и чтобы его написать, нужны доступ к коду и умение программировать. Тестировщики, даже автоматизаторы, юнит-тесты чаще всего не пишут.
Чем альфа-тестирование отличается от бета-тестирования?
Альфа-тестирование проходит на мощностях компании-разработчика, и проводят его люди, независимые от разработки, например клиенты или независимая группа тестирования. Бета-тестирование проходит снаружи: бета-версию получает группа пользователей и присылает отзывы до выхода продукта на рынок.
Что такое позитивное и негативное тестирование?
Позитивный тест проверяет штатный сценарий с верными данными, например вход с правильными логином и паролем. Негативный проверяет поведение при неверных данных и в исключительных ситуациях: деление на ноль на калькуляторе должно закончиться сообщением об ошибке.
Что проверять сначала: позитивные или негативные тесты?
Позитивные. Заказчику важнее всего, чтобы основные функции работали по требованиям, а время на тестирование всегда ограничено. Негативные проверки идут следом.
Посмотреть программы курсов
Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.

