Тестирование масштабируемости

Описание

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

Итак, масштабируемость приложения (сайта) означает его способность беспроблемно обработать изменение условий, в которых работает система: увеличение трафика и объемов принимаемых данных, рост количества транзакций в базах данных, и так далее. Масштабируемость приложения — его умение «расти и расширяться».

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

Числовые показатели (метрики) тестирования зависят от проекта; в основном, что касается веб-приложений и сайтов, тестирование масштабируемости оценивает количество пользователей и нагрузку на аппаратную часть (особенно процессоры) и сеть.

Цели

Определить:

  • Как приложение будет реагировать на стабильный рост нагрузки (например кратное увеличение количества клиентов)
  • Какое максимальное количество пользователей (клиентов) теоретически доступно в этом проекте
  • Проблемные места в аппаратной и программной части
  • Ухудшится ли user experience
  • Как аппаратная часть (серверы) отреагирует на постоянное расширение клиентской базы, например кратное или на порядок

Атрибуты и метрики

Время отклика

Или время реакции, то есть промежуток между запросом пользователя и ответом приложения. Этот параметр сильно зависит от нагрузки, и перед QA ставится задача определить, насколько. 

Пропускная способность

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

Показатели при фиксированном статусе

Показатели производительности с фиксированным (целевым) количеством пользователей; система должна поддерживать такое количество без каких-либо проблем в виде зависаний или отказов.

Пороговая нагрузка

Количество одновременных запросов (транзакций), при которых система не выходит из рабочего состояния

Загрузка CPU

(Загрузка процессора), процент утилизации процессора при обработке нужного количества пользователей (транзакций)

Использование памяти

Процент памяти в системе, задействованной на обработку задач приложением

Использование сети

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

Этапы

  1. Описать процессы (скорее всего они будут циклическими)
  2. Определить критерии успешного прохождения тестирования
  3. Подобрать инструменты
  4. Настроить тестовое окружение и подготовить «хард» в целом
  5. Создать сценарии тестирования
  6. Выполнить тестирование
  7. Оценить результаты
  8. Сгенерировать репорты

Преимущества и недостатки

Преимущества тестирования масштабируемости

  • Создает видение перспектив проекта
  • Находит проблемные места в аппаратной и программной части, мешающие расширению проекта
  • Экономит время и деньги в будущем
  • Улучшит user experience

Недостатки

  • Не направлено на устранение функциональных проблем в приложении
  • Качественные инструменты могут повысить расходы
  • QA-команда должна обладать большим опытом нагрузочного тестирования
  • При обнаружении проблем процесс может непредсказуемо затянуться
  • При тестировании популярного «нагруженного» продукта сложно подобрать время для тестов

Инструменты

Инструменты стандартные для нагрузочного тестирования.

***

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

🔥 Популярное

💬 Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас