Нагрузочное тестирование ПО

воскресенье, 11 мая 2008 г.

Виды нагрузочных тестов

В нагрузочное тестирование входят следующие тесты.

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

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

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

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

Комментарии: 8:

  • Андрей,
    у меня вопрос по видам тестирования... У тебя перечислены следующие:
    > Тестирование производительности
    > Стрессовое тестирование
    > Объемное тестирование
    > Тестирование стабильности

    На сколько мне известно в англоязычной среде это:
    > Performance Testing
    > Stress Testing
    > Volume Testing
    > Reliability Testing

    Но есть так же и Load Testing. Почему он не был включен в список видов тестирования? По Ошибке или ты специально не упомянул его? Если специально, то объясни почему...

    Спасибо,
    Алексей.

    Автор: Blogger Alexey Bulat, В 9 июня 2008 г., 2:00  

  • Алексей,
    Я бы предложил называть все виды тестирования, которые создают нагрузку на общие (разделяемые) ресурсы - "Нагрузочным Тестированием", таким образом в это понятие входят все 4 типа перечисленных в блоге тестов. Хотя, должен сказать, что в инете и в статьях встречал упоминания о "Нагрузочном тестировании" скорее как о тестировании стабильности, т.е. длительный тест создающий нагрузку на приложение 0.7-0.8 от максимальной. Вообще говоря, устоявшейся терминологии, которая была бы в ранге стандарта, пока на мой взгляд нет. Мне кажется, что ввести общий термин "Нагрузочное тестирование" для всех видов нагрузочных тестов довольно логично.

    С уважением.

    Автор: Blogger Андрей, В 11 июня 2008 г., 2:46  

  • Андрей, соглашусь с тобой, но частично... То что надо объединить все под одним названием - это логично. Но я думаю, что всеже есть разница между preformance & load testing.
    Я не занимаюсь нагрузочным тестированием вплотную, но мне кажется разница в том, что preformance - проверят производительность на конкретной, скажем усредненной, нагрузке, а load - проверяет реакцию системы на изменение нагрузки, скажем путем "выстраивания лесенки", в пределах допустимых и требуемых значений (qps или кол-ва юзеров или еще чего-нить).

    Еще соглашусь, что preformance позож на Reliability (тестирование стабильности) testing. Тока мне кажется разница в том, что время прогона последнего намного дольше чем время прогона preformance тестов, ну и назначение у них немного разное.

    Т.е. как пример, своего видения могу привести вот что:

    Performance: тестируется производительность системы при разных нагрузках (в пределе допустимого) - длительность теста не очень большая (точно не скажу сколько, т.к. делаю обычно на глазок)
    Load: тестируется реакция системы на изменение нагрузки (в пределе допустимого)
    Sterss: тестируем работоспособность системы, при изменение нагрузки свыше допустимого в течении определенного промежутка времени и затем возврата к нормальной нагрузке.
    Reliability: тестируем стабильность работы системы при "реальной" требуемой нагрузке на систему в течении большого промежутка времени (от 1 рабочего дня)

    вот...

    Автор: Blogger Alexey Bulat, В 12 июня 2008 г., 2:25  

  • Леша, привет!
    Мне кажется, что логично отталкиваться от целей, именно технических целей (а не коммерческих, перечисленных у меня в статье "Цели нагрузочного тестирования"), которые достигаются в результате тестирования и классифицировать тесты по ним.

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

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

    3.Стресс тестирование имеет своей целью (как ты правильно заметил) проверить возвращается ли система после запредельной нагрузки (и как скоро) к нормальному режиму и еще целями стрессового тестирования могут быть проверки как поведет себя система если, например, 1 Сервер Приложения (Веб Сервер) в пуле перестанет работать, аварийно изменится аппаратная конфигурация сервера базы данных и т.д. Замечу тут тоже исследуется не производительность, а способность системы к регенерации после стресса: Stress.

    Мне показалось что в твоей классификации Load и Performance преследуют все же одну и ту же цель: проверка производительности (времен отклика) на разных нагрузках. Собственно поэтому я не стал разделять их. В то же время кто то может разделить:)
    Главное все таки в том чтобы понимать цели того или иного тестирования и постараться их достигнуть.

    Автор: Blogger Андрей, В 19 июня 2008 г., 13:58  

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

    Автор: Blogger Alexey Bulat, В 30 июня 2008 г., 13:29  

  • разработка программ разработка сайтов http://web-miheeff.ru разработка программ

    Автор: Blogger разработка web разработка, В 1 января 2010 г., 9:18  

  • разработка плана разработка сайтов http://web-miheeff.ru разработка плана

    Автор: Blogger разработка web разработка, В 1 января 2010 г., 15:14  

  • разработка проекта разработка сайтов http://web-miheeff.ru разработка проекта

    Автор: Blogger разработка сайтов москва, В 2 января 2010 г., 3:33  

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]



<< Главная страница