Стресс-тести́рование (англ. Stress Testing) — один из видов тестирования программного обеспечения, которое оценивает надёжность и устойчивость системы в условиях превышения пределов нормального функционирования. Стресс-тестирование особенно необходимо для «критически важного» ПО, однако также используется и для остального ПО. Обычно стресс-тестирование лучше обнаруживает устойчивость, доступность и обработку исключений системой под большой нагрузкой, чем то, что считается корректным поведением в нормальных условиях.
Термин «стресс-тестирование» часто используется как синоним «нагрузочного тестирования», а также «тестирования производительности», что ошибочно, так как эти виды тестирования отвечают на разные бизнес-вопросы и используют различную методологию.
В общем случае методология стресс-тестирования основана на снятии и анализе показателей производительности приложения при нагрузках, значительно превышающих ожидаемые на стадии сопровождения, и несёт в себе цель определить выносливость или устойчивость приложения на случай всплеска активности по его использованию.
Необходимость стресс-тестирования диктуется следующими факторами:
Основные направления применения стресс-тестирования:
Стресс-тестирование, как и нагрузочное тестирование также может быть использовано для регулярной оценки изменений производительности с целью получения для дальнейшего анализа динамики изменения поведения системы за длительный период.
Стресс-тестирование может применяться как для обособленных приложений, так и для распределенных систем с клиент-серверной архитектурой. Простейшим примером стресс-тестирования обособленного приложения может являться открытие файла размером в 50 Мб программой Notepad, входящей в комплект ОС Windows. Условия стресс-тестирования приложения обычно формируются исходя из критических бизнес-процессов его функциональности, определенными на стадии разработки требований и анализа рисков группой, ответственной за производительность.
В общем случае в качестве условий для стресс-тестирования может использоваться линейно увеличенная ожидаемая нагрузка.
В случае тестирования многозвенных распределённых систем необходимо учитывать уже не только фактический объём нагрузки, состоящей из множества элементов, но и их пропорции в общем объёме.
Пример 1:
Веб-сервис предназначен для обработки и отображения созданных пользователем страниц, каждая из которых может состоять из обычного текста и динамических элементов управления. Известно, что один пользователь создает 1 страницу в день, которая содержит в среднем 1000 символов текста и одну форму. Известно также, что к системе идет 1 запрос на отображение исходной страницы в минуту. При этом скорость отображения страницы является критическим бизнес-процессом. Используя описанную выше модель поведения использующих систему пользователей, несложно смоделировать изменение динамики нагрузки при их увеличении. Стресс-тест, в котором взята за основу такая модель нагрузки не адресует рисков, связанных с тем, что система перестанет удовлетворять требованиям производительности при изменении сценария её использования. Например, скорость отображения страницы может существенно снизиться, если пользователи будут добавлять на неё десятки форм вместо одной. |
Использование диспропорциональной нагрузки в стресс-тестах может также применяться для выявления узких мест отдельных компонент системы.
Тестирование ёмкости (англ. Capacity Testing) является одним из самых важных с точки зрения развития бизнеса направлений стресс-тестирования и самых сложных с точки зрения проведения и анализа. Тестирование ёмкости проводится с целью определить запас прочности системы при полном соответствии требованиям к производительности.
При моделировании нагрузки для тестирования ёмкости системы учитывается как текущая нагрузка в виде количества и пропорций одновременно поступающих в систему запросов, так и ожидаемая в перспективе.
Пример 2:
Веб-сервис предназначен для отображения данных для зарегистрированных пользователей в формате .docx. Разрабатывающая компания собирается опубликовать возможность отображения данных в формате .pdf, при этом ожидается, что текущие пользователи будут продолжать работать со старым форматом, а новые будут использовать формат .pdf. Моделируя нагрузку на системы во время тестирования ёмкости, учитывается не только текущий сценарий её использования (отображение данных в .docx), но и предполагаемый сценарий использования в будущем (часть одновременно работающих с системой пользователей используют .docx, а часть - .pdf) |
Результатом тестирования ёмкости приложения или системы является набор максимально допустимых характеристик нагрузки системы, при которых приложение или система отвечает требованиям к производительности, разработанным и документированным на этапе проектирования архитектуры.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .