Тестирование производительности

Для качественной работы приложения следует проверять, насколько стабильно и быстро оно будет работать под нагрузкой. Это тестирование производительности (Performance Testing). Обсудим этот вид тестирования в данной статье.

Тестировщик » QA-блог » Методы » Тестирование производительности

Performance Testing: разновидности тестирования производительности и их применение

На изображение тестирование производительности (performance testing).

Тестирование производительности представляет собой проверку программного обеспечения, направленную на выявление и устранение недостатков в производительности ПО. В такой проверке могут изучаться следующие вопросы:

  1. Насколько быстро работает программа;
  2. Как работает тот или иной компонент программы при повышенной нагрузке;
  3. Какова скорость соединения с системой;
  4. Сколько составляет время отклика ПО на запрос;
  5. Какова масштабируемость приложения;
  6. Насколько бесперебойно может работать система;
  7. Сколько ресурсов потребляет ПО.

Давайте обсудим, что из себя представляет Performance Testing, и как с его помощью можно улучшить IT продукт.

Основные разновидности тестирования производительности

Само по себе тестирование производительности не нацелено на выявление дефектов ПО. Поэтому оно относится к нефункциональному виду тестирования. Его применяют для обнаружения узких мест ПО с точки зрения потребляемых ресурсов.

В тестировании производительности принято выделять 3 его основные разновидности:

  • Нагрузочное тестирование (Load Testing)
  • Стресс-тестирование (Stress Testing)
  • Тестирование стабильности (Stability/Endurance Testing)

Рассмотрим их более подробно.

Нагрузочное тестирование

Нагрузочное тестирование — это разновидность тестирования производительности, которая исследует поведение ПО под определенной нагрузкой на него. Нагрузка выражается в увеличении числа пользователей и/или транзакций (операций с системой).

Нагрузочное тестирование может исследовать следующие параметры:

  • Возможное количество пользователей, одновременно работающих с ПО;
  • Число транзакций ПО в единицу времени;
  • Скорость приведения ПО в работоспособное состояние (вариант: время загрузки стартовой страницы сайта);
  • Время отклика системы на запросы при разном количестве пользователей.

Стресс-тестирование

Стресс-тестирование – это разновидность тестирования производительности, которая исследует пропускную способность системы. Оно изучает работу приложения для случаев, когда нагрузки на ПО превысят запланированный максимум. Стресс-тестирование затрагивает в первую очередь критически важные компоненты ПО.

Стресс-тестирование может исследовать следующие параметры:

  • Предельное количество пользователей, одновременно работающих с ПО;
  • Размер файла, когда ПО зависнет и/или прекратит свою работу;
  • Количество запросов на сайт, при котором происходят отказы их обрабатывать;
  • Уровень загрузки процессора или памяти, которые вынудят увеличить время отклика системы на запрос;
  • Число одновременных действий пользователей системы (например, нажатие кнопок «Скопировать фото»), при котором вызываемая операция не выполняется.

Тестирование стабильности

Тестирование стабильности – это разновидность тестирования производительности, которая исследует, насколько долго ПО может работать при заданной (ожидаемой) нагрузке. Оно изучает, насколько интенсивно приложение использует память устройства. А также – меняется ли такая интенсивность с течением времени.

Тестирование стабильности может исследовать следующие параметры:

  • Время отклика системы в зависимости от продолжительности непрерывной работы ПО;
  • Динамика скорости обработки запросов к системе;
  • Непроизводительные потери ресурса памяти устройства;
  • Число сбоев и/или перезагрузок системы при ее длительной работе.

Прочие разновидности тестирования производительности

Помимо основных вышеуказанных разновидностей тестирования производительности, в IT проектах могут применять и другие, например:

  • Пиковое тестирование (Spike Testing) – проверяет работоспособность и стабильность системы при внезапном скачке нагрузки, а также способность системы после него вернуться в норму;
  • Конфигурационное тестирование (Configuration Testing) – исследует зависимость производительности ПО от его конфигурации, чтобы сбалансировать потребляемые ресурсы;
  • Тестирование надежности (Reliability Testing) – оценивает время безотказного функционирования ПО в заданных условиях его работы.
  • Фоновое тестирование (Background Testing) – исследует работоспособность интерфейса для конечного пользователя в случаях возрастающих нагрузок на систему.
  • Опрокидывающее тестирование (Top-over Testing) – выявляет компонент или ресурс системы, который первым выйдет из строя в ходе увеличения нагрузки (поиск «слабого звена»).

Для нагрузочного тестирования можно применять бесплатный программный инструмент Apache Jmeter.

Резюме

Тестирование производительности предназначено для проверки работоспособности и устойчивости ПО в зависимости от нагрузок. Это нефункциональный вид тестирования. У него есть три основных разновидности (нагрузочное, стресс и стабильность) и несколько дополнительных.

на изображение автор Михаил Кулешов

Автор Михаил Кулешов

Михаил, профессиональный партнерский маркетолог, является основателем компании South Media OÜ, которая была создана в 2018 году и базируется в Таллинне. С 2016 года Михаил уехал из Финляндии и жил как настоящий «цифровой кочевник» в IT-индустрии, путешествуя по миру только с ноутбуком. Михаил работает и пишет статьи, связанные с IT-индустрией.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *