Что такое тестирование производительности и зачем это необходимо Вашему бизнесу

NB! Данная статья не содержит технических данных, а ориентирована больше на тех, кто занимается бизнесом, чтобы показать вам основные аспекты тестирования производительности, и то, как это может повлиять на сам бизнес.

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

Тестирование производительности проводится в специальной производственной среде или так называемой «лаборатории».  При тестировании на производительность должны быть определены требования к производительности. Типичные параметры включают в себя скорость обработки, скорость передачи данных, пропускную способность сети, эффективность и надежность рабочей нагрузки.

Например, компания может измерить время отклика программы, когда пользователь совершает какое-либо действие. Если время отклика велико, что может раздражать ваших пользователей, то они, соответственно, скорее всего, покинут ваш сайт или приложение, а вы потеряете лид/конверсию.

Зачем вообще нужно тестирование производительности?

Организация или бизнес-компания может использовать тестирование производительности в качестве диагностического средства для обнаружения слабых мест в вычислительной системе. Слабые места — это компоненты в вашей вычислительной системе, которые снижают общую производительность сайта или приложения. Например, даже самый быстрый компьютер будет плохо работать в Интернете, если его пропускная способность составляет менее 1 мегабита в секунду (Мбит/с). Низкая скорость передачи данных может быть связана с аппаратным обеспечением, но также  может быть результатом проблем, связанных с программным обеспечением.

Пример:

Тестирование производительности может помочь Интернет-магазину, которого ждет мощный наплыв посетителей в определенные дни. Например, на носу «Черная пятница», Интернет-магазин ожидает огромное количество посетителей и владельцы не знают, как поведет себя система, выдержит ли она вообще, или же сайт будет тормозить так, что потенциальные клиенты просто уйдут. Согласитесь, никакой Интернет-магазин не захочет терять из-за этого прибыль. Вот для этого и проводится тестирование производительности, чтобы понять, как поведет себя система (сайт, приложение) при наплыве N-ного количества посетителей.

Метрики тестирования производительности

Ряд показателей производительности или ключевых показателей эффективности (KPI) могут помочь организации оценить текущую производительность. Метрики производительности обычно включают:

  • Пропускная способность. Сколько единиц информации обрабатывает система за указанное время.
  • Объем памяти. Рабочий объем памяти, доступный процессору.
  • Время отклика или задержка. Время, которое проходит между введенным пользователем запросом и началом ответа системы на этот запрос.
  • Количество прерываний процессора в секунду. Количество аппаратных прерываний, получаемых в секунду.

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

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

  • Определение среды тестирования. Сюда входят тестовые и продакшн среды, а также инструменты тестирования.
  • Выявление и определение приемлемых критериев эффективности.
  • Планирование теста производительности. Нужно протестировать все возможные варианты (use cases).
  • Настройка и подготовка рабочей среды.
  • Запуск теста. Тест должен отслеживаться самим тестировщиком и самим тулом, в котором вы тестируете производительность.
  • Анализ и повторное тестирование. Смотрим результаты. После любой настройки нужно повторить тест, чтобы увидеть, есть ли повышение или снижение производительности.

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

Существует два основных метода тестирования производительности: нагрузочное тестирование и стресс-тестирование (есть еще и другие подвиды, но для бизнеса это будет не совсем интересно, поэтому опустим это в данной статье).

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

Нагрузочное тестирование помогает разработчикам понять поведение системы при определенной нагрузки системы.  В процессе нагрузочного тестирования компания, которая производит тест, моделирует ожидаемое количество одновременных пользователей и транзакций в течение определенного периода времени, чтобы проверить ожидаемое время отклика и найти слабые места или пробки (так называемые bottlenecks). Этот тип теста помогает разработчикам определить, сколько пользователей может обработать приложение или сайт, прежде чем это приложение или система будут выпущены в продакшн.  

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

Стресс-тестирование подвергает систему более высокой, чем ожидалось, нагрузке трафика, поэтому разработчики могут видеть, насколько хорошо система работает при превышении ожидаемых пределов пропускной способности.  
Стресс-тесты позволяют командам разработчиков программного обеспечения понять масштабируемость рабочей нагрузки. Стресс-тесты создают нагрузку на аппаратные ресурсы, чтобы определить потенциальную точку отказа приложения. Ресурсы могут включать CPU, память и жесткие диски. Стресс-тесты могут проводиться до или после запуска системы. В конце теста записывается количество пользователей, которых приложение выдержало и количество, которое оно не смогло выдержать. Данный тип тестирования очень хорошо подходит для электронной коммерции, когда ожидаются дни распродаж.

Вы наверное подумаете, что стресс-тестирование и нагрузочное тестирование это одно и тоже, но это не совсем так.
Если вкратце, то можно сказать так: нагрузочное тестирование – это тестирование в пределах значений нагрузки, которые должна выдерживать система, а стрессовое – это тестирование за ее пределами.

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

Если Вас заинтересовала услуга тестирования производительности и Вы хотите как следует нагрузить и проверить свою систему, то наша команда может помочь Вам в этом. 

Leave a Comment