FORESIGHT Pro

IBM TEST REALTIME

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

 

 

Немного о тестировании системах реального времени

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


Проблемы в тестировании систем реального времени

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

  • Существенные отличия среды разработки и целевого вычислителя,
  • Множество вариантов целевых вычислителей (конфигурации программного и аппаратного оборудования тестовых стендов),
  • Ограничения на ресурсы и время (следствие работы с системами и ядрами систем реального времени - некоторые [0]очень маленькие по размеру ядра ОСРВ не поддерживают динамическое распределение памяти, следовательно с ними не реализуется предварительное выделение оперативной памяти),
  • Стандарты качества и сертификации, требования которых необходимо удовлетворить,
  • И т.д.

IBM Test RealTime – специальное кроссплатформенное решение от IBM для разработчиков, позволяющее проводить тестовые испытания:

  • встроенного программного обеспечения (Embedded Software, Embedded Systems), например: мобильный телефон, медицинское оборудование, GPS,
  • приложений и систем реального времени (как систем жесткого реального времени (hard real-time system), так и систем мягкого реального времени (soft real-time system) и систем твердого реального времени (firm real-time system)), например: аэрокосмическая, автомобильная, телекоммуникационная система управления,
  • а также и другие технические системы, например: симуляция вычислений

 

 

Рис. 1. Rational Test RealTime - окно программы

 

 

Область применения IBM Test RealTime – везде, где есть необходимость тестирования встроенных приложений, систем реального времени и технических систем.

 

Несколько примеров объектов и дисциплин, где применяется тестирование с помощью IBM Test RealTime:

Промышленность:

  • Системы управления технологическим процессом (СУТП)
  • Системы промышленной автоматики
  • Системы диспетчерского управления и сбора данных (SCADA)
  • Испытательное и измерительное оборудование
  • Робототехника

Медицина:

  • Томография
  • Радиотерапия
  • Системы прикроватного мониторинга

Транспорт (включая авиационную, аэрокосмическую, судостроительную отрасли)

  • БРЭО
  • Регулирование уличного движения
  • Управление воздушным движением
  • Аэрокосмическая техника

Военная техника:

  • Системы наведения ракет
  • Противоракетные системы
  • Системы спутникового слежения

2. Основные функции IBM Test RealTime

  • Генерация исполняемых тестовых активов на нужном разработчику языке (C, C++, Ada, Java),
  • Генерация необходимых заглушек,
  • Сбор и анализ результатов испытаний,
  • Интеграция с IDE,
  • Помогает минимизировать риски при разработке продукта и поставить продукт вовремя с высоким качеством и более низкой стоимостью,
  • Раннее определение соответствия поставляемого продукта требования функциональности и качества,
  • Тестирование непосредственно на целевом вычислителе повышает уверенность, что система будет работать, как ожидается,
  • Обеспечение необходимой документации для сертификации качества,
  • Квалификация по DO-178B.

Также IBM Test RealTime позволяет включить в исходный код на этапе препроцессорной обработки (еще до начала компиляции) специальный функционал для отслеживания поведения приложения и поиска ошибок, тем самым реализуя динамический анализ.


Unit-тесты и интеграционное тестирование ПО
Электронный блок управления (ECU)/Валидация программно-аппаратного моделирования (HWIL)
Покрытие кода, включая MC/DC

IBM Test RealTime реализует анализ покрытия кода удобным для пользователя образом. В окне редактирования кода строки исполняемого и неисполняемого кода представляются разными цветами.
IBM Test RealTime поддерживает анализ покрытия кода по модифицированному методу покрытия по веткам/условиям (MC/DC), разработанным Boeing и широко применяемым в авиационной отрасли для тестирования ПО БРЭО и КСУ на соответствие DO-178B.

 

 

Рис. 2. Реализация требований КТ-178С

 

 

Профилирование памяти

IBM Test RealTime предоставляет возможность автоматического определения ошибок памяти, таких как ABW, UMR, MAF и пр, поиск утечек памяти (memory leaks), формирования отчетов по использованию памяти.

 

Профилирование нагрузки

Анализ нагрузки IBM Test RealTime позволяет проводить оптимизацию производительности кода, выделить «бутылочных горлышек», узнать количество вызовов каждой функции и времени, затрачиваемого на выполнение каждой функции.

 

Статический анализ кода

IBM Test RealTime осуществляет статический анализ кода на соответствие пользовательским правилам, которые можно указать в ходе работы. В том числе, IBM Test RealTime позволяет анализ кода на соответствие стандарту и руководящим правилам MISRA-C.

Тесты работают практически в любой встроенной среде

 

Вычисление метрик

До начала тестирования в IBM Test RealTime можно определить приоритеты тестов, проанализировав метрики. Например, зная, сколько раз запускается каждая функция или метод, тестировщик может приоритезировать свои тесты.

 

Отслеживание выполнения

IBM Test RealTime позволяет собирать с целевого вычислителя и анализировать информацию о выполнении тестов, что поможет отследить последовательность действий и взаимодействий, выполняемых в процессе работы приложения.

 

 

Рис. 3. Запуск тестов в RTRT

 

 

Анализ покрытия

Т.к. выполнение тестов IBM Test RealTime интегрировано с указанным разработчичком отладчиком, в ходе тестирования можно получить детальные отчеты об анализе покрытия, протрассированные с другими артефактами процесса – результатами анализа выполнения и исходным кодом.

 

 

Рис. 4. Анализ покрытия

 

 

Профилирование потоков

IBM Test RealTime поддерживает работу с много поточностью - дает возможность отслеживать состояние каждого потока (спит, работает или ждет).


3. Техническая информация


* Интеграция с инструментами IBM и инструментами других производителей, в том числе IBM Quality Manager, IBM Rhapsody, Wind River, Eclipse, MS Visual Studio и пр.
* IBM Test RealTime имеет квалификационный пакет для сертификации по стандарту DO-178B
* IBM Test RealTime поддерживает языки C, C++, Ada, Java


4. Наш опыт


* Внедрение, Установка и настройка интеграции с другим программным обеспечением
* Проведение пресейлов и демо продукта для Заказчика
* Проведение семинаров обучения по работе с продуктом для Заказчика