Для выполнения тестирования программного обеспечения существует множество методов. В данной статье будут рассмотрены методы, применимые для тестирования программного обеспечения системы мониторинга на этапе эксплуатации или введения в эксплуатацию.
К методам, наиболее подходящим к тестированию программного обеспечения систем мониторинга с целью увеличения производительности и повышения надежности, можно отнести следующие:
1. Нагрузочное тестирование – осуществляет определение или сбор показателей производительности и времени отклика программнотехнической системы или устройства в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе (устройству).
2. Стресс-тестирование – оценивает надежность и устойчивость системы в условиях превышения пределов нормального функционирования. Стресс-тестирование особенно необходимо для «критически важного» ПО, однако также используется и для остального ПО. Обычно стресс- тестирование лучше обнаруживает устойчивость, доступность и обработку исключений системой под большой нагрузкой, чем то, что считается корректным поведением в нормальных условиях.
3. Тестирование стабильности – осуществляет проверку работоспособности приложения при длительном тестировании с ожидаемым уровнем нагрузки.
4. Тестирование безопасности – оценка уязвимости программного обеспечения к различным атакам.
Приведя основные методы тестирования, применимые к тестированию программного обеспечения распределенных систем мониторинга, рассмотрим особенности их применения к уже эксплуатируемой системе мониторинга.
При обычном тестирование программного обеспечения системы мониторинга, выполняемом на этапе разработки, тестирование ПО всей системы производится в определенный срез времени, как правило, при завершении разработки системы (тестирование альфа- и бета-версий системы и т. п.).
Повторное тестирование и оценка работоспособности программного обеспечения системы мониторинга в процессе ее эксплуатации могут требоваться в следующих случаях:
1) при расширении сети мониторируемого оборудования;
2) при наличии в системе блуждающих ошибок, характер работы которых невозможно предсказать без тщательного тестирования;
3) при возникновении потери или порчи данных по неизвестной причине.
При длительной эксплуатации произвести повторное тестирование, в случае возникновения некорректного поведения системы очень часто не представляется возможным вследствие того, что система мониторинга является запущенной на реальном оборудовании, что не позволяет нагружать ее предельными стрессовыми нагрузками с целью проверки ее работоспособности, так как это может привести к перегрузке и потере ценной информации, обернуться как финансовыми, в случае расчетов по неверным данных, так и материальными потерями в случае поломки оборудования вследствие потери или искажения данных о его состоянии. Также трудоемким является процесс оценки расширяемости системы, так как запуск системы на максимально возможном количестве оборудования не представляется возможным в силу недоступности большого количества реального оборудования.
Как выход из вышеописанных сложностей в тестировании программного обеспечения систем мониторинга видятся специальные решения, наделенные следующими возможностями:
1. Возможность симуляции потоков данных, идущих с удаленного оборудования, что позволит подключать к системе мониторинга произвольное количество мониторируемых единиц с целью проведения испытаний и оценки эффективности работы системы по определенной методике путем настройки симулируемых потоков данных.
2. Возможность наблюдения за всеми необходимыми параметрами системы мониторинга для сбора хронологической информации о функционировании системы.
3. Возможность анализа собранной информации с целью извлечения закономерностей, при которых возможно возникновение некорректного поведения.
4. Возможность построения на основе полученной информации специальных сценариев работы виртуального оборудования с целью поиска ситуаций возникновения ошибок и путей для их локализации.
5. Наличие средств анализа информации на основе методов искусственного интеллекта, что позволит автоматизировать процесс оценки эффективности и поиска ошибок в программном обеспечении систем мониторинга, уменьшить влияние человеческого фактора на процесс оценки эффективности, охватить большее количество тестовых сценариев.

А. А. Темичев