Что такое СТРЕСС-тестирование в тестировании программного обеспечения?
Стресс-тестирование
Стресс-тестирование это тип тестирования программного обеспечения, который проверяет стабильность и надежность программного приложения. Цель стресс-тестирования — оценить надежность программного обеспечения и возможности обработки ошибок в условиях чрезвычайно тяжелых нагрузок, а также гарантировать, что программное обеспечение не выйдет из строя в критических ситуациях. Он даже тестирует за пределами обычных рабочих точек и оценивает, как программное обеспечение работает в экстремальных условиях.
В программной инженерии стресс-тестирование также известно как Тест на выносливость. При стресс-тестировании AUT подвергается стрессу в течение короткого периода времени, чтобы узнать его выдерживающую способность. Наиболее известное использование Стресс-тестирование заключается в определении предела, при котором система, программное или аппаратное обеспечение выходит из строя.. Он также проверяет, демонстрирует ли система эффективное управление ошибками в экстремальных условиях.
Тестируемое приложение будет подвергаться нагрузке, когда данные размером 5 ГБ будут скопированы с веб-сайта и вставлены в блокнот. Блокнот находится в состоянии стресса и выдает сообщение об ошибке «Не ответил».
Необходимость стресс-тестирования
Рассмотрим следующие примеры в реальном времени, где мы можем обнаружить использование стресс-тестирования:
- Во время фестиваля сайт интернет-магазина может стать свидетелем всплеска трафика или объявления о распродаже.
- Когда блог упоминается в ведущей газете, его посещаемость резко возрастает.
Крайне важно провести стресс-тестирование, чтобы учесть такие аномальные всплески трафика. Неспособность справиться с этим внезапным трафиком может привести к потере дохода и репутации.
Стресс-тестирование также чрезвычайно ценно по следующим причинам:
- Чтобы проверить, работает ли система в ненормальных условиях.
- Отображение соответствующего сообщения об ошибке, когда система находится под нагрузкой.
- Сбой системы в экстремальных условиях может привести к огромной потере дохода
- Лучше подготовиться к экстремальным условиям, проведя стресс-тестирование.
Цели стресс-тестирования
Целью стресс-тестирования является анализ поведения системы после сбоя. Чтобы стресс-тестирование было успешным, система должна отображать соответствующее сообщение об ошибке, когда она находится в экстремальных условиях.
Иногда для проведения стресс-тестирования могут использоваться большие наборы данных, которые могут потеряться во время стресс-тестирования. Тестировщики не должны терять эти данные, связанные с безопасностью, во время стресс-тестирования.
Основная цель стресс-тестирования — убедиться, что система восстанавливается после сбоя, который называется возмещаемость.
Нагрузочное тестирование против стресс-тестирования
испытание нагрузкой | Стресс-тестирование |
---|---|
испытание нагрузкой заключается в тестировании поведения системы в нормальных условиях рабочей нагрузки, и это просто тестирование или моделирование с реальной рабочей нагрузкой. | Стресс-тестирование предназначено для проверки поведения системы в экстремальных условиях и проводится до момента отказа системы. |
Нагрузочное тестирование не ломает систему | стресс-тестирование пытается сломать систему, тестируя с огромным количеством данных или ресурсов. |
Виды стресс-тестирования
Ниже приведены типы стресс-тестирования, которые объясняются следующим образом:
Распределенное стресс-тестирование:
В распределенных клиент-серверных системах тестирование проводится для всех клиентов, начиная с сервера. Роль стресс-сервера заключается в распространении набора стресс-тестов среди всех стресс-клиентов и отслеживании состояния клиента. После того как клиент связывается с сервером, сервер добавляет имя клиента и начинает отправлять данные для тестирования.
Тем временем клиентские машины отправляют сигнал или тактовое сообщение о том, что они подключены к серверу. Если сервер не получает никаких сигналов от клиентского компьютера, его необходимо дополнительно изучить для отладки. Как показано на рисунке, сервер может подключаться к двум клиентам (Клиент2 и Клиент1), но не может отправлять или получать сигнал от Клиентов 2 и 3.
Ночная пробежка — лучший вариант для запуска этих сценариев стресс-тестирования. Большим фермам серверов необходим более эффективный метод определения того, на каких компьютерах произошли стрессовые сбои, которые необходимо исследовать.
Стресс-тестирование приложения:
Это тестирование сосредоточено на поиске дефектов, связанных с блокировкой и блокировкой данных, проблемами сети и узкими местами в производительности приложения.
Транзакционное стресс-тестирование:
Он выполняет стресс-тестирование одной или нескольких транзакций между двумя или более приложениями. Он используется для тонкой настройки и оптимизации системы.
Системное стресс-тестирование:
Это интегрированное стресс-тестирование, которое можно протестировать на нескольких системах, работающих на одном сервере. Он используется для поиска дефектов, когда данные одного приложения блокируют другое приложение.
Исследовательское стресс-тестирование:
Это один из видов стресс-тестирования, который используется для проверки системы с необычными параметрами или условиями, которые вряд ли могут возникнуть в реальном сценарии. Он используется для поиска дефектов в неожиданных сценариях, таких как
- Большое количество пользователей, вошедших одновременно
- Если антивирусный сканер запустился на всех машинах одновременно
- Если база данных перешла в автономный режим при доступе к ней с веб-сайта,
- Когда в базу данных одновременно вставляется большой объем данных
Как проводить стресс-тестирование?
Процесс стресс-тестирования можно разделить на 5 основных этапов:
Шаг 1) Планирование стресс-теста: Здесь вы собираете системные данные, анализируете систему, определяете цели стресс-тестирования.
Шаг 2) Создайте сценарии автоматизации: На этом этапе вы создаете сценарии автоматизации стресс-тестирования, генерируете тестовые данные для стресс-сценариев.
Шаг 3) Выполнение сценария: На этом этапе вы запускаете сценарии автоматизации стресс-тестирования и сохраняете результаты стресс-тестирования.
Шаг 4) Анализ результатов: На этом этапе вы анализируете результаты стресс-теста и выявляете узкие места.
Шаг 5) Настройка и оптимизация: На этом этапе вы настраиваете систему, меняете конфигурации, оптимизируете код с целью достижения желаемого результата.
Наконец, вы снова запускаете весь цикл, чтобы убедиться, что настройки дали желаемые результаты. Например, для достижения целей производительности нередко требуется от 3 до 4 циклов процесса стресс-тестирования.
Инструменты, рекомендуемые для стресс-тестирования
LoadRunner
LoadRunner от HP — широко используемый инструмент нагрузочного тестирования. Результаты нагрузочного теста, сформированные Loadrunner, считаются эталонными.
Джметр
Jmeter — инструмент тестирования с открытым исходным кодом. Это чистый Java приложение от стресса и Тестирование производительности. Jmeter предназначен для покрытия таких типов тестов, как нагрузочные, функциональные, стрессовые и т. д. Для работы ему требуется JDK 5 или выше.
Стресс-тестер
Этот инструмент обеспечивает обширный анализ производительности веб-приложения, предоставляет результаты в графическом формате и чрезвычайно прост в использовании. Не требуется никаких сценариев высокого уровня, что обеспечивает хорошую отдачу от инвестиций.
Neo загрузка
Это популярный инструмент, доступный на рынке для тестирования Интернета и Mobile Приложения. Этот инструмент может моделировать тысячи пользователей, чтобы оценить производительность приложения под нагрузкой и проанализировать время отклика. Он также поддерживает интегрированное в облако тестирование производительности, нагрузки и стресс-тестирования. Он прост в использовании, экономически эффективен и обеспечивает хорошую масштабируемость.
Метрики для стресс-тестирования
Метрики помогают оценить производительность системы и обычно изучаются в конце стресс-теста. Обычно используемые показатели:
Измерение масштабируемости и производительности
- Страниц в секунду: измеряет количество запрошенных страниц в секунду.
- Пропускная способность: базовая метрика — размер данных ответа в секунду.
- Раунды: количество запланированных тестовых сценариев и количество выполнений клиентом.
Ответ приложения
- Время обращения: среднее время получения изображения или страницы.
- Время до первого байта: время требуется для возврата первого байта данных или информации.
- Время страницы: время требуется для получения всей информации на странице.
Отказы
- Неудачные подключения: количество неудачных подключений, отклоненных клиентом (слабые соединения). Signal)
- Неудачные раунды: количество неудачных раундов.
- Неудачные попадания: количество неудачных попыток, предпринятых системой (неработающие ссылки или невидимые изображения).
Заключение
Целью стресс-тестирования является проверка системы в экстремальных условиях. Он контролирует системные ресурсы, такие как память, процессор, сеть и т. д., и проверяет способность системы вернуться в нормальное состояние. Он проверяет, отображает ли система соответствующие сообщения об ошибках в состоянии стресса.
Пример стресс-тестирования
- Интернет-магазин объявляет фестивальную распродажу
- Новостной сайт во время некоторых крупных событий
- Сайт результатов Совета по образованию
- Социальные сети или блоги, приложения и т. д.