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

УДК: 004.4

ПРОВЕДЕНИЕ ТЕСТОВЫХ И НАГРУЗОЧНЫХ ИСПЫТАНИЙ ИНФОРМАЦИОННЫХ СИСТЕМ, ПРИМЕНЯЮЩИХСЯ В

СЕЛЬСКОМ ХОЗЯЙСТВЕ В.А. Астапов, А.Е. Мищенко

UDC: 004.4

CARRYING OUT OF TEST AND LOAD TESTING OF INFORMATION SYSTEMS USED IN AGRICULTURE

Astapov V.A., Mishchenko A.E.

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

информационных систем,

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

программный продукт JMeter от Apache Software Foundation, его основные возможности и режимы работы, виды предоставляемого им тестирования, типы получаемых данных и способы вывода отчетных данных пользователю.

Ключевые слова: сельское хозяйство, информационные системы, тестирование, нагрузочное тестирование

Введение

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

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

This article describes the methodology for carrying out of test and load testings of information systems used in agriculture. A detailed analysis of the main types of approaches to testing and automated testing is carried out. As a load testing tool is considered JMeter software from Apache Software Foundation, its main features and operating modes, types of testing provided to them, the types of the produced data and output methods of reporting data to the user.

toy words: agriculture, information systems, testing, load testing

неприятность может случиться, то она обязательно произойдёт.

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

Основная часть

С целью повышения качества тестирования, упрощения процесса диагностики и сокращения времени проведения диагностики было использовано автоматическое тестирование. Автоматическое тестирование можно разделить на два типа: внутреннее (на уровне кода) и внешнее (на уровне интерфейсного или иного доступа к программным средствам) [19, 22-23].

Для автоматического тестирования на уровне кода используются различные подходы. Наиболее распространено модульное тестирование - изолирование отдельных частей ИС с целью анализа их работоспособности [6]. Модульное тестирование позволило:

- минимизировать зависимости в ИС, упрощая диагностику и анализ кода;

- повысить документированность и читаемость отдельных программных компонентов ИС;

- снизить количество регрессионных ошибок;

- упростить интеграцию модулей ИС.

Существует множество библиотек модульного тестирования. Стандарты использования таких библиотек, а также правила создания тестов для большинства современных языков программирования идентичны. Многие из этих библиотек поддерживают сразу несколько языков программирования [9, 15-17].

Распространенной практикой при тестировании программных средств является использование так называемых mock-объектов (mock object) [1,2]. Объекты подобного рода воссоздавались в модуле тестирования для имитации работы части программного кода.

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

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

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

В свете роста облачных технологий и распределенных вычислений наиболее частой задачей является диагностика приложений, развернутых как сервис в сети [4, 7]. Существует несколько основных методик тестирования таких информационных систем [5]. Самым распространенным способом является нагрузочное тестирование ИС и анализ ее поведения под различной нагрузкой.

В качестве примера рассмотрим набор инструментов для тестирования JMeter, разрабатываемый Apache Software Foundation. Данный инструментарий позволяет производить нагрузочное тестирование как программной части ИС, так и базы данных. Интерфейс JMeter представлен на рисунке 1

Рисунок 1 - Интерфейс JMeter Схема подготовки нагрузочного тестирования с помощью JMeter: - создается нужное количество потоков нагрузки (примерно соответствует количеству людей, одновременно работающих в системе);

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

- задается время тестирования и количество повторений.

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

Использование инструментов автоматического нагрузочного тестирования позволяет значительно сократить трудозатраты на диагностику информационных систем. Кроме того, существуют аналоги таких инструментов, развернутых как веб-сервис [8].

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

Большинство инструментов для нагрузочного тестирования работают схожим образом и объединяют следующие принципы:

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

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

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

критической нагрузки).

- анализ полученных результатов. Анализ может проводиться как экспертом, так и аналитической системой [14].

При анализе данных, полученных в результате тестирования ИС, учитываются следующие показатели:

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

- число проведенных операций;

- число потоков (пользователей);

- среднее время доступа к данным;

- «процентиль 90» времени доступа к данным;

- загрузка процессоров;

- максимальная общая нагрузка процессоров;

- загрузка памяти;

- максимальная общая загрузка памяти;

- ошибки/отказы при выполнении запросов;

- загрузка файла подкачки;

- загрузка дисковой подсистемы;

- загрузка сети;

- динамика изменения отношения текущего времени обработки операций к максимальному (показатель тестирования «Здоровье»);

- динамика изменения параметра, вычисляемого по формуле: (50*(время обработки операций / максимальное время) + 50*(используемая память / выделенная память)) (показатель тестирования «Загрузка»);

- динамика изменения отношения используемой памяти к выделенной (показатель тестирования «Память»);

- динамика изменения отношения занятых потоков к максимально возможным (показатель тестирования «Потоки»);

- интенсивность запросов к базе данных;

- количество открытых подключений к базе данных;

- задержки репликации;

- частота обращений к кэшу базы данных.

Выводы

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

Литература

1 Астапов, В.А. Изучение жизненного цикла документов, оказывающих влияние на отраслевые бизнес-процессы / В.А. Астапов, Д.Е. Белов, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 279-285.

2 Белов, Д.Е. Сопоставление реляционной модели данных и принципов объектно-ориентированного программирования для разработки информационно-вычислительных систем / Д.Е. Белов, А.Ф.

Шалин, В.А. Астапов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 293-300.

3 Белов, Д.Е. Влияние лейкоза на молочную продуктивность коров / Д.Е. Белов, Л.Н. Чижова // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2006. Т. 2. № 2-2. С. 152-156.

4 Белов, Д.Е. Инновационные аспекты в кормлении сельскохозяйственных животных / Д.Е. Белов, Ю.Д. Квитко, Б.Т. Абилов, Н.Ю. Скабелкина // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2011. Т. 1. № 4-1. С. 68-70.

5 Белов, Д.Е. Обзор программного обеспечения BusinessIntelligenceandReportingTools (BIRT) project / Д.Е. Белов, А.Е. Мищенко // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 348-353.

6 Белов, Д.Е. Разработка кросс-платформенного, кросс-браузерного модулей ввода информации в базу данных / Д.Е. Белов, А.Ф. Шалин, И.Н. Воронкина // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 307-315.

7 Белов, Д.Е. Разработка модуля авторизации пользователей и разграничения прав доступа к данным / Д.Е. Белов, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 325-338.

8 Белов, Д.Е. Разработка модуля генерации отчетности, позволяющего экспортировать данные в форматы pdf, xls, doc / Д.Е. Белов, А.Ф. Шалин, И.М. Кузнецов, М.В. Макеев // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 315-325.

9 Белов, Д.Е. Совершенствование биотехнологических и молекулярно-генетических методов при изучении генов, определяющих устойчивость к заболеваниям и молочную продуктивность / Д.Е. Белов // Автореферат диссертации на соискание ученой степени кандидата биологических наук / Ставропольский государственный университет. Ставрополь, 2006.

10 Белов, Д.Е. Совершенствование биотехнологических и молекулярно-генетических методов при изучении генов, определяющих устойчивость к заболеваниям и молочную продуктивность / Д.Е. Белов // Диссертация на соискание ученой степени кандидата биологических наук / Ставрополь, 2006.

11 Белов, Д.Е. Технологии разработки систем управления информацией с открытым исходным кодом, проблемы внедрения в животноводстве России / Д.Е. Белов, В.В. Абонеев, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2011. Т. 1. № 4-1. С. 96-100.

12 Белов, Д.Е. Экономические факторы, определяющие стоимость владения программным обеспечением / Д.Е. Белов, А.Ф. Шалин, К.И. Костюков, А.А. Щеголев, Р.У. Салпагаров // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 3. № 6. С. 346-350.

13 Букаров, Н.Г. И еще раз о маркерной селекции в скотоводстве / Н.Г. Букаров, С.Ф. Силкина, Д.Е. Белов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2012. Т. 3. № 1-1. С. 61-62.

14 Воронкина, И.Н. Интеграция "OpenSource" - продуктов с операционной системой, позволяющих достигать эффект кросс-платформенности и кросс-браузерности / И.Н. Воронкина, Д.Е. Белов, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 300-307.

15 Квитко, Ю.Д. Применение математических методов для оптимизации рационов сельскохозяйственных животных // Ю.Д. Квитко, Б.Т. Абилов, Д.Е. Белов, Т.В. Ефимова, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2012. Т. 2. № -1. С. 257-260.

16 Колосов, Ю.А. Какие же люди «съели овец?» / Ю.А. Колосов, Д.Е. Белов // Овцы, козы, шерстяное дело. -2013. -№2. -С. 57-60.

17 Макеев, М.В. Настройка Linux с организацией защищенного соединения по протоколу HTTPS. Экспериментальное внедрение программного обеспечения / М.В. Макеев, А.Ф. Шалин, Д.Е. Белов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 338-348.

18 Силкина, С.Ф. Маркерный анализ в молочном скотоводстве с использованием групп крови / С.Ф Силкина, Н.Г. Букаров, Д.Е Белов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 3. № 6. С. 243-245.

19 Силкина, С.Ф. Распределение аллельных вариантов гена каппа-казеина в потомстве молочного скота Ставропольского края / С.Ф. Силкина, Д.Е. Белов, А.В. Скокова, Н.Г. Марутянц // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 3. № 6. С. 246-249.

20 Чижова, Л.Н. Использование полимеразной цепной реакции в диагностике лейкоза КРС

/Л.Н.Чижова, Д.Е. Белов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2004. Т. 2. № 2-2. С. 65-69.

21 Шалин, А.Ф. Возможности интеграции веб-приложений с системой облачных вычислений GoogleAppEngine / А.Ф. Шалин, Д.Е. Белов, К.И. Костюков, А.А. Щеголев, И.М. Кузнецов, М.В. Макеев // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 3. № 6. С. 360-362.

22 Шалин, А.Ф. Вопросы радиочастотной идентификации животных на основе «пассивных» электронных меток / А.Ф. Шалин, Д.Е. Белов, С.Ф. Силкина, А.А. Пикалов, И.М. Кузнецов, М.В. Макеев, К.И. Костюков, А.А. Щеголев // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 3. № 6. С. 362-365.

23 Шалин, А.Ф. Описание системы целевых индикаторов, характеризующих сельскохозяйственное производство и позволяющих осуществлять поддержку оперативного управления / А.Ф. Шалин, Д.Е. Белов, А.Е. Мищенко, А.А. Пикалов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2013. Т. 2. № 6 (1). С. 285-293.