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

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

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

Различают следующие типы тестов производительности:

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

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

  • На первом уровне анализа производительности определяются результаты для отдельного субъекта или экземпляра варианта использования, а затем эти результаты сравниваются с результатами выполнения других тесто. Например, можно измерить производительность отдельно взятого субъекта на отдельно взятом варианте использования в момент, когда в объекте тестирования не выполняются другие операции, а затем сравнить полученные результаты с несколькими другими тестами, в которые был вовлечен тот же субъект или вариант использования. Анализ первого уровня позволяет выявлять тенденции, которые могут служить признаками конкуренции за системные ресурсы. Конкуренция за ресурсы снижает надежность заключений, сделанных на основании результатов тестирования.
  • На втором уровне выполняется анализ общей статистики и фактических значений для конкретных субъектов и вариантов использования, а также анализируются поведение и производительность объекта тестирования. Среди прочих показателей рассчитываются стандартные отклонения и процентные распределения времени отклика, по которым можно судить о стабильности реакции системы на запросы различных субъектов.
  • Третий уровень анализа применяется для определения причин и величины снижения производительности. Данный подробный анализ проводится на основании низкоуровневых данных с применением статистических функций, позволяющих делать заключения по выборкам данных. Подробный анализ позволяет сформулировать объективные количественные критерии принятия решений, однако он занимает больше времени и требует знания основ статистики.

В подробном анализе выделяется статистическая значимость - величина, позволяющая оценить, насколько колебания производительности системны и насколько они вызваны случайными факторами. Идея заключается в том, что на фундаментальном уровне все события носят вероятностный характер. Статистическое тестирование позволяет определить, существуют ли системные колебания, которые нельзя объяснить вероятностным характером событий.

Дополнительные сведения об отчетах о тестировании производительности приведены в разделе Технология: Ключевые показатели тестирования.