Планирование автоматизированного функционального и нагрузочного тестирования при сопровождении ППО автоматизированных систем Позин Борис Аронович Д.т.н., профессор
Поговорим о тестировании Особенности тестирования ППО АС при сопровождении Зачем нужно планирование тестирования? Тестирование и требования к ППО АС Виды нагрузочного тестирования ППО АС Обеспечение адекватности нагрузочного тестирования
Что такое тестирование? Тестирование - один из основных методов обеспечения качества Тестирование – проводится с целью обнаружения ошибок в программе /программной системе путем сопоставления результатов прогона программы на тестах, как объекта, с эталоном - формализованным или формальным описанием ожидаемых свойств программы
Особенности тестирования ППО АС при сопровождении
Служба гарантиро- ванной доставки сообщений Служба гарантиро- ванной доставки сообщений Система, управляемая командами пользователей Система, управляемая сообщениями Используются все возможности IBM Rational Functional Tester Разрабатываются генераторы тестов и используются возможности инструментов IBM Rational Поток сообщений Internet / SQL трафик Виды тестируемых систем
Задачи автоматизированного тестирования при разработке и сопровождении Виды тестирования РазработкаСопровождение Функциональное Многократный контроль корректности сборки прикладной системы Систематический контроль соответствия внесенных изменений требованиям нормативных документов Проверка правильности реализации функций, предусмотренных ТЗ, Периодический контроль целостности прикладной системы после внесения изменений по функциям и в полном объеме требований нормативных документов Проверка корректности реализации интерфейсов с конечным пользователем Проверка корректности функционирования прикладной системы в составе АБС на стенде сопровождения Проверка корректности функционирования прикладной системы в составе АБС на стенде Проверка корректности функционирования прикладной системы в составе АБС на целевой платформе, близкой к промышленной конфигурации Нагрузочное Оценка достижимых эксплуатационных характеристик прикладной системы на стенде разработчика Оценка достижимых эксплуатационных характеристик прикладной системы на стенде, максимально приближенном к промышленной конфигурации Систематический контроль деградации эксплуатационных характеристик АБС после внесения изменений в прикладную программную систему на стенде, максимально приближенном к промышленной конфигурации
Зачем нужно планирование тестирования?
Что такое планирование тестирования Построение полного набора тестовых примеров для проверки всех свойств ППО АС невозможно Необходимо проверять основные свойства ППО АС при внесении в них изменений Функциональное тестирование: Можно построить дерево маршрутов (тестовых последовательностей), покрывающих схему функциональных связей компонентов ППО АС и предложить стратегию проверок (порядок проверки маршрутов) обеспечивающую необходимый уровень проверки при имеющихся ресурсах всех видов Нагрузочное тестирование: можно построить план эксперимента по работе АС под внешней нагрузкой, при котором оценить статистические значения показателей назначения АС при выполнении типовых сценариев работы
Планирование выпуска и планирование тестирования Исчерпывающее тестирование невозможно Ресурсы ограничены, их надо планировать Планирование тестирования необходимо начинать вместе с планированием выпусков Тестировать не только изменения, а проводить регрессионное тестирование
Автоматизация тестирования Возможность создания автоматизированных тестов, что значительно уменьшает трудозатраты при тестировании ППО и сокращает общие сроки разработки - существенное увеличение объема проверок ППО при снижении совокупной трудоемкости автоматизированного тестирования Возможность проведения многократных испытаний на этапах функционального, регрессионного и интеграционного тестирования, что позволяет обнаруживать ошибки на ранних этапах разработки ППО Автоматизация систематической проверки целостности ППО после внесения в них изменений (модификаций) в процессе сопровождения Систематическая проверка количественных характеристик функционирования ППО, в том числе модификаций, обнаружение узких мест Оценка эффективности проектных решений и определение направлений развития ППО Наиболее эффективным методом применения автоматизированного тестирования при сопровождении является многократное регрессионное тестирование
Тестирование и требования к ППО АС
Управление требованиями Сократить дистанцию от бизнеса к АС и обратно Бизнес Требования АС
Уровень зрелости процесса управления требованиями 0-й уровень Уровень проекта Уровень подразде- ления Корпора- тивный уровень Требований нет вообще Требования в умах специалистов Требования размазаны по документам, актуальность и непротиворечивость не отслеживается Требования ведутся и актуализируются в едином документе Требования ведутся в локальной системе управления требованиями Требования ведутся в корпоративной системе управления требованиями
Общая схема функционального тестирования Тестируемая программа Функциональные требования к программе Функциональные требования Тестовые требования..... Результаты прогона тестов Проверяемые требования Функциональные требования Тестовые треб. Тесты
Тестируемая система Потоки требований λ (t) µ(t)µ(t) λ / µ
Виды нагрузочного тестирования ППО АС
Как контролировать и прогнозировать величины показателей назначения (эксплуатационных характеристик) системы? («Градусник» архитектуры) Прикладная система IT- инфраструктура Поток изменений ПО Поток изменения инфраструктуры 1.Динамические параметры 2. Параметры безопасности 3. Технико-экономические параметры 1.Динамические параметры 2. Параметры безопасности 3. Технико-экономические параметры
Эксплуатационные характеристики РеактивностьРеактивность характеристики Эксплуатационные характеристики Время ожидания обслуживания ПродуктивностьПродуктивность ИспользованиеИспользование Время обслуживания Время реакции Пропускная способность Выработка Утилизация ресурса Относительная пропускная способность Эксплуатационные характеристики всегда оцениваются статистически ISO/IEC 15939:2001 Information technology – Software engineering – Software measurement process
Тестирование эксплуатационных характеристик Нагрузочное тестирование (load) В тестировании эксплуатационных характеристик различают следующие направления: Стресс -тестирование (stress) Тестирование стабильности (endurance or soak or stability) Конфигурационное тестирование (configuration) Нагрузочное тестирование обычно проводится для того, чтобы оценить поведение приложения под заданной ожидаемой нагрузкой. Стресс-тестирование используется для понимания пределов пропускной способности приложения. Тестирование стабильности проводится с целью убедиться в том, что приложение выдерживает ожидаемую нагрузку в течение длительного времени, т.е. что скорость обработки информации и/или время ответа приложения через длительное время работы остаются такими же или становятся лучше, чем в самом начале тестирования, т.е. отсутствует деградация производительности, Конфигурационное тестирование – проверка того, каков эффект влияния изменений в конфигурации на производительность. Конфигурационное тестирование также может быть совмещено с нагрузочным, стресс или тестированием стабильности.
Цели нагрузочного тестирования Оценка количественных характеристик функционирования программного комплекса (производительность, пропускная способность, среднее время пребывания задачи в системе, средняя скорость обработки информации определенного вида и т.п.), в том числе при внесении модификаций Обнаружение и оценка узких мест в системе, выработка рекомендаций по их устранению Планирование перспективной нагрузки Определение направлений развития программного комплекса в части совершенствования его системных количественных характеристик и оценки эффективности новых решений Проверка статистических характеристик программного комплекса при внесении в него модификаций в процессе сопровождения
Виды нагрузочного тестирования Общая проблема: обеспечение адекватности результатов тестируемой системе Оценочное - оценка пропускной способности, времен пребывания задач в системе Аналитическое - выявление зависимостей (например, производительности от вычислительных ресурсов) Настроечное - настройка и оптимизация нагрузочных характеристик Регрессионное - многократное тестирование при неизменных условиях для выявления признаков деградации тестируемой системы
Модернизация оборудования Инвестиции в масштабирование оборудования Определение требуемых вычислительных мощностей Нагрузочные эксперименты Прогноз роста нагрузки Инвестиционный цикл при модернизации ИС и взаимосвязь с нагрузочным тестированием 1 раз в год 6-8 месяцев На срок не менее года Оценка требуемых ресурсов Закупка оборудования и ПО
Обеспечение адекватности нагрузочного тестирования
Модели для нагрузочного тестирования Модель требований Модель нагрузки Модель системы Модель измерений Цели тестирования Характеристики и показатели, которые надо определить. Критерии, которым они должны соответствовать Объект тестирования: какая часть системы подвергается тестированию Какие параметры надо измерять и в каких точках Каковы потоки требований к системе от управляемого процесса
Схема нагрузочного тестирования Средства управления требованиями Информационная система Средства планирования тестирования Ограничения Генератор тестовых данных Средства проверки стенда База тестовых данных Стенд Тестовые данные Средства подачи нагрузки Средства измерений База данных Процедуры обработки Хранилище данных Анализ результатов Определение целей тестирования Разработка программы и методики испытаний Подготовка к тестированию Подача нагрузки Интерпретация и анализ результатов Сбор данных Метамодель требований : Модель требований Модель системыМодель измерений Метамодель измеренийМетамодель системыМетамодель нагрузки Модель нагрузки Программа и методика испытаний Протокол
Система автоматизированного нагрузочного тестирования Модели требований, нагрузки и системы Отчет о нагрузочном тестировании Генератор тестовых данных Генератор тестовых данных Графический интерфейс нагрузочного тестирования Графический интерфейс нагрузочного тестирования Генерация отчетов Нагрузка БД САТ Предварительная нагрузка Основная нагрузка Регламентные процедуры завершения дня САНТ База тестовых данных Регламентные процедуры подготовки отчетности Данные Имитация действий пользователя Компоненты сбора данных о функционировании стенда Базы данных Сервер обработки 40 обработчиков 80 виртуальных серверов доступа и контроля 40 входных очередей Стенд АБС АРМы пользователей 40 баз данных Тестовыесообщения Данные о НТ Модели требований и измерений ЕС-лизинг IBM Rational
Спасибо за внимание!