Тестирование программного обеспечения (ПО) — обязательный этап жизненного цикла разработки (SDLC). Его задача: убедиться, что система соответствует требованиям, работает стабильно и защищена от уязвимостей.
Классификация тестирования строится по трём независимым осям:
Сделайте следующий шаг в карьере
Подберите обучение, которое поможет освоить новые компетенции
Главная метафора для QA-инженера — пирамида тестирования. В основании — многочисленные быстрые юнит-тесты, в середине — интеграционные, на вершине — медленные системные и приёмочные. Дефект, найденный на уровне юнит-теста, обходится в 10–15 раз дешевле, чем тот же баг после релиза.
| Вид тестирования | Фокус | Объект | Ключевые инструменты |
|---|---|---|---|
| Юнит-тестирование | Функция/метод в изоляции | Код | JUnit, pytest, NUnit |
| Интеграционное | Взаимодействие модулей | Интерфейсы и API | REST-assured, Postman |
| Системное | Полное приложение | Сквозные сценарии | Selenium, Cypress |
| Приёмочное (UAT) | Бизнес-требования | Рабочие процессы | TestRail, JIRA |
| Нагрузочное | Производительность | Трафик | JMeter, Gatling, k6 |
| Тестирование безопасности | Уязвимости | Код, API, конфигурации | OWASP ZAP |
| Регрессионное | Стабильность после изменений | Весь набор тестов | Selenium, Cypress |
| API-тестирование | Запросы и ответы | REST/SOAP/GraphQL | Postman, SoapUI |
| Мобильное | Функции на устройствах | iOS/Android | Appium, XCTest |
Таблица. Виды тестирования ПО: фокус, объект и ключевые инструменты.

Функциональное тестирование проверяет, что делает система — выполняет ли она заявленные функции. Базовый принцип — «чёрный ящик»: тестировщик проверяет поведение приложения, не зная его внутренней архитектуры.
Юнит-тестирование проверяет отдельную функцию, метод или класс в полной изоляции. Это основание пирамиды тестирования. Тесты пишут разработчики. Инструменты: JUnit и NUnit (Java и .NET), pytest (Python), Jest (JavaScript). В CI/CD пайплайне юнит-тесты запускаются при каждом коммите.
Интеграционное тестирование проверяет взаимодействие между модулями. Три стратегии:
Системное тестирование проверяет полностью интегрированное приложение в максимально реальном окружении. Объект: сквозные сценарии, охватывающие подсистемы, базы данных, сети и сторонние сервисы. Проводит QA-команда на стейджинге.
Приёмочное тестирование — финальный уровень. UAT (User Acceptance Testing): заинтересованные стороны проходят ключевые рабочие процессы. Альфа-тестирование — проводится внутри компании. Бета-тестирование — реальные пользователи работают с продуктом в реальных условиях.
Нефункциональное тестирование отвечает на вопрос «как», а не «что». Медленный отклик вытесняет пользователей, уязвимость в коде — репутационный и финансовый ущерб.
Нагрузочное (Load Testing) — имитирует ожидаемый реальный трафик. Стресс-тестирование — нагружает систему сверх нормы, чтобы найти точку отказа. Spike-тестирование — проверяет реакцию на резкие кратковременные пики. Soak-тестирование — длительная нагрузка в течение часов или суток. Инструменты: JMeter, Gatling, LoadRunner, k6.
Пентест: этические хакеры имитируют реальные атаки — SQL-инъекции, обход аутентификации. Сканирование уязвимостей — OWASP ZAP проверяет код на известные проблемы. Fuzz-тестирование — система получает случайные входные данные. Проводится по стандартам OWASP и PCI DSS.
Юзабилити-тестирование: реальные пользователи выполняют задачи под наблюдением. Тестирование доступности: проверяет соответствие WCAG. Тестирование совместимости: работа в разных браузерах и ОС. Инструменты: BrowserStack, Sauce Labs.
| Параметр | Ручное | Полуавтоматизированное | Автоматизированное |
|---|---|---|---|
| Скорость выполнения | Низкая | Средняя | Высокая |
| Стоимость внедрения | Низкая | Средняя | Высокая |
| ROI на длинном горизонте | Низкий | Средний | Высокий |
| Адаптивность к изменениям | Высокая | Средняя | Требует поддержки |
| Лучшее применение | Юзабилити, exploratory | Нестабильный UI | Регрессия, нагрузка |
Таблица 1. Сравнение ручного, полуавтоматизированного и автоматизированного тестирования.
Дымовое тестирование (smoke testing) — широкое, поверхностное. Санитарное тестирование (sanity testing) — узкий фокус на одном компоненте. Регрессионное тестирование — перезапускает весь набор тестов после любых изменений.
Пора сменить профессию? Начните с понятного плана
Подберите программу под ваш опыт, цели и желаемый формат занятости
| Параметр | Дымовое | Санитарное | Регрессионное |
|---|---|---|---|
| Охват | Широкий, поверхностный | Узкий, точечный | Полный набор тестов |
| Цель | Стабильность сборки | Проверка исправления | Отсутствие регрессий |
| Когда выполняется | После каждой сборки | После незначительного патча | После любых изменений |
| Степень автоматизации | Часто автоматизировано | Ручное или авто | Преимущественно автоматизировано |
Таблица 2. Сравнение дымового, санитарного и регрессионного тестирования.

API-тестирование проверяет корректность запросов и ответов REST, SOAP или GraphQL. Инструменты: Postman, REST-assured, SoapUI.
Тестирование мобильных приложений учитывает платформенную специфику: множество устройств iOS и Android, разные размеры экранов, версии ОС. Инструменты: Appium, XCTest, Espresso, BrowserStack.
Исследовательское тестирование (exploratory testing) — тестирование без заранее написанного плана. Особенно ценно при работе с новым функционалом.
ИИ берёт на себя часть рутины: генерацию тест-кейсов, self-healing тесты (Testim, Mabl), прогнозную аналитику, визуальное тестирование (Applitools). ИИ не заменяет QA-инженера, а освобождает его от рутины.
Стратегия определяется целями проекта, областью применения, рисками и ресурсами команды. Тестирование на основе рисков (risk-based testing) — ресурсы направляются пропорционально уровню риска каждого модуля. Пирамида тестирования даёт практический ориентир: больше быстрых юнит-тестов в основании, меньше дорогих системных на вершине.
Хотите разобраться в видах тестирования ПО на практике и войти в QA? В ProfiFuture можно пройти обучение за 7 недель с господдержкой — 75% стоимости компенсируется образовательной квотой.
Дымовое тестирование — широкое, поверхностное: проверяет базовые функции после каждой новой сборки. Санитарное тестирование — узкое: фокусируется на одном компоненте после незначительного патча. Регрессионное — всеобъемлющее: перезапускает весь набор тестов после любых изменений.
Нагрузочное тестирование имитирует ожидаемый реальный трафик и проверяет, что время отклика и пропускная способность остаются в допустимых пределах. Стресс-тестирование нагружает систему сверх нормы, чтобы найти точку отказа. Spike-тестирование проверяет реакцию на резкие кратковременные пики нагрузки.
Ручное тестирование выполняет человек — оно гибкое, незаменимо для исследовательского и юзабилити-тестирования, но медленное на больших наборах тестов. Автоматизированное использует скрипты (Selenium, Appium, Cypress) и даёт скорость, повторяемость и интеграцию в CI/CD пайплайн.
UAT (User Acceptance Testing) — пользовательское приёмочное тестирование: финальный уровень, при котором заинтересованные стороны или реальные пользователи проверяют соответствие системы бизнес-требованиям. Разновидности: альфа-тестирование (внутри компании), бета-тестирование (внешние пользователи).
Тестирование безопасности включает: пентест (имитация хакерской атаки), сканирование уязвимостей (OWASP ZAP), фаззинг (случайные данные для поиска переполнения буфера), аудит безопасности кода и тестирование контроля доступа. Проводится по стандартам OWASP и PCI DSS.
API-тестирование проверяет корректность запросов и ответов REST, SOAP или GraphQL. Основные инструменты: Postman, REST-assured (Java), SoapUI. Виды: функциональное (статусы ответов, форматы данных), нагрузочное (k6, JMeter) и тестирование безопасности.
Мобильное тестирование учитывает специфику платформы: множество устройств iOS и Android, размеры экранов, версии ОС. Проверяются функциональность, совместимость и производительность. Основные инструменты: Appium, XCTest (iOS), Espresso (Android), BrowserStack.
Тестирование игр включает функциональное (игровая механика, баги игрового процесса), нагрузочное (стабильность при большом числе игроков), совместимость (платформы, устройства) и производительность (FPS, время загрузки). Существует отдельная специализация — Game QA Engineer.
Тестирование 1С включает функциональное тестирование бизнес-логики (корректность расчётов, проводок), регрессионное после обновлений конфигурации, нагрузочное при большом числе сессий. Инструменты: Vanessa Automation, xUnitFor1C, встроенные механизмы тестирования 1С.
Подробнее — в материале про чем ручное тестирование отличается от автоматизированного
Превратите интерес к теме в новую профессию
Оставьте заявку — поможем выбрать программу и расскажем об условиях обучения
Оставить заявку