Перейти к содержимому

Фотография

Load test vs Perfomance test


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

#1 Petr

Petr

    Опытный участник

  • Members
  • PipPipPipPip
  • 317 сообщений
  • ФИО:Можаев Петр
  • Город:Москва

Отправлено 13 ноября 2004 - 22:46

Доброго времени суток.
Наверное мой вопрос покажется глупым, но я запутался... :(
Объясните пожалуйста разницу между Load Test и Perfomance Test.
  • 0

#2 Green

Green

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 233 сообщений
  • ФИО:Гринкевич Сергей
  • Город:Москва

Отправлено 15 ноября 2004 - 08:43

Я использую эти два термина как синонимы, т.к. один и тот же вид нагрузочного тестирования в разной литературе называется по разному.
  • 0
Гринкевич Сергей

#3 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 15 ноября 2004 - 09:16

В принципе, почти одно и тоже.

Перфоманс - это тестирование производительности (к примеру система производит 3,000,000 операций в секунду при максимально загруженности). Тут упор именно на максимальную производительность, что-то ближе к БенчМаркингу. Фишка в том, что в продуктиве на максимальной загружености система может работать и не будет, но мы хотим поглядеть, а может ли она так работать и какая производительность будет. Ну к примеру хотим понять есть ли у нас какой-то запас, до того как система потребует расширения.

Лоад тест - тестирование системы при определённых условиях нагрузки (не факт что максимальных). То есть не стоит задача загрузить максимально или выжать максимум, интересуют показатели системы при условиях эксплуатации приближённым к боевым, к продуктивным. То есть просто тестирование с целью выявить соотвествуют ли показатели системы на продуктивной нагрузке.
  • 0
Слава Панкратов
Редактор портала www.it4business.ru

#4 I_G

I_G

    Активный участник

  • Members
  • PipPip
  • 120 сообщений

Отправлено 16 ноября 2004 - 08:17

Еще наряду с Load\Performance часто встречается термин Stress - testing. В принципе их можно использовать как синонимы, но на то они и разные термины, поэтому как было сказано выше - отличаются.
  • 0

#5 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 16 ноября 2004 - 09:21

А вот тут позволю себе не согласиться с вами. Цели у нагрузочного тестирования (тестирования производительности) и стресс-тестов разные.

Про нагрузочные писалось выше (цели: посмотреть как ведёт себя система в условиях реальной нагрузки и можно ли увеличивать производительность), а стресс-тесты, это задача эмуляции заведомо завышенной нагрузки и посмотреть как система будет "падать", подниматься, восстанавливаться.

К примеру есть кластер из двух серверов БД и клиентиков. Есть задача проверить ситуацию, когда ведущий сервер выходит из строя под большой нагрузкой (которую мы и создаём) и все заспросы должны спокойно подхватиться вторым сервером. Потом первый должен подняться, восстановиться, подхватить изменения в базе и переключить на себя обработку запросов. Вот тут задачку как я понимаю стрессовая, так как это уже не стандартное поведение системы (может мы его и не разрабатывали даже, а пользуемся стандартными средствами БД).

Я понимаю где-то так, готов поспорить.
  • 0
Слава Панкратов
Редактор портала www.it4business.ru

#6 Green

Green

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 233 сообщений
  • ФИО:Гринкевич Сергей
  • Город:Москва

Отправлено 16 ноября 2004 - 15:22

Простите за примитивный подход, я взял табличку из документации по Load Runner.

Тип теста (если есть) - цель (ответ на вопрос) - сам вопрос

Performance (Load) test
Measuring end-user response time
How long does it take to complete a business process?

Stress test
Measuring system capacity
How much load can the system handle without significant performance degradation?

Reliability test
Checking reliability
How hard or long can the system work without errors or failures?

Scalability test
Checking hardware or software upgrades
How does the upgrade affect performance or reliability?

Evaluating new products
Which server hardware or software should you choose?

Defining optimal hardware configuration
Which hardware configuration provides the best performance?

Identifying bottleneck
Which element is slowing down response time?
  • 0
Гринкевич Сергей

#7 Green

Green

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 233 сообщений
  • ФИО:Гринкевич Сергей
  • Город:Москва

Отправлено 16 ноября 2004 - 15:32

Performance (Load) test
Measuring end-user response time
How long does it take to complete a business process?

В отношении Load Testa поступаем следующим образом.

Из требований к системе получаем планируемое максимальное количество нагрузки. Чаще всего это пользователи. Генерируем 2/3 от максимальной нагрузки и измеряем время отклика системы.

Иногда требуется провести Load Test в динамике. Это означает что мы повторяем предыдущий тест для 50%, 70%, 90% и 100% от максимальной нагрузки и строим кривую времени отклика в зависимости от изменения загруженности системы.
  • 0
Гринкевич Сергей

#8 Гость_amilner_*

Гость_amilner_*
  • Guests

Отправлено 16 ноября 2004 - 15:59

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

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

Как известно, все показатели назначения любой системы(любого изделия), требования к которой формулируются в Техническом Задании/ТЗ (system requirement), разделяются на несколько групп: функциональные показатели, показатели производительности, показатели надёжности, показатели безопасности, показатели конфигурации и т.п. Соответствующим образом, производятся испытания систем, их тестирование и различаются тесты, проверяющие эти показатели: функциональные тесты(functional test), тесты производительности(performance test) и т.д. Основное назначение тестов производительности проверка временных характеристик (быстродействие, скорость реакции и т.п.). Важное место среди тестов производительности занимают тесты, проверяющие, как влияет в многопользовательских интерактивных системах количество активных пользователей на быстродействие этих систем (скорость ответа на запрос пользователя). Такой подтип теста производительности обычно и называется нагрузочным тестом(load test). В свою очередь, частным случаем нагрузочного теста, а иногда просто одним из режимов его работы, является стресс-тест((stress test), т.е. тест, определяющий при какой максимальной нагрузке(количестве активных пользователей, количестве одновременных запросов) система, практически, перестаёт работать(зависает) или её временные характеристики выходят за пределы, указанные в ТЗ.
Известно также, что большинство тестов различного типа имеют два основных варианта исполнения или, чаще, режимов прогона: в нормальных условиях и на граничных условиях (граничные испытания/). В этом смысле стресс- тест является ничем иным как нагрузочным тестом, работающим на граничных условиях, а его выполнение- одним из видов граничного тестирования (boundary testing).

Таким образом, мы имеем иерархию понятий: performance/load/stress test(testing), и спрашивать чем отличаются эти понятия всё равно ,что спрашивать чем отличается лев от зверя. Другое дело, что при тестировании веб- систем и клиент/сервер систем очень часть единственны тестом, используемым для проверки производительности, является нагрузочный тест, а типовым режимом использования последнего является стресс- режим. Отсюда и иллюзия эквивалентности этих трёх понятий, хотя такая эквивалентность- это только частный случай.

#9 Green

Green

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 233 сообщений
  • ФИО:Гринкевич Сергей
  • Город:Москва

Отправлено 16 ноября 2004 - 16:21

Анатолий, вполне согласен с Вашим объяснением.

Есть раздел тестирования - performance testing.
В него входят следующие виды тестов: load, stress и т.д. Но если кому-то нравиться (и именно это наблюдается в литературе и статьях на указанную тему), то он может называть load testing как performance testing. Смысл от этого не меняется.

Хотя можно удариться в схоластические рассуждения.
B)

Но вот с чем не могу согласиться, так это со следующим утверждением:

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



Для любой системы, в том числе веб или клиент/сервер, можно провести весь набор как функциональных, так и нагрузочных тестов, так как любая система ведет себя не одинаково в различных условиях. Смотрите таблицу, которую я привел выше.
  • 0
Гринкевич Сергей

#10 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 17 ноября 2004 - 08:18

Присоединяюсь к замечанию Сергея (Green), веб-система немногоим отличается от обычного 3-уровневого приложения. Тестируются они и на производительность (end user response time) и на стрессовые нагрузки. Вы ведь сами описали требования которые нужно протестировать.
  • 0
Слава Панкратов
Редактор портала www.it4business.ru

#11 Гость_amilner_*

Гость_amilner_*
  • Guests

Отправлено 17 ноября 2004 - 15:30

Хотя можно удариться в схоластические рассуждения.
B)

Но вот с чем не могу согласиться, так это со следующим утверждением:

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


Сергей, конечно, не будем вдаваться в схоластику. Главное, что Вы согласны с моими доводами, в целом.

Что касается расхождения в наших взглядах, то по сути их также нет. Ведь я сказал, что «очень часто». Готов исправиться: «часто» или, если хотите, «иногда». Просто я хотел как-то пояснить, почему многие используют триаду performance/load/stress, считая все три её составляющие эквивалентными.

Также согласен с Case, но с некоторой редакцией: «к тестам производительности (performance), в частности, относится нагрузочное(load) тестирование, в том числе, проверка end user response time в нормальном и граничном(stress) режимах работы. Но end user response time может измеряться не только при работе нагрузочного теста». Или это уже схоластика? :)

Сергей, мой ответ на Ваш вопрос по поводу умеренного консерватизма появится на днях.

#12 Shm

Shm

    Новый участник

  • Members
  • Pip
  • 6 сообщений

Отправлено 26 августа 2011 - 08:58

Я вот встречался с понятием
Stress test
под которым имелось совсем другое.
В aerospace в стандартах на тестирование в основном под Stress test в юнит тестировании подразумевается другое
это класс тестов когда на вход функции подаются заведомо ложные(неправильныве ) значения. т.е. когда описана функция и области допустимых входных значений переменных. Stress test - это когда тестовые данные беруться заведомо из диапазонов за границами ОДЗ.
Эти тесты выполняются в зависимости от класса критичности ПО проверяется что функция ведёт себя непредсказуемо , но не вызывает отказ всей системы. Я думаю это связано отчасти с предположением того , что в следствии солнечной радиации на высоте случайный бит номер Х в памяти при прохождении через него гамма кванта может обратится из 0 в 1 и данные уже тысячу раз проверенные данные на предыдущем уровне интеграции могут случайно в какой-то момент времени оказаться неверными над другом уровне интеграции и такой сбой не должен вызывать общий сбой системы.
  • 0

#13 Natalya Rukol

Natalya Rukol

    Профессионал

  • Admin
  • PipPipPipPipPipPip
  • 2 001 сообщений
  • Город:Moscow


Отправлено 27 августа 2011 - 08:55

А я не могу согласиться с равнозначием перформанса и нагрузки.

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

Нагрузочное тестирование - это проверка работы большого количества пользователей в клиент-серверных (в т.ч. веб) приложениях. Да, почти всегда в нагрузочном тестировании помимо "возможности работать N пользователей", проверяется ещё и скорость их совместной работы, т.е. чаще всего эти две проверки взаимосвязаны в случае с нагрузочным тестированием.


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


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных