atesting.ru Блог Руководство по тестированию производительности | Материалы для тестирования программного обеспечения

Руководство по тестированию производительности | Материалы для тестирования программного обеспечения

В области тестирования программного обеспечения тестировщики в основном концентрируются на тестировании «черного ящика» и «белого ящика». В рамках тестирования «черного ящика» опять же есть разные типы тестирования. Основными типами тестирования являются функциональное тестирование и нефункциональное тестирование. Тестирование производительности и типы тестирования производительности относятся к нефункциональному тестированию.

 Учебное пособие по тестированию производительности | Материалы для тестирования программного обеспечения

В этой статье мы рассмотрим следующее

Что такое тестирование производительности?

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

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

Тестирование производительности включает в себя несколько различных типов тестирования, таких как нагрузочное тестирование, объемное тестирование, стресс-тестирование, тестирование емкости, тестирование на выдержку/выносливость и пиковое тестирование, каждое из которых предназначено для выявления или решения проблем производительности в системе.

< h3 id = "Why-Performance-Testing"> Почему именно тестирование производительности?

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

Мы используем инструменты тестирования производительности для измерения производительности тестируемой системы или приложения (AUT) и помогаем в выпускает высококачественное программное обеспечение, но не для поиска дефектов в приложении.

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

Скорость: определяет, будет ли приложение быстро реагировать

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

Стабильность: определяет, стабильно ли приложение при различных нагрузках

Плохо выполняемые приложения приобретают плохую репутацию и не соответствуют ожидаемым целям. Поэтому тестирование производительности приложения очень важно.

Типы тестирования производительности?

 Учебное пособие по тестированию производительности | Материалы для тестирования программного обеспечения

Тестирование емкости:

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

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

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

Объемное тестирование:

Объемное тестирование — это проверка того, может ли система/приложение обрабатывать большой объем данных. Это тестирование сосредоточено на базе данных. Тестировщик производительности, выполняющий объемное тестирование, должен заполнять огромный объем данных в базе данных и отслеживать поведение системы.

Стресс-тестирование:

Стресс-тестирование предназначено для проверки поведения системы, когда нагрузка превышает проектные ожидания системы. Это тестирование определяет, какие компоненты выходят из строя в первую очередь, когда мы нагружаем систему, прикладывая нагрузку, превышающую проектные ожидания. Чтобы мы могли разработать более надежную систему.

Испытания на выдержку/выносливость:

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

Spike Testing:

Spike Testing предназначено для определения поведения системы при внезапном увеличении нагрузки (большое количество пользователей) на систему.

Подробнее: Типы тестирования производительности & amp; Более 100 видов тестирования программного обеспечения

Разница между функциональным тестированием и нефункциональным тестированием?

< td class = "column-1"> Типы тестирования:
• Модульное тестирование
• Дымовое тестирование
• Принятие пользователями
• Интеграционное тестирование
• Регрессионное тестирование
• Локализация
• Глобализация
• Взаимодействие
Функциональное тестирование Нефункциональное тестирование
То, что система на самом деле делает, является функциональным тестирование Насколько хорошо работает система — это нефункциональное тестирование
Чтобы ваш продукт соответствовал требованиям клиентов и бизнеса и не содержал серьезных ошибок Чтобы продукт соответствовал ожиданиям клиентов
Чтобы проверить точность программного обеспечения относительно ожидаемого результата Чтобы проверить поведение программное обеспечение при различных условиях нагрузки
Выполняется перед нефункциональным тестированием Выполняется после функционального тестирования
Пример функционального теста — проверка функциональность входа Пример нефункционального тестового примера — проверить, загружается ли домашняя страница менее чем за 2 секунды
Типы тестирования:
• Тестирование производительности
• Объемное тестирование
• Масштабируемость
• Юзабилити-тестирование
• Нагрузочное тестирование
• Стресс-тестирование
• Тестирование на соответствие
• Тестирование переносимости
• Тестирование аварийного восстановления
Это может быть выполнено вручную или автоматически Это может быть выполнено эффективно, если оно автоматизировано

Разница между тестированием производительности, нагрузочным тестированием и & amp; Стресс-тестирование

Тестирование производительности:

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

Тестирование производительности проводится для снижения риска доступности, надежности, масштабируемости, отзывчивости, стабильности и т. Д. Системы.

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

Тестирование нагрузки:

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

Стресс. Тестирование:

Стресс-тестирование предназначено для проверки поведения системы, когда нагрузка увеличивается больше, чем предполагалось при проектировании системы. Это тестирование определяет, какие компоненты выходят из строя в первую очередь, когда мы нагружаем систему, прикладывая нагрузку, превышающую проектные ожидания. Чтобы мы могли разработать более надежную систему.

Тестирование производительности Нагрузочное тестирование Стресс-тестирование
Это надмножество нагрузки и стресс-тестирование Это подмножество тестирования производительности Это подмножество тестирования производительности
Цель тестирования производительности — установить эталонные показатели и стандарты для приложения Цель нагрузочного тестирования — определить верхний предел системы, установить SLA приложения и проверить, как система справляется с большой нагрузкой Цель стресс-тестирования — выяснить, как система ведет себя при экстремальных нагрузках и как она восстанавливается после сбоя
Предел нагрузки ниже и выше порога перерыва Предел нагрузки — это порог перерыва Предел нагрузки выше порога перерыва
Атрибуты, которые проверяются при тестировании производительности: скорость, время отклика, использование ресурсов, стабильность, надежность и пропускная способность Атрибуты, которые являются во время нагрузочного тестирования проверяются пиковая производительность, пропускная способность сервера, время отклика при различных уровнях нагрузки, требования к балансировке нагрузки и т. д. Атрибуты, которые проверяются в стресс-тестировании, — это время отклика стабильности, пропускная способность и т. Д.

Разница между проектированием производительности и & amp; Тестирование производительности?

Разработка производительности — это дисциплина, которая включает передовые практики и действия на каждом этапе жизненного цикла разработки программного обеспечения (SDLC) для тестирования и настройки приложения с целью достижения требуемой производительности.

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

Процесс тестирования производительности

Определите тестовую среду:

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

Определите критерии приемки производительности:

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

Plan & amp; Разработка тестов производительности:

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

Настройте тестовую среду:

Подготовьте тестовую среду, расположите инструменты и другие ресурсы перед выполнением

Реализуйте дизайн теста:

Разработайте тесты производительности в соответствии с дизайном теста

Выполнить тест:

Выполнить и контролировать тесты

Анализировать результаты, составлять отчет и повторно тестировать:

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

Пример теста производительности Примеры

Написание тестовых примеров для тестирования производительности требует другого мышления по сравнению с написанием функциональных тестовых примеров.

Подробнее: Как писать функциональные тестовые примеры.

  • Проверить, способно ли приложение обрабатывать определенное количество одновременных пользователей.
  • Проверить, находится ли время отклика приложения под нагрузкой в ​​приемлемом диапазоне при медленном сетевом подключении.
  • Чтобы проверить время отклика приложения в условиях низкой, нормальной, умеренной и высокой нагрузки.
  • Проверить, продолжает ли сервер работать без сбоев при высокой нагрузке.
  • Проверить, приложение возвращается к нормальному поведению после пиковой нагрузки
  • Чтобы проверить сервер базы данных, использование ЦП и памяти приложением при пиковой нагрузке

Как выберите подходящий инструмент для тестирования производительности

На рынке существует множество инструментов для тестирования производительности. Из всех доступных инструментов невозможно назвать лучший инструмент для тестирования производительности. Потому что у каждой компании свои потребности. То, что идеально подходит для одной компании, может не подходить для другой. Мы должны провести некоторый анализ, прежде чем выбрать правильный инструмент. Вот некоторые факторы, которые мы должны учитывать при выборе лучшего инструмента тестирования производительности.

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

  • Бюджет (лицензия стоимость)
  • Типы лицензий
  • Поддержка протокола
  • Предпочтение клиента в отношении инструмента нагрузочного тестирования
  • Стоимость обучения сотрудников выбранным инструмент
  • Аппаратные/программные требования инструмента загрузки
  • Политика поддержки и обновлений поставщика инструментов

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

Некоторые из популярных инструментов тестирования производительности: LoadRunner, Apache JMeter, NeoLoad, StresStimulus, LoadUI Pro, WebLOAD, Rational Performance Tester, AppLoader, SmartMeter.io, Silk Performer, StormRunner Load, LoadView.

Просмотрите наш полный список популярных инструментов для тестирования производительности.

Заключение:

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

TAG: qa