Как отличить стресс от нагрузки? В тестировании

Название статьи достойно публикации в каком-нибудь именитом блоге на личную эффективность. Но речь здесь пойдет про тестирование 🙂

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

Итак, давайте разберемся, в чем отличие.

Нагрузочное тестирование или Load Testing  это проверка того, как работает ваша система под разными уровнями нагрузки до предельного значения, которое она должна выдерживать. Предельное значение должно быть прописано в нефункциональных требованиях по нагрузке. При таком тестировании замеряется время отклика системы и скорость обработки запросов от пользователей (например, как быстро открываются и прогружаются страницы сайта, как быстро система выполняет расчеты, выдает результаты поиска и т.д.), а также сколько ресурсов “съедает” система – сетевых, процессорных, памяти.

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

Рассмотрим на примере сайта интернет магазина.

Мы рассчитываем, что наш интернет магазин должен выдержать 5000 пользователей, которые одновременно работают на сайте, причем:

  • 50% пользователей только просматривают товары
  • 20% пользователей добавляют товар в корзину и уходят
  • 20% заходят на сайт, но ничего на нем не делают
  • 10% пользователей покупают товар

При таком раскладке время отклика нашего сайта должно составлять не более 5 секунд.

Для проведения такого тестирования эмулируется указанная выше нагрузка и измеряется время отклика.

Но в чем же отличие от стрессового?

Стрессовое тестирование или Stress Testing оценивает скорость работы системы, если нагрузка на систему выше нормы, описанной в требованиях, или же в состоянии ограниченных ресурсов (память, скорость интернета).

Если рассмотреть пример с интернет магазином, то стресс тестирование будет проводится на более, чем 5000 одновременно работающих пользователей.

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

Еще один пример. Требование гласит, что приложение должно работать быстро (время обработки запросов не более 3 секунд), если на устройстве не менее 500 Мб свободной оперативной памяти. Если мы эмулируем работу приложения при памяти меньше 500 Мб – это будет стрессовое тестирование.

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

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

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

Еще полезно знать, как поведет себя наш сайт, если его будут пытаться DDoS-ить, например, конкуренты попытаются его “сломать” большим числом фиктивных пользователей, чтобы реальные покупатели шли к ним.

Теперь вы знаете разницу между нагрузкой и стрессом. Используйте знания с пользой!

Похожие статьи

Курсы удалённо. Плюсы и минусы обучения онлайн

Наш партнер по поиску вакансий, компания Jobsora, провела анализ плюсов и минусов онлайн обучения. Рады представить вам результат работы! Пандемия нежданно охватила весь мир.Сегодня все учебные заведения…

Советы от наших партнеров Jooble – экспертов по поиску работы

Три совета для приближения к успеху  Стремление стать успешным – явление обыденное. Каждый цивилизованный человек желать быть лучше, стать более развитым, иметь карьерный рост, удачно найти…

Ответы