Что такое тестирование на выносливость в тестировании программного обеспечения? (с примером)

⚡ Умное резюме

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

  • 🕒 Постоянная нагрузка: Ожидаемый объем производственного трафика удерживается в течение нескольких часов или дней, а не минут.
  • 📉 Фокус на деградации: Вопрос заключается в том, увеличивается ли время отклика, а не в том, достигнута ли целевая отметка хотя бы один раз.
  • 💧 Типичные результаты: Утечки памяти, исчерпание пула соединений и неограниченный рост журнала или кэша.
  • 📊 Набор мониторинга: Память, процессор, время отклика, пропускная способность и количество подключений к базе данных на протяжении всего процесса работы.
  • 🇧🇷 оснастка: Стандартные инструменты управления нагрузкой определяют трафик, а инструменты APM регистрируют кривые использования ресурсов.
  • Компромисс: Результаты имеют высокую ценность, но их получение занимает много времени, что ограничивает частоту проведения теста.

Что такое тестирование на выносливость?

Что такое испытание на выносливость?

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

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

Выносливость означает способность, другими словами, вы можете назвать тестирование на выносливость тестированием мощности.

Цели испытаний на выносливость

  • Основная цель тестирования на выносливость — проверка на наличие утечек памяти.
  • Узнать, как система работает при длительном использовании.
  • Чтобы гарантировать, что по истечении длительного периода время отклика системы останется таким же или лучше, чем в начале теста.
  • Чтобы определить количество пользователей и/или транзакций, которые данная система будет поддерживать и достигать целевых показателей производительности.
  • Чтобы управлять будущими нагрузками, нам необходимо понять, сколько дополнительных ресурсов (таких как мощность процессора, емкость диска, использование памяти или пропускная способность сети) необходимо для поддержки использования в будущем.
  • Тестирование на выносливость обычно проводится либо путем перегрузки системы, либо путем сокращения определенных системных ресурсов и оценки последствий.
  • Это выполняется для того, чтобы гарантировать, что дефекты или утечки памяти не возникнут после относительно «нормального» периода использования.

Что следует отслеживать при тестировании на выносливость

Тест на выносливость

В ходе испытаний на выносливость проверяются следующие параметры.

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

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

Ниже приведен базовый подход к тестированию на выносливость.

  • Тестовая среда – Определите аппаратное, программное обеспечение, операционную систему, необходимые для тестирования на выносливость, распределите роли и обязанности внутри команды и т. д. Среда должна быть готова до выполнения теста. Вам также необходимо оценить общий объем производства базы данных и ежегодный рост. Это необходимо, поэтому вам нужно проверить, как ваше приложение отреагирует через год, два или пять.
  • Создание плана тестирования, сценариев – В зависимости от характера тестирования – ручное или автоматическое, или сочетание того и другого. Тестовый кейс дизайн, обзоры и исполнение должны быть запланированы. Тестирование для нагрузки на систему, тестирование точек останова и т. д. также должно быть частью плана тестирования. Тестирование с целью нагрузить систему определяет точку останова в приложении.
  • Тестовая оценка – Предоставьте оценку того, сколько времени потребуется для завершения этапа тестирования. Его следует анализировать на основе количества задействованных тестировщиков и количества требуемых циклов испытаний.
  • Анализ риска - Анализ риска и принятие соответствующих мер по его предотвращению. Приоритизация тестовых случаев в соответствии с фактором риска и определение приведенных ниже рисков и проблем, которые тестировщик может выполнить во время испытания на долговечность.
  • Будет ли производительность оставаться стабильной с течением времени?
  • Есть ли другие незначительные проблемы, которые еще не были обнаружены?
  • Есть ли внешние помехи, которые не были устранены?
  • Расписание испытаний – Определить бюджет, результаты в установленные сроки. Как Тест на выносливость применяет огромную, но естественную структуру нагрузки транзакций к системе/приложению в течение непрерывного периода времени.

Пример испытания на выносливость

В то время как Стресс-тестирование доводит тестируемую систему до предела своих возможностей, Испытание на выносливость доводит приложение до предела через некоторое время.

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

Инструменты для испытаний на выносливость

Преимущества испытаний на выносливость

  • Это помогает определить, какую рабочую нагрузку может выдержать система под нагрузкой.
  • Предоставляет точные данные, которые клиент может использовать для проверки или улучшения своих потребностей в инфраструктуре.
  • Определяет проблемы с производительностью, которые могут возникнуть после того, как система работала на высоком уровне в течение длительного периода времени.
  • Типичные проблемы выявляются в ходе небольших целевых тестов производительности, что означает, что приложение остается доступным даже при огромной нагрузке за очень короткий промежуток времени.
  • Испытание на выносливость также используется для проверки наличия какого-либо снижения производительности после длительного периода выполнения.

Недостатки испытаний на выносливость

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

Как этот тест вписывается в семейство тестов производительности

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

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

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

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

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

Метрика Что это вам говорит Предупреждающий знак
Среднее время ответа Типичный пользовательский опыт Любое восходящее движение по ходу трассы
95-й процентиль времени ответа Опыт самых медленных пользователей Значительно выше среднего, что означает непоследовательность.
Увеличить пропускную способность Обрабатываемые запросы в секунду Падение при постоянной нагрузке
Коэффициент ошибок Доля неудачных или истекших по времени запросов Любое повышение выше согласованного порога
Использование ЦП и памяти запас ресурсов сервера Воспоминания, которые поднимаются вверх и никогда не возвращаются
Подключения к базе данных и потоки Истощение бассейна Количество случаев, которые неуклонно растут без публикации,

Прочитайте среднее значение и процентиль вместе. Среднее значение 800 мс с 95-м процентилем 900 мс свидетельствует о стабильной работе системы. То же среднее значение с 95-м процентилем 9 секунд означает, что проблемы возникают у одного из двадцати пользователей, и это скрывает средний показатель.

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

Тестирование на выносливость: основные выводы

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

Часто задаваемые вопросы (FAQ)

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

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

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

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

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

Подведем итог этой публикации следующим образом: