Тестирование — это не просто поиск ошибок. Это способ убедиться, что продукт действительно работает так, как должен, и делает жизнь пользователей проще, а не сложнее. Хорошее тестирование начинается задолго до первого нажатия кнопки “Run tests” — с понимания логики продукта, требований и рисков.


Что такое тестирование и зачем оно нужно

Когда мы говорим “тестирование”, чаще всего имеем в виду процесс проверки работы системы. Но по сути это — инструмент обеспечения качества.
Хорошее тестирование помогает ответить на два простых вопроса:

  • Создаём ли мы то, что действительно нужно пользователю?

  • Создаём ли мы это правильно?

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


QA и QC: кто за что отвечает

Эти две аббревиатуры часто путают.

  • QA (Quality Assurance) — это профилактика. QA отвечает за процессы: как организовано тестирование, есть ли стандарты, правила, ревью, документация.

  • QC (Quality Control) — это диагностика. Это уже конкретные проверки, тест-кейсы и поиск багов в готовом продукте.

Если коротко: QA предотвращает ошибки, QC их находит.


Где место тестирования в разработке

Тестирование не начинается после релиза — оно сопровождает весь цикл разработки:

Этап

Что делает тестировщик

Анализ требований

Проверяет, что требования понятны, логичны и тестируемы

Дизайн

Участвует в ревью архитектуры, готовит тест-план

Разработка

Следит за качеством кода, пишет автотесты

Тестирование

Проверяет систему вручную и автоматически

Релиз

Делает smoke и sanity проверки

Эксплуатация

Следит за стабильностью и собирает отчёты о дефектах


Основные уровни тестирования

  1. Модульное (Unit) — проверяются отдельные функции или классы.

  2. Интеграционное — как модули взаимодействуют между собой.

  3. Системное — вся система целиком, как единый организм.

  4. Приёмочное (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

Когда будет время


Жизненный цикл бага

  1. Новый → 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.

Комментарии (1)


  1. Gabenskiy
    26.10.2025 10:56

    Мне нужно было написать статью про тестирование для онбординга ребят в нашей компании, мне ИИ почти такую же статью сгенерил :)