Skip to main content
Нефункциональное тестирование:
  Анализ использования ресурсов
                    Светлана Зиннатова
Ресурсы
Пользователь:               Система:
• Время:                    • Степень загрузки
  – Время отклика системы     процессора
  – Время выполнения          – системная загрузка
    операции (функции,        – пользовательская загрузка
    запроса)                  – ожидание окончания
                                операции ввода-вывода
                              – Бездействие
                            • Оперативная память
                            • Дисковая подсистема и
                              операции ввода-вывода
                            • Загруженность сети

                                                       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&ca
    tegory=&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&ca
    tegory=&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

• Рекомендации к улучшению