Статья опубликована в рамках: CLI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 07 июля 2025 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
РАЗРАБОТКА ПРОГРАММНОГО МОДУЛЯ АВТОМАТИЗИРОВАННОГО СТРЕСС-ТЕСТИРОВАНИЯ ДЛЯ ВСТРАИВАЕМЫХ СИСТЕМ
АННОТАЦИЯ
Современные встраиваемые системы предъявляют все более высокие требования к надежности, стабильности и производительности. Однако они подвержены различным видам нагрузок и стрессовых ситуаций в ходе своей работы. Одним из ключевых аспектов обеспечения качества встраиваемых систем является тестирование, позволяющее выявить и исправить потенциальные проблемы перед вводом устройства в реальную эксплуатацию.
Нехватка долгосрочного тестирования с многократными повторениями тестов и перезагрузками является основной проблемой для разработки программного модуля с целью увеличения эффективности проверки надежности и стабильности работы встраиваемых систем.
В работе подробно освещаются такие аспекты, как: необходимые требования для выполнения поставленной задачи; компоненты программного модуля и их взаимодействие; разработка программного модуля автоматизированного стресс-тестирования для встраиваемых систем; полученные результаты.
В результате разработанный программный модуль автоматизированного стресс-тестирования ежедневно применяется в стендах проведения функционального контроля и долгосрочного стресс-тестирования отладочных модулей и устройств, применяется в стендах еженочного автоматизированного тестирования модулей и программного обеспечения с помощью бота непрерывной интеграции (CI), используется для тестирования и отладки устройств при разработке системного программного обеспечения (ядро Linux, драйвера устройств)
Ключевые слова: программный модуль, встраиваемая система, автоматизированное тестирование, стресс-тестирования, тест перезагрузок.
В настоящее время применение встраиваемых систем постоянно расширяется в различных отраслях: от промышленной автоматизации, телекоммуникаций и медицины до автомобильной электроники и IoT-устройств. В условиях растущей сложности таких систем и требований к их отказоустойчивости, надежности и безопасности, особое значение приобретает задача всестороннего тестирования, в частности стресс-тестирования, имитирующего реальные нагрузки и сбои.
Существующие инструменты тестирования, такие как PyTest, Selenium, LAVA, Fuego и UnitTest, предоставляют широкие возможности для функционального и модульного тестирования. Однако они не адаптированы для специфики стресс-испытаний во встраиваемых системах, особенно при необходимости длительных циклов тестов с управлением физическим питанием и перезагрузкой устройств, что критически важно для оценки устойчивости ПО и аппаратной платформы к сбоям.
Учитывая вышеизложенное, была выявлена необходимость разработки специализированного программного модуля автоматизированного стресс-тестирования, обладающего следующими ключевыми возможностями:
- Поддержка программных и аппаратных перезагрузок тестируемого устройства (через прямое управление реле питания);
- Долговременное выполнение циклических стресс-тестов с возможностью задания произвольных сценариев;
- Автоматический сбор и анализ отчетов, включая форматы JUnit-XML и HTML;
- Фиксация логов терминальных сессий как с управляющего компьютера, так и с тестируемого устройства;
- Регистрация и классификация сбоев, с сохранением данных для последующего анализа причин;
- Расчет ключевых метрик, таких как:
- длительность тестовой сессии,
- среднее время восстановления устройства после перезагрузки,
- количество и процентное соотношение сбоев,
- количество успешных и проваленных тестов по категориям,
- распределение ошибок по временным интервалам и этапам загрузки.
В качестве языка разработки выбран Python, благодаря его богатой экосистеме библиотек (в частности, pytest, subprocess, pyserial и др.) и удобству интеграции с внешними устройствами. Средой разработки выступает Visual Studio Code, как легковесная, настраиваемая и широко применяемая IDE.
Проектируемый модуль ориентирован на расширяемость и интеграцию в существующие CI/CD-процессы, а также предусматривает возможность удаленного запуска тестов, что открывает перспективы для использования в распределенных командах и на этапах сертификационного тестирования.
Отличительные особенности предлагаемого решения:
- Поддержка управления аппаратными перезагрузками через внешнее реле (например, с использованием USB-управляемых реле или GPIO на отладочном модуле);
- Встроенный тайм-аут контроля зависаний;
- Конфигурируемый YAML/JSON-интерфейс для задания тестовых сценариев;
- Интеграция с системами визуализации результатов (например, Allure или Grafana при сохранении логов в формате Prometheus);
- Возможность масштабирования на кластер тестируемых устройств (с параллельным выполнением).
Таким образом, разработанный программный модуль нацелен на закрытие важной технологической ниши — автоматизированного стресс-тестирования с управлением перезагрузками и долгосрочным мониторингом поведения встраиваемых устройств. Его применение позволит существенно повысить стабильность, предсказуемость и качество ПО, разрабатываемого для критически важных применений.
Список литературы:
- Розин М., Юсупов К., Камзалов А. Встраиваемые системы: основы программирования. СПб.: БХВ-Петербург, 2019. — 384 с.
- Майерс Г.Дж. Искусство тестирования программ. М.: Вильямс, 2004. — 256 с.
- Канер С., Фолк Д., Нгуен Х. Тестирование программного обеспечения. М.: ДМК Пресс, 2003. — 320 с.
дипломов
Оставить комментарий