Всё, что стоит знать о тестировании производительности на старте | QA Academy

Сегодня разрабатывается много программ для пользователей. Главная цель разработчиков – создать продукт, который будет обеспечивать требуемый уровень производительности. Конкуренция на рынке программных решений вынуждает разработчиков заботиться не только о функциональности приложений, но и о качестве. А показателем качества является показатель производительности, влияющий на стабильность, безопасность и «живучесть».

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

Зачем и как проводится тестирование производительности?

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

В качестве примера приведем магазин с собственным сайтом, где расположен каталог товаров. В честь юбилея решено провести глобальную распродажу, следовательно, ожидается большой поток посетителей на сайт. Платформа не выдерживает такого ажиотажа и начинает “тормозить” а позже и вовсе перестанет работать. Как итог, магазин вместо ожидаемой прибыли получает репутационный ущерб. Но этого бы не случилось с предварительной оценкой возможностей сайта. Следовательно, производительность ПО играет важную роль для бизнеса. Тестирование помогает найти проблемы до релиза.

Оценка качества ПО

Оценка качества ПО проводится по следующим этапам тестирования производительности:

  • определение технических требований к программному продукту;
  • глобальный анализ информации о системе;
  • настройка инструментов, генерирующих нагрузку;
  • проверка серверного и прочего оборудования, участвующего в тестировании;
  • определение критериев тестовых данных;
  • создание скриптов для формирования нагрузки;
  • предварительные тесты;
  • проведение тестирования;
  • анализ полученных данных и формирование отчётности.

Таким образом, при тестировании нужно охватить все вышеупомянутые факторы. Это обеспечивает высокопроизводительную работу.

В чём разница между нагрузочным и стресс-тестированием

Востребованные нефункциональные виды тестирования производительности — нагрузочное и стрессовое. Нагрузочное тестирование (load testing) оценивает стабильность функционирования системы при заданном количестве пользователей и определяет время отклика процессов. Задача этой проверки — определение работоспособности системы в ожидаемых условиях, которые приняты за норму. В конечном счёте, это тестирование определяет общую работоспособность системы, которая указывается в технических параметрах системы.

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

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

Чем санитарное тестирование отличается от дымового?

Существует еще стабильное и конфигурационное тестирование. Первое проверяет, как работает ПО без сбоев и помех, используя все возможности. Цель тестирования стабильности — проверка сбоев во время работы. Конфигурационное тестирование проверяет совместимость ПО с окружением (оборудование, система и другое).

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

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

Какие инструменты используются для проверки ПО?

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

  • Apache JMeter. Поддерживает многопоточность, с открытым исходным кодом, благодаря чему постоянно расширяет функционал. Является бесплатным ресурсом для нагрузочного тестирования;
  • LoadRunner (HP LoadRunner/Micro Focus LoadRunner). Это многопоточное приложение с высокой интегративностью. Лимитированная бесплатная лицензия допускает использование этого сервиса для небольших программных комплексов. Приложение помогает определять взаимодействие пользователей друг на друга и для некоторых задач, это идеальное решение, так как работает быстрее, чем другие приложения. Недостаток — сложная документация.

Вышеуказанные ресурсы помогают тестировщикам полноценно оценить возможности и производительность сайта.

В QA Academy можно пройти обучение на тестировщика. Студенты могут пройти курс дистанционно, что востребовано в наши дни. Также можно записаться на личное обучение. В штате преподаватели с большим опытом работы и являются действующими тестировщиками. Студенты обучаются на проектах, что дает много опыта и знаний. Также их приглашают работать в крупные компании. Они узнают как писать тест-кейсы, которые пройдут испытание автоматизацией. Таким образом, обучение на тестировщика востребовано. QA Academy даст базовые знания для начала карьеры.