Комплекс тестирования встроенного программного обеспечения электронных устройств
COMPLEX FOR TESTING EMBEDDED SOFTWARE OF ELECTRONIC DEVICES

Изобретение относится к вычислительной технике, а именно к программным комплексам тестирования программного обеспечения (ПО) электронных устройств (ЭУ).
Известна полезная модель «Аппаратно-программный комплекс автоматизации, управления, визуализации и мониторинга технологических процессов» (патент на полезную модель RU №90588). Аппаратно-программный комплекс автоматизации, управления, визуализации и мониторинга технологических процессов содержит объединённые через локальную вычислительную сеть (ЛВС) рабочие станции, автоматизированные рабочие места (АРМы) и серверы на базе персональных электронных вычислительных машин (ПЭВМ), а также объединенные системой передачи данных управляющее устройство и функциональные модули, предназначенные для обеспечения управления технологическими процессами на основе программного комплекса и для физического воздействия на входы устройств управления технологическими процессами, снятия показаний с датчиков контроля технологических процессов и передачи информации о состоянии входов/выходов устройств управления. Он имеет централизованную архитектуру принятия решений, содержащую главное управляющее устройство и подчиненные ему функциональные модули на базе промышленных микроконтроллеров, объединенные через приборный интерфейс, и снабжен программным блоком для осуществления визуализации параметров технологических процессов.
В данной полезной модели в основе комплекса лежат аппаратные компоненты, которые не всегда можно легко и оперативно модифицировать, а наличие физической связи функциональных модулей между собой ограничивают возможности по их взаимодействию, т.е. отсутствует возможность расширения функций их взаимодействия при возникновении новых требований к подобному комплексу.
Известно изобретение «Способ и система автоматизации тестирования программного обеспечения» (заявка RU №2013126869 A), заключающееся в том, что система автоматизации тестирования программного обеспечения включает, по крайней мере, одно устройство пользователя и/или тестировщика, по крайней мере, одну базу данных, по крайней мере, одну базу тестов и программно-аппаратный комплекс, выполненный с возможностью: тестирования программного обеспечения по составленным планам тестирования посредством интерактивного взаимодействия тестировщика с пользовательским интерфейсом тестируемого программного обеспечения, записи указанных действий пользователя в автоматическом режиме в заранее заданных терминах уровня бизнес-логики тестируемого программного обеспечения, сохраняя результаты в базе тестов в качестве тестовых сценариев, записи изменений в базе данных, производимых при выполнении указанных тестовых сценариев, в автоматическом режиме в заранее заданных терминах, присваивая данным изменениям признак «Эталонные изменения» и сохраняя результаты в базе тестов, после изменения программного обеспечения осуществления его регрессионного тестирования, проигрывания тестовых сценариев из базы тестов в автоматическом режиме, записи изменений в базе данных, производимых при выполнении указанных тестовых сценариев, в автоматическом режиме в заранее заданных терминах, присваивая данным изменениям признак «Фактические изменения» и сохраняя результаты в базе тестов, осуществления верификации по каждому тестовому сценарию, сравнивая «Эталонные изменения» и «Фактические изменения» и сохраняя результаты сравнения в базе тестов, формирования списка тестовых сценариев, не прошедших верификацию, при этом под изменениями, не прошедшими верификацию подразумеваются расхождения «Эталонных изменений» и «Фактических изменений» и выполнен дополнительно с возможностью: выявления основных бизнес-процессов, выполняемых с использованием тестируемого программного обеспечения, составления детального плана тестирования выявленных бизнес-процессов, фиксируя варианты интерактивного взаимодействия тестировщика с пользовательским интерфейсом тестируемого ПО.
В данном изобретении недостатком является отсутствие средства визуализации для оперативного и гибкого контроля состояния средств моделирования, данных и сущностей.
Наиболее близким к предлагаемому по технической сущности является изобретение «Комплекс автоматизации и визуализации тестирования встроенного программного обеспечения электронных устройств» (патент RU 2678717 С9), заключающееся в том, что программный комплекс выполнен с возможностью тестирования программного обеспечения, составления тестовых сценариев и с сохранением их в базе данных в качестве эталонных, формирования базы тестов, получения фактических значений, сравнения эталонных и фактических значений и с возможностью выявления основных бизнес-процессов, выполняемых с использованием тестируемого программного обеспечения, составления детального плана тестирования выявленных бизнес-процессов, фиксируя варианты интерактивного взаимодействия пользователя с пользовательским интерфейсом тестируемого программного обеспечения, включающий единую программную среду написания и выполнения тестов, содержащую средства написания, редактирования и выполнения тестов, автоматизированного анализа и обработки информации, визуализации данных и сущностей в процессе тестирования и на этапе подготовки к нему, хранения тестовых наборов и подключения их в состав комплекса на любом этапе тестирования, динамической реконфигурации и управления в любой момент времени программным комплексом и любых компонент, входящих в его состав, выделения общего буфера для взаимодействия подключаемых моделей и произвольную их реконфигурацию, как в ручном режиме, так и во время выполнения тестов, защиты и восстановления комплекса при наличии непредвиденных сбоев в процессе его работы, динамически подключаемые модели функциональных устройств, реализуемые в виде независимых унифицированных программных модулей с заранее определенным единым набором методов и функций и средствами визуализации и представления состояния их внутренних данных сущностей, разработанных по единым правилам построения и реализации на базе унифицированного шаблона и вызываемых из единой программной среды написания и выполнения тестов, базу данных хранения представлений данных и сущностей, средства автоматизированного заполнения базы данных информацией на основе анализа документации, по которой разрабатывается тестируемое программное обеспечение.
Недостатками прототипа являются:
- работа комплекса в режиме полу-синхронного выполнения процесса тестирования и вычислительного процесса тестируемого ПО, которая не позволяет осуществлять в полной мере предсказуемое взаимодействие и обеспечить точность воздействия на ход вычислительного процесса тестируемого ПО;
- единая программная среда ядра и моделей функциональных устройств, которая не позволяет проводить независимую разработку моделей функциональных устройств;
- наличие буфера в оперативном запоминающем устройстве (ОЗУ) накладывает дополнительные требования на ЭВМ тестировщика и программиста.
Для заявленного изобретения выявлены следующие общие с прототипом существенные признаки: комплекс тестирования встроенного ПО ЭУ, заключающийся в том, что комплекс выполнен с возможностью тестирования встроенного ПО, составления тестовых сценариев и с сохранением их в базе данных в качестве эталонных, формирования базы тестов, получения фактических значений, который включает программную среду, содержащую средства написания, редактирования и выполнения тестов, визуализации данных и сущностей в процессе тестирования, хранения тестовых наборов и подключения их в состав комплекса на любом этапе тестирования, динамической реконфигурации и управления в любой момент времени программным комплексом и его компонентами, динамически подключаемые модели функциональных устройств, базу данных хранения представлений данных и сущностей.
Техническими проблемами настоящего изобретения являются:
- невозможность обеспечения полной синхронизации процесса тестирования с реакцией тестируемого встроенного ПО в реальном времени, что сводится к тестированию, которое учитывает не все особенности выполнения тестируемой программы и снижает качество и полноту тестирования;
- сокращение сроков разработки и подготовки программного комплекса и моделей функциональных устройств за счёт разъединения моделей функциональных устройств и ядра программной среды;
- повышение качества тестирования встроенного программного обеспечения посредством уменьшения времени отклика и фиксации реакции электронного устройства аппаратурой контроля.
Поставленные проблемы решаются тем, что комплекс включает программную часть, состоящую из главной управляющей программы, которая является средой написания и выполнения тестовых сценариев, сервера диспетчеризации, осуществляющего взаимодействие программной части комплекса с аппаратной, динамически подключаемых моделей входных/выходных воздействий и функциональных моделей, реализованных в виде независимых программ, которые могут быть запущены, в том числе на разных ЭВМ, со своими средствами визуализации и представления состояния их внутренних данных сущностей и вызываемых главной управляющей программой или как самостоятельные программные модели, а также аппаратную часть, состоящую из аппаратных модулей, имеющих единый интерфейс взаимодействия с сервером диспетчеризации и реализующих различные приборные интерфейсы.
На чертеже ФИГ.1 представлена структурная схема комплекса.
Комплекс реализуется следующим образом:
Комплекс тестирования встроенного ПО состоит из аппаратной и программной части. Программная часть состоит из базы данных 2 хранения представлений данных и сущностей, главной управляющей программы 1, сервера хранения тестов и отчётов 3, динамически подключаемых моделей входных/выходных воздействий 4, функциональных моделей 5 и сервера диспетчеризации 6. Аппаратная часть состоит из аппаратных модулей 7, панели вывода состояния моделей/интерфейсов 8, отладочного места 10 и непосредственно тестируемого устройства 9.
Аппаратные модули 7 осуществляют обмен между сервером диспетчеризации 6, который принимает данные от главной управляющей программы 1, моделей входных/выходных воздействий 4 и функциональных моделей 5 и тестируемым устройством 9. Также аппаратные модули 7 выводят информацию на панель вывода состояния моделей/интерфейсов 8, в качестве которой может выступать дисплей с VGA входом. Аппаратные модули 7 совместно с функциональными моделями 5 осуществляют имитацию работы различных модулей сопряжения в режиме, максимально приближенном к режиму реального времени. Каждый аппаратный модуль обеспечивает взаимодействие программных моделей с тестируемым устройством 9 как минимум по одному приборному интерфейсу. Каждый приборный интерфейс содержит аппаратный контроллер, который позволяет реализовывать передачу данных в соответствии со стандартами приборного интерфейса.
Сервер диспетчеризации 6:
- осуществляет передачу пакетов от главной управляющей программы 1, моделей входных/выходных воздействий 4, функциональных моделей 5 в аппаратные модули 7;
- осуществляет рассылку ответных пакетов от аппаратных модулей 7 в модели входных/выходных воздействий 4, функциональные модели 5 и главную управляющую программу 1;
- следит за атомарностью подключения к аппаратному модулю во время выполнения тестирования электронного устройства.
Панель вывода состояния моделей/интерфейсов 8 отображает состояние моделей и интерфейсов в режиме реального времени.
Модели входных/выходных воздействий 4 и функциональные модели 5 реализуются в виде независимых программ со средствами визуализации и представления состояния их внутренних данных и сущностей и могут быть написаны на любом языке программирования, например, Java, Python, MATLAB или С/С++. Могут быть как управляемыми главной управляющей программой в реальном времени на любом этапе тестирования, так и иметь функцию автономного управления и изменения своих состояний, генерировать события и устанавливать их в главной управляющей программе. Кроме этого главная управляющая программа не только перед тестированием, но и динамически, т.е. непосредственно в процессе тестирования, может запускать и подключать новые программные модели, реконфигурировать или завершать работу уже подключенных программных моделей и информационно взаимодействовать со всеми аппаратными модулями через доступные программные модели.
Главная управляющая программа 1, которая:
- реализована в виде единого пользовательского интерфейса;
- содержит средства управления хранением тестовых наборов и их подключений в состав комплекса на любом этапе испытаний и обеспечивающие взаимодействие с сервером хранения тестов и отчётов 3;
- является программной средой, содержащей средства написания, редактирования и выполнения тестов, обеспечивающие задание параметров конфигурации и тестирования встроенного ПО ЭУ;
- обеспечивает обмен информацией с моделями входных/выходных воздействий 4, функциональными моделями 5 и сервером диспетчеризации 6, установку и обработку событий и обеспечение синхронизации.
Передача данных между главной управляющей программой 1, моделями входных/выходных воздействий 4, функциональными моделями 5 и сервером диспетчеризации 6 осуществляется при помощи пакетной передачи данных и не требует выделения отдельного общего буфера в ОЗУ.
База данных 2 содержит информацию, включающую в себя параметры комплекса, информацию, необходимую для главной управляющей программы 1. БД реализуется в виде набора связанных таблиц в соответствии с определенным типом назначения и использования, с привязкой к определенным видам тестируемого встроенного ПО.
Отладочное место 10 служит для возможности отладки встроенного ПО тестируемого устройства с использованием точек останова, в случае обнаружения незапланированного или некорректного выполнения программы. Также оно может служить для перепрограммирования тестируемого устройства и является опциональным компонентом схемы.
Комплекс работает следующим образом:
В БД 2 заносится основная информация по тестируемому встроенному ПО электронного устройства.
Пользователь запускает главную управляющую программу 1. У главной управляющей программы есть два режима работы «Редактор» и «Выполнение». Режим работы выбирается оператором.
В режиме «Редактор» пользователь составляет тестовые последовательности, редактирует их и сохраняет на сервер хранения тестов 3 в каталог, сформированный для тестируемого встроенного ПО.
В режиме «Выполнение» представлен инструмент для выполнения тестовых наборов. Перед началом выполнения тестовой последовательности главная управляющая программа 1 подключает необходимые модели входных/выходных воздействий 4 и функциональные модели 5 и отправляет им требуемые начальные конфигурационные настройки. В ходе тестирования в режиме реального времени возможно управление внутренним состоянием данных и сущностей моделей как из главной управляющей программы 1, так и непосредственно в моделях.
Обмен информацией между главной управляющей программой 1, программными моделями 4 и 5 с сервером диспетчеризации 6 и сервером диспетчеризации 6 с аппаратными модулями 7 осуществляется по единому протоколу обмена по распределённой сети на базе протоколов TCP/IP и UDP. Наличие сетевого взаимодействия между программными компонентами комплекса допускает запускать программные модели на одном или сразу нескольких ЭВМ.
Аппаратные модули 7 принимают от сервера диспетчеризации 6 пакеты с данными, анализируют их и либо сохраняют данные в своей памяти или регистрах интерфейсов, либо отправляют данные, считанные с внутренней памяти аппаратного модуля или регистров интерфейсов. Далее в зависимости от принимаемых данных происходит либо транзакции по приборным интерфейсам между аппаратными модулями 7 и тестируемым устройством 9, либо модификация данных, отправляемых по приборным интерфейсам.
Главная управляющая программа 1 и каждая программная модель 4 и 5 протоколирует информацию за весь период своей работы (приём команд, сигналов, отправленные и ответные пакеты, с указанием получателя и отправителя), что позволяет на любом этапе проконтролировать, что происходило в каждой из программной модели 4 и 5 и в главной управляющей программе 1. При помощи протоколирования облегчается анализ состояния тестируемого встроенного ПО в процессе выполнения теста и оценка функционального покрытия пройденным тестом. Также по всем протоколам можно оценить эффективность выполнения тестов и при необходимости изменить конфигурацию сети или тестовый сценарий.
Модели входных/выходных воздействий 4 и функциональные модели 5 могут работать под управлением главной управляющей программы 1 или независимо, как самостоятельные программные модели для дополнительной отработки.
Доступные в процессе тестирования для пользователя средства визуализации тестирования представляются в виде набора графического сопровождения, которые включают: выделение цветом различных типов операций, подсветка хода выполнения тестирования, выделение операций не прохождения, выделение определенной информации, не прошедшей контроль и т.д.
С использованием данного комплекса проведено тестирование программного обеспечения вычислительного модуля блоков управления бортового комплекса управления, блоков интерфейсных бортового комплекса управления и блоков управления бортового ретрансляционного комплекса перспективных космических аппаратов АО «ИСС».
За счёт реализации данного технического решения достигается необходимый технический результат:
- сокращение сроков разработки и подготовки комплекса и программных моделей осуществляется путём построения архитектуры комплекса в виде распределенной сети с использованием для взаимодействия между программными компонентами единого протокола, что позволяет разрабатывать отдельные программные компоненты на различных языках программирования (при необходимости), проводить параллельную разработку нескольких моделей и главной управляющей программы. Также при использовании разных языков программирования увеличивается скорость прототипирования отдельных моделей, либо увеличить эффективность использования модели за счёт особенностей языка программирования;
- повышение эффективности и облегчение тестирования встроенного программного обеспечения обеспечивается путём визуализации представления состояния данных каждой модели в виде диалоговых окон, отображения общего хода тестирования и состояния данных и сущностей в реальном времени на любом этапе выполнения тестов. Использование подходящего языка программирования под определённую задачу позволяет увеличить скорость прототипирования отдельных моделей, либо увеличить эффективность использования модели за счёт особенностей языка программирования;
- повышение полноты тестирования достигается за счет использования средств синхронизации процесса испытаний;
- повышение качества тестирования и надежности тестируемого программного обеспечения обеспечивается за счет своевременной реакции и контроля со стороны комплекса на события от тестируемого программного обеспечения и динамического воздействия на вычислительный процесс тестируемого программного обеспечения с имитацией нештатных ситуаций для подтверждения его сбое устойчивости путём переноса функции приёма и передачи пакетов для электронного устройства непосредственно в аппаратные модули.