Тестирование — это не просто поиск ошибок. Это способ убедиться, что продукт действительно работает так, как должен, и делает жизнь пользователей проще, а не сложнее. Хорошее тестирование начинается задолго до первого нажатия кнопки “Run tests” — с понимания логики продукта, требований и рисков.
Что такое тестирование и зачем оно нужно
Когда мы говорим “тестирование”, чаще всего имеем в виду процесс проверки работы системы. Но по сути это — инструмент обеспечения качества.
Хорошее тестирование помогает ответить на два простых вопроса:
Создаём ли мы то, что действительно нужно пользователю?
Создаём ли мы это правильно?
Цель тестирования не просто “найти баг”, а сделать продукт надёжным, удобным и безопасным. Чем раньше найден дефект, тем дешевле и проще его исправить. Ошибка, замеченная на этапе проектирования, обходится компании в десятки раз дешевле, чем та же ошибка, обнаруженная пользователем после релиза.
QA и QC: кто за что отвечает
Эти две аббревиатуры часто путают.
QA (Quality Assurance) — это профилактика. QA отвечает за процессы: как организовано тестирование, есть ли стандарты, правила, ревью, документация.
QC (Quality Control) — это диагностика. Это уже конкретные проверки, тест-кейсы и поиск багов в готовом продукте.
Если коротко: QA предотвращает ошибки, QC их находит.
Где место тестирования в разработке
Тестирование не начинается после релиза — оно сопровождает весь цикл разработки:
Этап |
Что делает тестировщик |
|---|---|
Анализ требований |
Проверяет, что требования понятны, логичны и тестируемы |
Дизайн |
Участвует в ревью архитектуры, готовит тест-план |
Разработка |
Следит за качеством кода, пишет автотесты |
Тестирование |
Проверяет систему вручную и автоматически |
Релиз |
Делает smoke и sanity проверки |
Эксплуатация |
Следит за стабильностью и собирает отчёты о дефектах |
Основные уровни тестирования
Модульное (Unit) — проверяются отдельные функции или классы.
Интеграционное — как модули взаимодействуют между собой.
Системное — вся система целиком, как единый организм.
Приёмочное (Acceptance) — проверка готового продукта пользователем или заказчиком.
Пирамида тестирования
Один из ключевых принципов современной QA — пирамида тестирования (Testing Pyramid).
Эта концепция показывает, какие типы тестов и в каком соотношении стоит использовать, чтобы продукт оставался стабильным, а процесс тестирования — эффективным и экономичным.
В классической форме пирамида состоит из трёх уровней:
Уровень |
Суть |
Цель |
|---|---|---|
Unit-тесты (модульные) |
Проверяют работу отдельных функций, классов и методов. Их много, они быстрые и дешёвые. |
Ловят ошибки на ранних этапах, ещё до сборки системы. |
Integration-тесты |
Проверяют, как модули взаимодействуют между собой (API, БД, микросервисы). |
Убедиться, что части системы “понимают” друг друга. |
UI / E2E-тесты |
Проверяют продукт глазами пользователя, через интерфейс. |
Проверка ключевых сценариев использования. |

Все виды тестирования
Название |
Цель |
Пример |
|---|---|---|
Smoke testing |
Проверить, что система вообще запускается и не падает |
Проверка входа в систему после сборки |
Sanity testing |
Проверить конкретную исправленную или новую функцию |
Проверка добавленного фильтра в каталоге |
Регрессионное тестирование |
Убедиться, что старый функционал не сломался |
Проверка старых форм после фиксов |
Функциональное тестирование |
Проверить выполнение требований |
Проверка регистрации пользователя |
Нефункциональное тестирование |
Проверить характеристики системы |
Измерение времени отклика |
Performance testing |
Проверить скорость и стабильность |
1000 запросов в секунду |
Load testing |
Проверить поведение под нагрузкой |
500 пользователей одновременно |
Stress testing |
Проверить, где предел прочности |
10 000 пользователей, пока не упадёт |
Security testing |
Найти уязвимости |
SQL-инъекции, XSS |
Usability testing |
Проверить удобство интерфейса |
Наблюдение за пользователем |
Compatibility testing |
Проверить работу в разных браузерах и ОС |
Chrome, Firefox, Safari |
Localization testing |
Проверить язык и формат данных |
Валюты, даты, переводы |
Recovery testing |
Проверить восстановление после сбоев |
Перезапуск после падения сервера |
Accessibility testing |
Проверить доступность для людей с ограничениями |
Проверка экранного диктора |
Exploratory testing |
Исследовать систему без сценария |
Проверка новой фичи вручную |
Ad-hoc testing |
Спонтанная проверка без документации |
“Покликать” наугад |
Alpha testing |
Внутренние проверки до релиза |
Тестирование командой QA |
Beta testing |
Проверки внешними пользователями |
Бета-версия перед запуском |
Документация тестировщика
Тестировщик не только кликает по кнопкам — он документирует всё, что проверяет.
Тест-кейс
Это пошаговый сценарий проверки.
Содержит: ID, название, предусловия, шаги, ожидаемый и фактический результат, статус.
Пример:
Проверка входа с валидными данными.
Чек-лист
Это список проверок без подробных шагов.
Пример:
Проверить регистрацию, восстановление пароля, вход через соцсети.
Чек-лист нужен для быстрой проверки, тест-кейсы — для системного подхода и отчётности.
Что входит в тест-план
Тест-план описывает стратегию тестирования:
цели и объём проверок,
среду и окружение,
критерии начала и завершения,
распределение ролей,
риски,
расписание,
метрики (покрытие, плотность дефектов, % успешных тестов).
Баг-репорты: как писать правильно
Баг-репорт должен быть понятным и воспроизводимым.
Хороший отчёт включает:
заголовок,
среду (браузер, ОС, версия),
шаги воспроизведения,
ожидаемый и фактический результат,
приоритет и серьёзность,
скриншоты или логи.
Серьёзность |
Пример |
|---|---|
Critical |
Приложение падает |
Major |
Основная функция не работает |
Minor |
Мелкий дефект, можно обойти |
Trivial |
Опечатка, визуальный недочёт |
Приоритет |
Пример |
|---|---|
High |
Срочно исправить |
Medium |
В следующем спринте |
Low |
Когда будет время |
Жизненный цикл бага
Новый → 2. Назначен → 3. В работе → 4. Исправлен → 5. Готов к проверке → 6. Закрыт.
Иногда добавляются состояния вроде «Отклонён» или «Не воспроизводится».
Техники тест-дизайна
Чтобы тестировать эффективно, важно не просто писать сценарии, а понимать, что именно имеет смысл проверить.
Граничные значения (Boundary Value Analysis) — проверка крайних значений диапазона (например, 17, 18, 60, 61 для поля “возраст 18–60”).
Разбиение на классы эквивалентности (Equivalence Partitioning) — делим входные данные на допустимые и недопустимые группы.
Таблицы решений (Decision Tables) — когда есть много условий и комбинаций.
Диаграммы переходов состояний (State Transition) — когда система имеет состояния (логин → активен → заблокирован → разлогинен).
Попарное тестирование — подбор минимального набора тестов, покрывающего все пары параметров.
Статическое и динамическое тестирование
Статическое тестирование — это анализ без запуска кода (ревью требований, кода, документации).
Динамическое — когда мы действительно выполняем тесты, кликаем, запускаем автотесты или API-запросы.
Тестирование микросервисов
В микросервисной архитектуре всё строится вокруг взаимодействия сервисов.
Здесь важно:
проверять контракты API между сервисами,
использовать моки и стабы для изоляции,
проводить интеграционные тесты,
делать end-to-end проверки, чтобы убедиться, что цепочка работает целиком (например, авторизация → создание заказа → оплата).
Современные практики
Современное тестирование неотделимо от автоматизации.
CI/CD позволяет запускать тесты при каждом коммите.
DevOps-среда стирает границы между разработкой и тестированием.
Инструменты вроде JUnit, TestNG, Selenium, Cypress и Postman стали стандартом.
А подход Test Impact Analysis помогает запускать только те тесты, на которые реально повлияли изменения в коде.
Вместо заключения
Хороший тестировщик — это не человек, который «ломает» систему. Это человек, который помогает сделать её надёжной.
Тестирование — про качество, логику и внимание к деталям.
Если вы начинаете путь в QA, изучите:
теорию тестирования,
основные виды и техники,
артефакты (чек-листы, тест-кейсы, баг-репорты),
принципы автоматизации.
Эти знания дадут базу, с которой можно уверенно идти на собеседования и расти дальше — в сторону automation, QA lead или test architect.
Gabenskiy
Мне нужно было написать статью про тестирование для онбординга ребят в нашей компании, мне ИИ почти такую же статью сгенерил :)