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

Что сегодня представляет из себя программа? Программа - это тысячи строк кода скрытых от пользователей, в которых реализована логика и функционал для выполнения определенных операций. И можно с утверждением сказать что объем задач с каждым годом становится все больше и сложнее. И как следствие, вопрос производительности программы становиться все острее.
Тестирование производительности - это набор техник тестирования, которые исследуют показатели работы программы при внешних воздействиях с различными по характеру и интенсивности нагрузками. Основной целью тестирования является поиск уязвимостей в системе.
Выделяют следующие направления:
- нагрузочное тестирование;
- стресс-тестирование;
- тестирование стабильности;
- объемное тестирование;
- тестирование масштабируемости.
Каждое направление преследует свои цели и использует свой набор методик и
инструментов.
Как правило требования производительности сформированы в виде функциональных требований,
но не всегда такие требования описывают все сценарии работы программ.
Прежде чем начать тестирование следуют определиться с объемом работ, которые необходимо
провести. И для этого ответьте на следующие вопросы:
- Что должно быть протестировано? - Вся система, либо ее часть,
либо отдельный компонент, либо интерфейс.
- Что представляет из себя тестируемая система? - Сетевое
оборудование, серверы, тип и количество процессоров, объем памяти, операционная система
и т.д.
- Какое количество пользователей будет использовать программу
одновременно?
- Какие требования по скорости обработки запросов?
Главными показателями при тестировании производительности конечно являются надежность и
скорость работы. Но и другие метрики (не менее важные) подтверждают работоспособность
системы:
- Потребление ресурсов центрального процессора (CPU, %);
- Потребление оперативной памяти (Memory usage, Mb);
- Потребление сетевых ресурсов;
- Работа с дисковой подсистемой (I/O Wait);
- Время выполнения запроса (request response time, ms);
- Время обработки пакетных операций;
- Количество ошибок.
Результаты тестирования производительности предоставляют в виде отчета. Отчет включает в себя описание процесса тестирования, начальные данные, метрики, полученные в результате тестирования, анализ полученных показателей и предложения по улучшению работы программы. Используйте визуальные средства представления результатов - диаграммы, графики, таблицы - это повысит восприятие итоговых данных.
Кроме того, учитывая что во время тестирования производительности могут быть созданы большие объемы данных, не забывайте после завершения тестовых процессов, “убирать за собой” и возвращать программу в исходное состояние.