Журнал «ИСУП». (Информатизация и системы управления в промышленности)
ИТ, КИПиА, метрология, АСУ ТП, энергетика, АСКУЭ, промышленный интернет, контроллеры, экология, электротехника, автоматизации в промышленности, испытательные системы, промышленная безопасность

Автоматизированное тестирование прошивок в iRZ: от идеи до реализации

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

Компания «Радиофид Системы», г. Санкт-Петербург

Radiofid_iRZ.jpg

скачать pdf >>

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

Возьмем, например, модемы. Раньше казалось, что модем без зависаний может работать разве что в идеальном мире. Однако специалисты компании «iRZ Электроника» утверждают: без зависания может работать любой промышленный модем, даже установленный на необслуживаемом объекте или круглые сутки транслирующий данные в другие регионы. Весь секрет этого дела – в корректно работающем программном обеспечении.


Недостатки ручного тестирования

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

Вначале такой метод вполне себя оправдывал и выпускаемая продукция исправно работала. Однако со временем, когда количество функций, выполняемых модемами, возросло, возникли сложности. Например, модем iRZ АТМ21, изображенный на рис. 1, передает данные не на один, а на несколько серверов одновременно, отправляет СМС-сообщения, взаимодействует с GPIO и выполняет другие функции с разными комбинациями настроек. Проверка ПО начала занимать значительно больше времени, иногда – несколько месяцев.

Ris_1.jpg

Рис. 1. 2G/GSM/GPRS-модем iRZ АТМ21: одна из самых популярных моделей компании «iRZ Электроника»

В конце концов это привело к недоработке: ошибка, допущенная в очередной прошивке, не была выявлена в процессе тестирования. При определенном сочетании настроек модем некорректно передавал на сервер данные от регулятора температуры. Эту ошибку обнаружил конечный пользователь, потому что сотрудник, выполняющий тестирование модема, не воспроизвел сценарий с данными настройками (чему не приходится удивляться, учитывая, сколько сочетаний настроек приходилось устанавливать вручную). Разумеется, разработчики немедленно выпустили новую версию прошивки, в которой устранили неисправность. Однако стало ясно: ручное тестирование больше себя не оправдывает. Чтобы обеспечить высокое качество продукции, необходимо внедрять автоматизированное тестирование.


Разработка программно-аппаратного комплекса (ПАК)

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

Оставался единственный выход: создать собственное решение. Так в компании «iRZ Электроника» началась работа над программно-аппаратным комплексом (ПАК), способным полноценно работать с модемом, тестируя функциональность его встроенного ПО.
Разработка ПАК была разделена на несколько этапов:
- выбор архитектуры;
- выбор аппаратного обеспечения (оборудования, необходимого для тестирования модемов);
- выбор или разработка своего ПО;
- запуск и начало эксплуатации комплекса.

Кратко рассмотрим каждый этап.


Архитектура ПАК

При разработке архитектуры бы­ли сформулированы требования к ПАК, со временем воплощенные в жизнь:
- высокая эффективность. ПАК должен обеспечивать всестороннее и максимально полное тестирование прошивки: должны выполняться одни и те же тесты при разных настройках модема, комплекс должен моделировать нестандартные и негативные сценарии (обрыв связи, перепад напряжения и пр.). Кроме того, должны проверяться прошивки для разных моделей устройств одновременно;
- расширяемость. Если прошивка наделяет модем новыми функциями, тест для их проверки должен легко добавляться к остальным тестам;
- масштабируемость. При выпуске новой модели модема аппаратные блоки для проверки ее прошивки должны легко внедряться в структуру ПАК;
- разумная стоимость.

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

Ris_2.jpg

Рис. 2. Общая схема ПАК тестирования прошивок модемов


Аппаратное обеспечение

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

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

В этой роли выступают мини-компьютеры Raspberry Pi, которые, хоть и наделены невысокой мощностью и ограниченной функциональностью, однако их возможностей полностью хватает для выполнения тестирования. В плате мини-компьютера имеются разъемы GPIO для устройств полевого уровня (датчиков, реле и пр.), Ethernet-порт, разъем USB для флеш-накопителей и другого оборудования. Привлекает и низкая цена компьютера: в среднем он стоит от 10 до 35 долларов в зависимости от модели.

Получив тест, проверяющий модуль последовательно выполняет записанные в нем действия (например: подключиться к модему → отправить настройку → отправить данные). Потом сравнивает реакцию модема с реакцией, которая должна быть в норме (с заданной в тесте), и отправляет результат обратно на управляющий сервер.

Проверяющему модулю почти не требуются настройки, он легко встраивается в архитектуру ПАК. В настоящее время в комплексе задействованы два вида модулей: одни используются для проверки модемов, другие – для проверки роутеров. В скором времени планируется добавить еще несколько модулей, поскольку компания «iRZ Электроника» собирается выпустить новые устройства.

Тесты, которые передаются с сервера на проверяющие модули, распределяет между ними коммутатор – стандартное устройство для работы с виртуальными локальными сетями (Virtual Local Area Network – VLAN).

Вспомогательные модули – это GSM-модемы, которые по сигналу от сервера отправляют СМС-сообщения или звонят на модемы. Без них полностью проверить прошивку невозможно, однако в выполнении тестов они не участвуют и с проверяющими модулями не взаимодействуют.


Программное обеспечение

Теперь перейдем к программному обеспечению, разработанному для ПАК. Программа-тест для прошивки модема представляет собой скрипт – самостоятельный программный код, который выполняется независимо от других скриптов. В компании «iRZ Электроника» скрипты пишут на языке Java (рис. 3).

Ris_3_small.jpg

Рис. 3. Скрипт для проверки функции отправки СМС-сообщений (увеличить изображение)

Каждый скрипт тестирует лишь одну функцию модема, но при разных настройках. Например, во время проверки функции «отправить данные прибору учета по RS‑485» передача данных осуществляется на скоростях 600, 1200, 2400 бод и т. д. Всего за одну проверку модем может обратиться к эмулятору прибора учета до 10 000 раз. Вот какое количество сочетаний настроек приходится учитывать во время тестирования.

Для удобства тестировщиков, управляющих процессом проверки, разработан веб-интерфейс. С его помощью сотрудник выбирает скрипты из базы данных и задает порядок их выполнения, а затем наблюдает результаты (рис. 4).

Ris_4_small.jpg

Рис. 4. Веб-интерфейс для управления тестированием (увеличить изображение)


Сеть

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


Внедрение и эксплуатация ПАК

От идеи внедрить ПАК до первых автоматических тестов прошло всего полгода. За это время собрали и настроили оборудование, написали пару десятков скриптов. А ведь разработка одного скрипта занимает много времени. Требуется продумать алгоритм, написать код, протестировать его, исправить ошибки и снова протестировать. Чтобы удостовериться, что скрипт работает правильно, с его помощью тестируют прошивку, которая уже была признана исправной и прошла испытание практикой. Если во время проверки модем ведет себя нормально и выполняет все действия, прописанные в коде, значит, сам скрипт ошибок не содержит и его можно применять для работы.

Бывает, что какая-либо из функций модема вручную проверяется достаточно быстро, а вот написать для нее тест – задача не столь простая. В такие моменты у разработчиков могут возникнуть сомнения, стоило ли взваливать на себя эту задачу. Однако достаточно вспомнить, насколько скорость ПАК превышает скорость работы человека и какое огромное количество проверок он способен выполнить, не упустив ни одной. Ведь даже автоматизированному комплексу приходится выполнять скрипт «Передать данные с прибора учета на сервер» около трех суток. Но при этом он не забывает ни об одной из комбинаций настроек модема. Человеку же для выполнения этой задачи пришлось бы трудиться не меньше половины месяца без перерывов на обед и выходные, а избежать ошибки было бы крайне трудно.


Достижения и перспективы

С внедрением автоматических тестов время на проверку прошивки модема сократилось до 2–3 недель, на протяжении которых выполняется 4000–5000 пользовательских сценариев. В сумме программно-аппаратный комплекс позволяет проверить около 75 % функций модемов, и это не предел, поскольку количество скриптов постоянно растет. Функции, для которых скрипты пока не написаны, тестируются вручную.

Кроме того, предусмотрена дополнительная возможность проверить вручную самые востребованные функции: обмен данными с реальными приборами учета, настройку через компьютерную программу и Bluetooth-приложение ATM Control SE, взаимодействие с сервером iRZ Collector и т. п. Это нужно для того, чтобы охватить как можно больше пользовательских сценариев, даже неочевидных. Скрипт лишен фантазии, он каждый раз выполняет один и тот же алгоритм. А тестировщики порой создают такие замысловатые и сложные схемы, которые позволяют обнаружить специфические или редко воспроизводимые ошибки.

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

Иными словами, в компании «iRZ Электроника» не отказались полностью от ручной проверки, а применяют оба способа тестирования одновременно, чтобы обеспечить высокое качество поставляемых решений.

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


Заключение

Проверка прошивок для модемов двумя способами – силами тестировщиков и с помощью программно-аппаратного комплекса – позволяет свести к нулю риск выпустить некачественный продукт. ПАК выполняет полную проверку встроенной прошивки модема за достаточно короткое время, с учетом любых вероятных настроек. Тестировщики способны создать неочевидный сценарий и выявить ошибку в ПО модема в нестандартной ситуации. Благодаря такому подходу модемы от компании «iRZ Электроника» будут надежно функционировать в любых рабочих условиях.

Опубликовано в журнале ИСУП № 1(85)_2020

Компания «Радиофид Системы», 
г. Санкт-Петербург,
тел.: +7 (812) 318‑1819,
e‑mail: office@radiofid.ru,
сайт: radiofid.ru