Производительность против нагрузочного тестирования
В контексте разработки программного обеспечения проводится тестирование производительности для выявления узких мест в системе. Тесты производительности также можно использовать для проверки таких атрибутов, как надежность, использование ресурсов и масштабируемость, а также для определения базовых показателей производительности системы. Нагрузочное тестирование - один из поджанров тестирования производительности. Это выполняется для измерения поведения системы при определенной рабочей нагрузке. Нагрузочное тестирование более актуально для многопользовательских систем, основанных на модели клиент-сервер, но другие программные системы, такие как текстовые процессоры или графические редакторы, также могут проходить нагрузочное тестирование..
Тестирование производительности
Как упоминалось выше, тестирование производительности проводится для определения и устранения узких мест в программной системе и определения базовых показателей ее производительности, которые могут быть полезны для дальнейшего тестирования. Тестирование производительности включает в себя такие тесты, как нагрузочные тесты, тесты на выносливость (тесты выдержки), тесты на пики, тесты конфигурации и тесты изоляции. Тестирование производительности требует получения тщательно контролируемого набора измерений системы. Чтобы получить наилучшие результаты тестирования производительности, оно должно быть хорошо спланировано и должно выполняться в стабильной системе, в которой процесс тестирования может проходить гладко. При тестировании производительности важно четко понимать, что вы на самом деле хотите измерить с точки зрения производительности системы. Например, если вы тестируете производительность веб-приложения, вам может потребоваться узнать приемлемое время ответа и количество одновременных пользователей, которые могут обрабатываться системой. Помня об этих двух аспектах, вы можете начать тестирование, постоянно увеличивая количество пользователей и выявляя узкие места..
Нагрузочное тестирование
Как упоминалось ранее, нагрузочное тестирование является частью тестирования производительности и часто выполняется путем увеличения нагрузки на программную систему с использованием автоматизированных инструментов. Нагрузочное тестирование иногда называют объемным тестированием. Некоторыми примерами нагрузочных тестов могут быть тестирование почтового сервера с большим количеством пользовательских почтовых ящиков или тестирование редактирования очень большого документа с использованием текстового процессора. Нагрузочные тесты выполняются с использованием предварительно определенного уровня нагрузки, обычно с использованием максимальной нагрузки, которую система может выдержать без сбоев. Обычно нагрузочное тестирование направлено на выявление ошибок, которые не обнаруживаются при обычном тестировании, таких как проблемы управления памятью, утечки памяти, переполнения буфера и т. Д. Нагрузочное тестирование также служит средством обеспечения соответствия системы базовым показателям производительности, установленным во время тестирования производительности..
Разница между производительностью и нагрузочным тестированием
Хотя термины «тестирование производительности» и «нагрузочное тестирование» используются взаимозаменяемо, нагрузочное тестирование является лишь одним из аспектов тестирования производительности. Цели двух тестов также различны. В тестировании производительности используются методы нагрузочного тестирования с целью получения результатов измерений и сравнительного анализа, а также несколько уровней нагрузки. Но нагрузочное тестирование работает на одном предопределенном уровне нагрузки, обычно это самая высокая нагрузка, с которой система может справиться без сбоев. На практике тесты производительности проводятся с целью выявления узких мест системы и их устранения. А когда система больше не может быть оптимизирована, запускается нагрузочное тестирование, чтобы определить, что нужно добавить в систему (чаще всего аппаратные расширения, такие как количество веб-серверов или серверов баз данных), чтобы удовлетворить требования, заранее определенные заказчиком..