9.1 resource analysis.templ
DESCRIPTION
TRANSCRIPT
Нефункциональное тестирование:
Анализ использования ресурсов
Светлана Зиннатова
Ресурсы Пользователь:
• Время:
– Время отклика системы
– Время выполнения
операции (функции,
запроса)
2
Система:
• Степень загрузки
процессора
– системная загрузка
– пользовательская загрузка
– ожидание окончания
операции ввода-вывода
– Бездействие
• Оперативная память
• Дисковая подсистема и
операции ввода-вывода
• Загруженность сети
Аспекты качества
С точки зрения пользователя
Производительность (Performance)
степень, с которой система или компонент
выполняет заложенные в нее функции в
установленных рамках
на время обработки
на пропускную способность
Аспекты качества
способность использования программным
продуктом соответствующего количества ресурсов
определенного типа (например, объема
оперативной памяти и памяти второго уровня,
размера временных файлов и т.д.) во время работы
в установленных условиях.
С точки зрения системы
Использование ресурсов
(resource utilization)
Аспекты качества
способность системы обеспечивать необходимую
производительность, относительно количества
ресурсов, используемых при установленных условиях.
Эффективность (efficiency)
Основной подход Предвари-тельный анализ,
пстановка задачи
Настройка стенда реализации
Проведение испытаний
Анализ результатов
Подготовка отчетов
Предварительный анализ
• Определение функционального разрез:
– Типичные задачи
– Вероятность их возникновения
• Определение профилей (ожидаемых):
– Производительности
– Эффективности
– Использования ресурсов
Настройка стенда реализации
• Оборудование
• Операционная система
• Тестируемая система
• Окружение
• Мониторинг Принципы:
• Максимальное приближение к
реальной жизни
• Изоляция от внешних влияний
• Учет влияния отклонений
Проведение испытаний
• Последовательное
выполнение операций в
соответствии с
функциональным
срезом и профилями
производительности/
эффективности
• Параллельная
фиксация метрик:
– Время отклика
– Ресурсы
9
Мониторинг ресурсов
• MS Task Manager
10
Мониторинг ресурсов
• MS Performance – Для запуска системного монитора также
достаточно ввести perfmon из Start (Пуск)/Run (Выполнить)
Анализ результатов
• Изучение статистики
• Поиск узкого места – bottle-neck
• Рекомендации к улучшению
Упражнение 1
• MS Word
– Постройте функциональный разрез
(достаточно 3-5 операций)
– Попробуйте определить профиль
производительности и использования
ресурсов
– Выберите средний документ и проведите
на нем испытания и зафиксируйте метрики
13
Особые ситуации
14
Объемное тестирование
• тестирование, при котором система
испытывается на больших объемах
данных.
Упражнение 2
• MS Word
– Повторите упражнение 1 на примере очень
большого документа (например книга или
научная диссертация), попробуйте
• Выполнить операции в середине документа,
• Найти что-то в документе
• Выделить весь текст
– Что изменилось?
16
Нефункциональное тестирование:
Анализ использования ресурсов
Светлана Зиннатова
Распределенные системы
18
Нагрузочное тестирование
• оценка поведения компонента или системы при возрастающей нагрузке:
– Количество параллельных пользователей
– Количество параллельных операций
• Номинальная
• Минимальная
• Максимальная
Нагрузочное тестирование
Stress testing
вид тестирования, оценивающий систему или компонент
на граничных значениях рабочих нагрузок или за их
пределами
Межные характеристики • Надежность (reliability)
– способность программного продукта функционировать при заданных условиях на протяжении определенного периода времени, или для определенного количества операций. Также применяются термины soak testing, endurance testing и т.д.
• Тестирование надежности – процесс тестирования,
исследующий надежность программного продукта.
Смежные характеристики • Масштабируемость (scalability)
– способность программного продукта к модернизации с целью удовлетворения возрастающей нагрузки.
• Тестирование масштабируемости (scalability testing) – тестирование с целью
оценить масштабируемость программного продукта.
Методика проведения
Предварительный анализ и постановка
задачи
Настройка стенда
реализации
Разработка типовых
сценариев и
реализация модели нагрузки
Проведение испытаний
Анализ результатов
Подготовка отчетов
Предварительный анализ
• Определение функционального разрез:
– Типичные задачи
– Вероятность их возникновения
• Определение профилей (ожидаемых):
– Производительности
– Эффективности
– Использования ресурсов
– Нагрузки
Профиль нагрузки
• Количество пользователей:
– Минимальная – X пользователей
– Номинальная – Y пользователей
– Максимальная – Z пользователей
– (за)Предельная
• Соотношение пользователей разного
профиля (по выполняемым операциям):
– Сценарий пользователя 1 - XX%
– Сценарий пользователя 2 - YY%
– Сценарий пользователя N - ZZ%
26
Настройка стенда реализации • Оборудование
• Операционная система
• Тестируемая система
• Окружение
• Инструменты нагрузочного
тестирования
• Мониторинг Принципы:
• Максимальное приближение к
реальной жизни
• Изоляция от внешних влияний
• Учет влияния отклонений
Инструменты
• Apache Jmeter (http://jakarta.apache.org/jmeter/)
• Open Systems Testing Architecture (OpenSTA, http://www.opensta.org/)
• WAPT – Web Application Testing (http://www.loadtestingtool.com)
• HP LoadRunner (www.mercury.com)
• IBM Rational Performance Tester (http://www.interface.ru/fset.asp?Url=/rational/PerfomTest.htm)
Мониторинг ресурсов
• Обычный
• Агентный
• Встроенный
– в том числе время отклика системы
– количество возникающих ошибок
Мониторинг производительности
• OS Unix – sar -
http://www.opennet.ru/man.shtml?topic=sar&russian=0&category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+man
– http://www.ibm.com/developerworks/ru/library/au-unix-perfmonsar/index.html
– top - http://www.opennet.ru/man.shtml?topic=top&russian=0&category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+man
– vmstat – http://www.opennet.ru/man.shtml?topic=vmstat&russian=0&category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+man
Разработка типовых сценариев и
реализация модели нагрузки
• Запись VU-скриптов
• Подготовка данных
• Проектирование сценариев
Проектирование сценария
нагрузки – Варианты запуска:
• Все одновременно
• Постепенно по одному
• По расписанию
• Хаотично партиями
– Варианты прогона:
• Все фремя фиксированная нагрузка
(performance/efficiency)
• Все время возрастающая нагрузка (stress)
• Переменная нагрузка (reliability)
Проведение испытаний
• Зафиксировать состояние системы
• Следить за состоянием системы между
тестами
• Предварительный прогон теста с
разными уровнями нагрузки (малыми)
• Прогон основных нагрузочных сценариев
• Фиксация метрик производительности,
использования ресурсов
Анализ результатов
• Изучение статистики
• Поиск узкого места – bottle-neck
• Рекомендации к улучшению