Научная статья на тему 'ОСОБЕННОСТИ И СТРУКТУРА НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ'

ОСОБЕННОСТИ И СТРУКТУРА НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
57
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНФОРМАЦИОННАЯ СИСТЕМА / НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ / ЭТАПЫ ТЕСТИРОВАНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Туровец Николай Олегович, Алефиренко Виктор Михайлович

Рассмотрены специфика и основные этапы организации проведения нагрузочного тестирования информационной системы.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Туровец Николай Олегович, Алефиренко Виктор Михайлович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ОСОБЕННОСТИ И СТРУКТУРА НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ»



I

SCIENCE TIME

I

ОСОБЕННОСТИ И СТРУКТУРА НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ

Туровец Николай Олегович, Белорусский государственный университет информатики и радиоэлектроники, г. Минск, Республика Беларусь

E-mail: turovets.nick999@gmail.com

Алефиренко Виктор Михайлович, Белорусский государственный университет информатики и радиоэлектроники, г. Минск, Республика Беларусь

E-mail: alefirenko@bsuir.by

Аннотация. Рассмотрены специфика и основные этапы организации проведения нагрузочного тестирования информационной системы.

Ключевые слова: информационная система, нагрузочное тестирование, этапы тестирования.

Интегрированная информационная система - это набор интегрированных приложений, которые комплексно, в едином информационном пространстве поддерживают все основные аспекты управленческой деятельности предприятия [1]. Перед внедрением в эксплуатацию необходимо проводить тестирование информационной системы. Тестирование позволяет определить, как и с какой скоростью может работать система под определенной нагрузкой. Можно выделить 3 основных метода тестирования информационных систем: тестирование производительности, нагрузочное тестирование и стресс-тестирование [2].

Особенность нагрузочного тестирования состоит в том, что оно позволяет проверить такие нефункциональные требования к системе, как производительность, стабильность, масштабируемость, стрессо- и отказоустойчивость. Поскольку нагрузочное тестирование имеет меньшую углубленность в функциональные возможности и реализацию тестируемой системы, то можно считать, что оно находится между функциональным тестированием и автотестированием [3].

Задача нагрузочного тестирования состоит в следующем: требуется гарантировать технологическое качество информационной системы после ввода в эксплуатацию информационной системы и обеспечить соответствия технологическим требованиям, которые заявлены заказчиком, в процессе использования информационной системы. Технология описывает общий подход

1 SCIENCE TIME 1

к проведению нагрузочного тестирования и общие положения по организации тестовой инфраструктуры, исходя из предположения, что в дальнейшем тестовая инфраструктура может быть использована для целей обеспечения технологического качества, например, при обновлении информационной системы к следующей версии [3].

Если информационная система уже существует, необходимо обязательно собрать информацию о текущем характере работы информационной системы. В этом случае, возникает возможность сосредоточить значительное внимание на технологические проблемы и ликвидировать их на следующих этапах. Кроме того, при анализе текущей информационной системы можно заранее попробовать спрогнозировать узкие места при решении задач масштабирования или внесения изменений в версию информационной системы [3].

Для информационных систем, которым предстоит работа с большими объемами данных, задачи выполнения нагрузочного тестирования имеют большое преимущество. Часто система показывает отличную производительность на данных небольшого объема, однако вместе с увеличением загрузки появляются различного рода проблемы, которые могут быть связаны с неоптимальным построением запросов, технологическими конфликтами различных элементов системы, ограничениями системных ресурсов и т. д. [4].

Ключевые преимущества проведения нагрузочного тестирования [5]:

1. Оценка возможностей системы и определение максимальной производительности.

2. Предупреждение отказов системы в промышленной эксплуатации.

3. Выявление ошибок (например, утечка памяти, некорректные настройки или распределение ресурсов).

4. Поиск оптимального комплекса технических средств (КТС).

Испытывая огромные нагрузки, информационная система в любом случае

обязана эффективно работать. Поэтому нагрузочное тестирование является гарантией стабильности действий приложений.

Основные этапы организации проведения нагрузочного тестирования информационной системы включают [1]:

1. Сбор требований.

2. Анализ текущей ситуации, если эталонная информационная система уже существует.

3. Подготовка тестовой системы.

4. Расчет требований к оборудованию.

5. Подготовка тестовой среды.

6. Обеспечение технологического качества информационной системы на тестовой площадке.

7. Формирование технологических требований и изменений по результатам проведенного нагрузочного тестирования.

I

SCIENCE TIME

I

8. Внедрение информационной системы в рабочую зону. На рисунке 1 представлены основные этапы организации проведения нагрузочного тестирования информационной системы.

Рис. 1 Основные этапы организации проведения нагрузочного тестирования информационной системы

Рассмотрим каждый этап организации проведения нагрузочного тестирования.

Сбор требований.

Основной задачей этапа является сбор технологических требований и формулирование технического задания. Технологические требования - это формализованное описание критериев технологического качества работы информационной системы.

Можно выделить следующие основные шаги этапа:

1. Получение информации о требованиях к информационной системе.

2. Формулирование технологических требований.

3. Формулирование основных профилей нагрузки.

4. Формирование списка ключевых операций.

5. Составление сценариев нагрузочного тестирования.

6. Согласование требований для выбранных сценариев.

Профиль нагрузки - совокупность сценариев работы информационной системы, включающая нагрузку, которую создают пользователи и механизмы интеграции информационной системы. Зачастую отсутствует возможность учитывать все нюансы профиля нагрузки для сложных систем, так как чем сложнее система, тем больше времени будет потрачено на проектирование, программирование и поддержку адекватного профиля нагрузки для неё, что не всегда является необходимостью. Например, оптимальным выбором может быть

1 SCIENCE TIME 1

формирование 20% операций, которые создают 80% нагрузки на информационную систему. Стоит также принять во внимание, что профиль может изменяться в зависимости от характера деятельности организации, поэтому, в некоторых случаях допустимо будет выделение нескольких профилей, которые будут соответствовать, например, определенным периодам в деятельности организации [3].

Анализ текущей ситуации, если эталонная информационная система уже существует.

Если информационная система уже существует требуется обязательно собрать сведения о текущем характере деятельности информационной системы. Если это сделать, возникает возможность сосредоточить значительное внимание на технологические проблемы и устранить их на следующих этапах.

Можно выделить следующие основные шаги этапа:

1. Встраивание подсистемы.

2. Анализ журнала регистрации.

3. Анализ статистики работы реальных пользователей в информационной системе.

4. Уточнение сценариев и профилей нагрузки.

5. Анализ загруженности оборудования с текущими профилями.

6. Выявление технологических проблем, которые могут воздействовать на качество работы.

Встраивание подсистемы необходимо для того, чтобы дать оценку реальной частоте выполнения операций отдельными пользователями и реальной производительности выполнения этих операций в рабочей системе. В отсутствии подробного анализа будет неправильным считать, что все обнаруженные проблемы в рабочей системе обязательно встретятся и на тестовой базе. По этой причине необходимо получить не только оценку производительности, но и ее возможные изменения в зависимости от других факторов, например, нагрузки на систему или выполнения других операций в этот же период времени [3].

Подготовка тестовой системы.

Выделим следующие основные шаги этапа:

1. Подготовка информационной базы:

- встраивание информационной базы;

- встраивание подсистемы;

- создание ролевой структуры с учетом профилей нагрузки (фиксируем основные роли пользователей информационной системы);

- все роли из сценариев обязательно должны быть реализованы в информационной базе (требуется проверить и убедиться в этом);

- наполнение базы тестовыми данными в объеме на момент внедрения информационной системы плюс несколько месяцев работы.

2. Написание тестовых обработок.

3. Проверка корректности выполнения тестовых обработок.

1 SCIENCE TIME 1

4. Подготовка ролевого наполнения тестовыми обработками.

5. Подготовка сценария нагрузочного тестирования.

Для каждой роли пользователя необходимо определить и создать набор операций, которые будут выполняться выбранной ролью. Все обработки ролей также необходимо выполнить несколько раз подряд и убедиться, что они выполняются без ошибок.

Необходимо составить сценарий тестирования. Сценарии должны точно соответствовать формальному описанию сценариев в документах с требованиями к информационной системе.

Запуск проектного сценария с полноценной нагрузкой сразу может оказаться провальным из-за того, что могут возникнуть несоответствия системы некоторым заранее сформулированным критериям.

При подготовке сценариев необходимо всегда проверять, что все ключевые операции обязательно присутствуют в сценарии нагрузочного тестирования [3].

Выбор требований к оборудованию.

В целом подход по использованию предложенной технологии сильно зависит от того, существует ли уже информационная система у заказчика, и может ли она быть применена в качестве эталонной информационной системы для выбора параметров оборудования. Если информационная система уже существует, то необходимо провести выбор требований к оборудованию на основании существующей статистики согласно загруженности оборудования с учетом новых профилей нагрузки. В случае если информационной системы ещё нет, нужно выполнить ряд шагов:

1. Подготовка малого тестового стенда.

2. Моделирование выполнение сценариев в однопользовательском режиме.

3. Оценка характера нагрузки.

4. Выбор требований к оборудованию.

В результате этого этапа возможно получить формализованные требования к оборудованию, которое будет использоваться в нагрузочном тестировании. Необходимо учитывать, что в ходе выполнения работ по оптимизации информационной системы могут быть исправлены проблемы параллельной работы. Это в свою очередь приведет к возрастанию параллельности работы и повышению нагрузки на оборудование. Таким образом, в процессе нагрузочного тестирования скорее всего понадобится подкорректировать параметры оборудования [3].

Подготовка тестовой среды.

Выделим следующие основные шаги этапа:

1. Развертывание и настройка оборудования с учетом полученных требований.

2. Настройка среды виртуализации:

- при необходимости;

- с учетом архитектуры оборудования.

1 SCIENCE TIME 1

3. Настройка СУБД.

4. Настройка кластера серверов (в том числе и отказоустойчивого).

5. Развертывание подготовленной информационной базы.

6. Настройка серверов, с которых будет генерироваться тестовая нагрузка на информационную систему.

Развертывание и настройка оборудования - этап, который требует осторожного конфигурирования тестовой среды с учетом требований к информационной системе. При использовании виртуализации понадобится значительно ограничить выделение ресурсов для всех серверов. В противном случае присутствует риск получить неповторимый результат и очень большие погрешности результатов при повторении тестов и неизменности версии системы и условий. В результате правильной настройки влияние виртуальных машин друг на друга должно быть минимизировано там, где это действительно необходимо.

Обеспечение технологического качества информационной системы на тестовой площадке.

Этап обеспечения технологического качества информационной системы на тестовой площадке является определяющим в процессе проведения нагрузочного тестирования. Непосредственно с целью получения высококачественного результата на этом этапе и были проведены все предыдущие этапы.

Проведение тестирования заключается в выполнении определенных тестовых пакетов с определенным количеством пользователей. По итогам данного этапа требуется получить значения измеряемых параметров при заданных конфигурациях и заданной нагрузке. В большинстве случаев измеряемыми параметрами являются время отклика системы и процент загрузки системных ресурсов (оперативной памяти и процессора).

Рекомендуется в первую очередь гарантировать технологическое качество при однопользовательском выполнении всех сценариев с контролем технологических требований:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Выявление и устранение проблем стабильности.

2. Выявление и устранение проблем работоспособности.

3. Выявление и устранение проблем производительности.

После обеспечения технологического качества при однопользовательской работе рекомендуется приступать к решению задачи при многопользовательском выполнении сценариев.

1. Постепенное увеличение нагрузки до требуемого уровня.

2. Тестирование в течение длительного времени.

3. Контроль технологических параметров информационной системы на протяжении всего тестирования.

4. Выявление и устранение проблем стабильности.

5. Выявление и устранение проблем работоспособности.

1 SCIENCE TIME 1

6. Выявление и устранение проблем производительности.

Рекомендуется переходить к решению проблем производительности в последнюю очередь, т.к. в результате устранения проблем избыточных блокировок и других проблем параллельной работы, например, взаимоблокировок, характер нагрузки и производительность могут сильно измениться.

Результатом этого этапа является успешное прохождение всех подготовленных сценариев с обязательным соответствием всем технологическим требованиям [3].

Формирование технологических требований и изменений по результатам проведенного нагрузочного тестирования.

Все изменения, выполненные в тестовой системе на предыдущем этапе, необходимо обязательно ещё раз проверить на нагрузочном тесте без изменения требований к информационной системе.

Результатом этого этапа является документ, необходимый к применению в рабочей системе заказчика, который содержит (для каждой проблемы):

1. Описание проблемы (симптом).

2. Описание того, как можно зафиксировать проблему (проверить наличие этой проблемы).

3. Выполненные изменения.

4. Оценку, как было до исправления.

5. Оценку, как стало после исправления.

6. Затраты в тестовой зоне по исправлению проблемы.

Если рабочая система уже существует, то сформулированные требования формируются в check-list либо перечень доработок к предлагаемому решению

[3].

Переход к этапу внедрения информационной системы в рабочую зону.

Этот этап является обязательным, поэтому с помощью него должно завершаться нагрузочное тестирование в случае отсутствия рабочей информационной системы. На этом этапе рабочая область заказчика готовится в соответствие с требованиями, сформулированными на всех этапах выполненного нагрузочного тестирования. Нагрузочные тестирование не проводится просто для того, чтобы «посмотреть и ничего не сделать», т.к. результат этого тестирования невозможно будет применить на практике. Даже в случае нахождения проблем, их устранение всё же придётся проверить в тех же самых условиях.

Результатом этого этапа является применение всех сформулированных на предыдущем этапе требований [3].

Условия успешного выполнения нагрузочного теста.

Условия успешного выполнения нагрузочного теста могут быть сформулированы следующим образом:

1 SCIENCE TIME 1

1. Отсутствие ошибок стабильности и работоспособности (система ведет себя стабильно и предсказуемо, решает поставленные задачи при заданном характере нагрузки, т.е. информационная система в течение всего теста соответствует требуемому коэффициенту устойчивости работы).

2. Отсутствие проблем производительности (скорость реакции системы определяется поставленными технологическими требованиями):

- хороший или отличный индекс производительности по всем ключевым операциям;

- информационная система в течение всего теста соответствует требуемому коэффициенту производительности.

3. Информационная система соответствует всем сформулированным требованиям на момент начала испытаний.

4. Коэффициент производительности не ниже 0,85 по всем ключевым операциям в течение всего нагрузочного теста на каждом из выбранных профилей нагрузки при условии соблюдения всех согласованных технологических требований.

5. Коэффициент устойчивости работы системы не выше 0, это соответствует отсутствию отказов или зависаний в течение всего нагрузочного теста на каждом из выбранных профилей нагрузки при условии соблюдения всех согласованных технологических требований.

6. Все операции сценария выбранного профиля нагрузки выполнились в течение всего нагрузочного теста с заданной частотой.

7. Отсутствие виртуальных пользователей в течение всего теста, которые получили бы какую-либо ошибку, в результате которой виртуальные пользователи не смогли бы продолжить тестирование и завершить назначенный им сценарий.

Результаты тестирования обычно представляются в виде сравнительных отчетов по времени выполнения различных этапов информационной системы при одинаковой нагрузке, при использовании различных программно-аппаратных конфигураций, при работе с различными объемами данных и т. д.

Наиболее распространенные виды отчетов о результатах нагрузочных испытаний:

1. Response vs Time (resources) - отклики по времени, загрузка ресурсов.

2. Performance - производительность, время отклика.

3. Compare Performance - сравнение производительностей.

В отчет о тестировании обычно также включается перечень «узких мест» программной системы с указанием причин [3].

Таким образом, при правильном выполнении всех этапов организации проведения нагрузочного тестирования информационной системы таких как: сбор требований; анализ текущей ситуации, если эталонная информационная система уже существует; подготовка тестовой системы; расчет требований к оборудованию; подготовка тестовой среды; обеспечение технологического

1 SCIENCE TIME 1

качества информационной системы на тестовой площадке; формирование технологических требований и изменений по результатам проведенного нагрузочного тестирования; внедрение информационной системы в рабочую зону, можно гарантировать технологическое качество информационной системы и обеспечение соответствия технологическим требованиям, которые заявлены заказчиком, в процессе использования информационной системы. Основным результатом проведения нагрузочного тестирования является получение показателей производительности таких как время отклика на запрос и загруженность системных ресурсов сервера в зависимости от загрузки (числа подключенных пользователей).

Литература:

1. Алефиренко В.М. Обзор и классификация информационных систем / В.М. Алефиренко, Н.О. Туровец // Danish Scientific Journal. - 2021. - Vol. 1. - № 55.- С. 52-56.

2. Туровец Н.О. Методы тестирования интегрированных информационных систем / Н.О. Туровец, В.М. Алефиренко // Science Time. - 2022. - № 3 (99). - С. 19-27.

3. 1СИТС, Проведение нагрузочного тестирования [Электронный ресурс]. - Режим доступа: https://its.1c.ru/db/metod8dev/content/5811/hdoc@1b307e69

4. IBS QA Solutions [Электронный ресурс]. - Режим доступа: https://ibs-qa.ru/media/media/1947-tekhnologiya-nagrazochnogo-testirovaniya-informatsi-onnykh-sistem-s-bolshim-obemom-dannykh/

5. Лаборатория программирования центр развития информационных технологий [Электронный ресурс]. - Режим доступа: https://daglab.ru/ nagruzochnoe-testirovanie-programmnogo-obespechenija/

6. Skillbox [Электронный ресурс]. - Режим доступа: https://skillbox.ru/ media/code/chto-takoe-nagruzochnoe-testirovanie/

i Надоели баннеры? Вы всегда можете отключить рекламу.