Перейти к основному содержимому

Тестирование. Основные понятия

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

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

По запуску кода

  • Статическое тестирование — тестирование без фактического выполнения кода.
  • Динамическое тестирование — не может быть осуществлено без запуска программного кода приложения.

По доступу к коду

  • Белый ящик – с использованием доступа к исходному коду.
  • Чёрный ящик – без использования доступа к исходному коду.

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

  • Модульное – проводится над отдельным компонентом системы.
  • Интеграционное – проверка взаимодействия нескольких компонентов или систем.
  • Системное – показывает, соответствует ли готовая система функциональным и нефункциональным требованиям.
  • Приёмочное (UAT) – выполняется самим заказчиком.

По степени автоматизации

  • Ручное
  • Автоматизированное

По целям тестирования

Различают функциональное и нефункциональное тестирование. К нефункциональному тестированию относят:

  • Нагрузочное тестирование – проверка поведения системы при плановой повышенной и пиковой нагрузке.
  • Стрессовое тестирование – проверка работы системы в критических условиях.
  • Тестирование удобства использования (usability testing)
  • Тестирование безопасности
  • Регрессионное тестирование — повторное тестирование уже проверенной ранее функциональности после внесения изменений в код приложения, для уверенности в том, что эти изменения не внесли ошибки в областях, которые не подверглись изменениям.

Тестовые стенды

  • Среда разработки (Dev) – за данную среду отвечают разработчики, в ней они пишут код, проводят отладку, исправляют ошибки.
  • Среда тестирования (Test) – среда, в которой работают тестировщики.
  • Интеграционная среда (Integration Env) – среда, в которой проводят тестирование взаимодействующих друг с другом систем.
  • Предпрод (Preprod Env) – среда, которая максимально приближена к продакшену. Здесь проводится заключительное тестирование функционала.
  • Продакшн среда (Prod Env) – среда, в которой работают пользователи.

Этапы тестирования

  1. Анализ требований – позволяет выяснить, какие возможные сложности могут возникнуть при тестировании. Также на этом этапе можно выявить возможные несоответствия или недостаточно ясные требования, которые требуют уточнения у разработчиков или заказчика.
  2. Планирование тестирования – выбор методов тестирования, определение ресурсов, сроков.
  3. Тест-дизайн – разработка тест-кейсов. Тест-кейс — это алгоритм действий, которые требуется совершить для проверки работы системы. Может иметь следующие атрибуты: ID, название, предусловия, шаги, ожидаемый результат, фактический результат, статус.
  4. Подготовка к тестированию – включает создание тестового окружения, подготовку тестовых данных, написание автотестов, деплой приложения на тестовом стенде.
  5. Выполнение тестирования – сначала выполняется интеграционное или даже сразу системное тестирование, зависит от специфики тестирования в конкретной компании. Модульное тестирование обычно выполняется разработчиком при написании кода с помощью unit-тестов.
  6. Формирование результатов – подготовка отчёта о тестировании, содержащего информацию о результатах выполнения тест-кейсов и о выявленных дефектах.

Подборка материалов

  1. Фундаментальная теория тестирования
  2. Как устроен процесс тестирования
  3. Какие бывают этапы и виды тестирования
  4. Как писать тест-кейсы
  5. Большой учебник по тестированию
  6. Курс по тестированию The 100-Year QA-Textbook — полезно и для аналитиков
  7. Видео по видам тестирования