суббота, 28 марта 2009 г.

Тестирование производительности (performance testing)

Целью тестирования производительности (lerformance testing) является определение изменений в работе приложения в зависимости от интенсивности нагрузки.

Например, в первые 20 мин моделируем одновременную работу 10 пользователей (10 пользователей выполняют операции с интервалом в 5 сек). Потом следующие 20 мин увеличиваем кол-во пользователей до 20, следующие 20 мин - увеличиваем до 50 и.т.д пока приложение не свалится или пока не начнет работать так медленно, что работой это не назовешь.

Примечание: кол-во пользователей и интервал зависит от тестируемой системы. Некоторым системам для нормальной работы достаточно поддерживать одновременную работу 10-ти пользователей, а некоторым - 10 тысяч пользователей.

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

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

  • изменение времени выполнения операций в зависимости от интенсивности операций (где интенвисность операций = кол-во пользователей * кол-во операций на единицу времени)
  • определение границы приемлемой производительности (где приемлемая производительность - это либо четко прописанное в ТЗ среднее время отклика системы, либо такая скорость работы,когда уже с приложением нормально работать невозможно) Кстати, для разных операций приемлемая производительность может быть разной. Например, если пользователю приложения нужно выполнять операцию 10 раз в час - то выполняться она должна быстро и не раздражать пользователя вечным ожиданием. Если пользователю нужно выполнить операцию раз в неделю или даже раз в день (например, сформировать сложный отчет), то такая операция может выполняться и дольше. Пользователь в это время может заниматься другими делами или просто пойти выпить кофе.
  • определение количества пользователей, которые могут одновременно работать с приложением

2 комментария:

  1. Всё-таки тестирование производительности - это performance testing, а load testing - это нагрузочное тестирование. При этом load testing является разновидностью performance testing.
    Вроде так чуток правильнее:)

    ОтветитьУдалить
  2. Ага, тестирование производительности - это действительно performance testing.
    Но не совсем согласна, что load testing является разновидностью performance.
    Я думаю, что под load testing подразумевают совокупность всех видов нагрузочных тестов (производительности, стресс, стабильности и обьемное тестирование).
    Также, часто встречала что одно и то же тестирование (с одинаковыми целями) називают в разных источниках как load так и performance testing.

    ОтветитьУдалить