Тестирование производительности – один из важнейших видов нефункционального тестирования. В данной статье мы подробно разберем жизненный цикл тестирования производительности и его виды, а также познакомимся с некоторыми популярными инструментами для его реализации.
Содержание
- Что такое тестирование производительности?
- Преимущества тестирования производительности
- Этапы жизненного цикла тестирования производительности
- Виды тестирования производительности
- Инструменты для тестирования производительности
БЕСПЛАТНО СКАЧАТЬ КНИГИ в телеграм канале "Библиотека тестировщика"
Что такое тестирование производительности?
Тестирование производительности – это вид тестирования программного обеспечения, который определяет, как приложение работает под различными нагрузками. Целью тестирования производительности является не поиск ошибок, а устранение узких мест в работе. Оно измеряет качественные характеристики системы.
К атрибутам тестирования производительности относятся:
- Скорость. Она определяет, насколько быстро приложение отвечает на запросы.
- Масштабируемость. Определяет максимальную пользовательскую нагрузку, которую может выдержать программное приложение.
- Стабильность. Определяет, насколько приложение стабильно при изменяющихся нагрузках.
Преимущества тестирования производительности
- Валидация возможностей. Тестирование производительности позволяет оценить возможности программного обеспечения. Измерение производительности основных функций позволяет руководителям предприятий своевременно вносить необходимые изменения в работу продукта.
- Измерение скорости, точности и стабильности. Это помогает контролировать важнейшие компоненты программного обеспечения под нагрузкой и дает важную информацию о том, как ПО справляется с масштабируемостью.
- Соответствие ожиданиям пользователей. Измерение производительности приложений позволяет наблюдать за тем, как ваши клиенты взаимодействуют с вашим программным обеспечением. Преимущество заключается в том, что вы можете выявить критические проблемы раньше, чем ваши клиенты.
- Выявление несоответствий. Измерение производительности обеспечивает буфер для разработчиков до выпуска продукта.
- Улучшение оптимизации и пропускной способности. Измерение производительности помогает подготовить приложение к внезапным скачкам нагрузки и наплыву большого количества пользователей.
Этапы жизненного цикла тестирования производительности
Жизненнй цикл тестирования производительности (PTLC) начинается параллельно с жизненным циклом разработки программного обеспечения (SDLC). Фазы жизненного цикла тестирования производительности:
- Выявление и анализ нефункциональных требований
- Стратегия тестирования производительности
- Проектирование тестов производительности
- Выполнение тестирования производительности
- Анализ результатов тестирования производительности
- Рекомендации клиенту
1. Выявление и анализ нефункциональных требований
Это один из наиболее важных и ответственных этапов для понимания нефункциональных требований в PTLC. Он позволяет оценить степень соответствия нефункциональным потребностям.
Критерии входа:
- Архитектура приложения, которое нужно протестировать (AUT, Application Under Test )
- Опросник по нефункциональным требованиям
Задачи:
- Разобраться в архитектуре AUT
- Определить критические сценарии
- Разобраться в деталях интерфейса
- Понять тип роста
Критерий выхода – подписание клиентом документа с нефукнциональными требованиями.
2. Стратегия тестирования производительности
Второй этап определяет стратегию тестирования для выявленных критических сценариев. Для этого необходимо утвердить виды тестирования производительности, которые будут применяться, и выбрать соответсвующие инструменты.
Критерий входа – подписанный документ с нефункциональными требованиями.
Задачи:
- Подготовить стратегию тестирования и ревью
- Подготовить данные
- Определить, что входит, а что не входит в объем тестирования
- Соглашение об уровне услуг (SLA)
- Модель нагрузки
- Подготовить риски, смягчение рисков и ревью
Критерий выхода – базовый документ стратегии тестирования.
3. Проектирование тестов производительности
Эта фаза включает в себя создание сценариев тестирования с использованием выбранного инструмента в специальной среде и подбор тестовых данных.
Критерии входа:
- Базовая тестовая стратегия
- Тестовая среда
- Тестовые данные
Задачи:
- Сценарий тестирования
- Параметризация данных
- Корреляция
- Проектирование действий и транзакций
- Юнит-тестирование
Критерий выхода – скрипты модульного тестирования производительности.
4. Выполнение тестирования производительности
На следующем этапе тестировщики выполняют сценарии тестирования производительности и собирают результаты тестов.
Критерий входа – базовые тестовые скрипты.
- Задачи:
- Проектирование сценариев
- Загрузка тестового скрипта
- Выполнение тестового скрипта
- Мониторинг выполнения
- Сбор логов
Критерий выхода – лог-файлы выполнения тестового скрипта.
5. Анализ результатов тестирования производительности
На данном этапе проводится анализ собранных лог-файлов. В случае выявления каких-либо проблем даются рекомендации по настройке системы.
Критерий входа – собранные файлы логов.
Задачи:
- Создать графики и диаграммы
- Проследить корреляцию между различными графиками и диаграммами
- Подготовить подробный отчет о тестировании
- Анализ отчета о тестировании и ревью
- Дать рекомендации
Критерий выхода – отчет с анализом производительности.
6. Рекомендации клиенту
Это последняя фаза PTLC, которая включает в себя составление отчета и предоставление рекомендаций клиенту.
Критерий входа – отчет с анализом производительности.
Задачи:
- Сравнить результат с более ранними результатами выполнения
- Сравнить результаты со стандартными показателями
- Соотнести с нефункциональными требованиями
- Подготовить презентацию отчета о тестировании
Критерий выхода – проверенный отчет о производительности.
Виды тестирования производительности
Различные виды тестирования производительности включают в себя:
- Нагрузочное тестирование (Load testing) проверяет способность приложения работать в условиях предполагаемой пользовательской нагрузки. Цель состоит в том, чтобы выявить узкие места в производительности до запуска программного приложения в эксплуатацию.
- Стресс-тестирование (Stress testing) предполагает тестирование приложения в условиях экстремальных нагрузок для определения того, как оно справляется с высоким трафиком или обработкой данных. Цель состоит в том, чтобы определить точку отказа приложения.
- Тестирование на выносливость (Endurance testing) позволяет убедиться, что программное обеспечение способно выдерживать ожидаемую нагрузку в течение длительного периода времени.
- Спайк-тестирование (Spike testing) – проверка реакции программного обеспечения на внезапные большие скачки нагрузки, создаваемые пользователями.
- Объемное тестирование (Volume testing). При объемном тестировании в базу данных заносятся большие объемы данных и отслеживается поведение всей системы. Цель состоит в том, чтобы проверить производительность программного приложения при различных объемах базы данных.
- Тестирование масштабируемости (Scalability testing) помогает удостовериться в том, что приложение сможет без проблем справиться с прогнозируемым увеличением количества пользователей, объемов данных, количества пользовательских запросов или транзакций. Это помогает планировать увеличение мощности системы.
Если вы хотите провести любое из этих тестирований на своем сервере, вам понадобятся различные инструменты, совместимые с вашим планом тестирования. Давайте рассмотрим некоторые из наиболее популярных инструментов тестирования производительности.
Инструменты для тестирования производительности
На рынке представлено достаточно много инструментов. При выборе следует обращать внимание на легкость изуения (в соответствии с вашими навыками), универсальность и эффективность для требуемого вида тестирования.
Десятка самых популярных инструментов для тестирования производительности:
- LoadNinja
- Apache JMeter
- WebLOAD
- LoadUI Pro
- LoadView
- NeoLoad
- LoadRunner
- Silk Performer
- AppLoader
- SmartMeter.io
Спасибо за прочтение!
Перевод статьи «Performance Testing Life Cycle: A Comprehensive Guide To The Testing Phases».
Пингбэк: 100 тест-кейсов для страницы входа в систему
Пингбэк: Сквозное тестирование для лучшего пользовательского опыта