Что такое встроенное тестирование в тестировании программного обеспечения?

⚡ Умное резюме

Встроенное тестирование проверяет функциональное и нефункциональное поведение программного и аппаратного обеспечения одновременно, поскольку во встроенной системе эти два компонента тесно взаимосвязаны, и ни один из них не может быть должным образом проверен по отдельности.

  • 🔘 Тесная связь: Разработка аппаратного обеспечения ведется параллельно с программным обеспечением, поэтому реальная тестовая среда часто поступает с опозданием.
  • ☑️ Пять уровней: Модульное, интеграционное, системное модульное, системно-интеграционное и системное валидационное тестирование — каждое из них нацелено на разные границы модулей.
  • Вопросы безопасности: Для сертификации продукции медицинского, железнодорожного, авиационного и автомобильного назначения необходимы строгие документально подтвержденные испытания.
  • 🧪 Настройки серого поля: Модульное тестирование системы анализирует внутренние ресурсы и сообщения операционной системы реального времени, поэтому методы «серого ящика» подходят для этого лучше всего.
  • 🇧🇷 Основные препятствия: Ограниченный доступ к оборудованию, компоненты с открытым исходным кодом, смешанные дефекты программного и аппаратного обеспечения, а также дефекты, которые трудно воспроизвести.

Встроенное тестирование программного и аппаратного обеспечения во встроенной системе

Что такое встроенные системы?

Встроенные системы Встроенные системы — это электронно управляемые устройства, в которых программное и аппаратное обеспечение тесно взаимосвязаны. Они могут содержать различные вычислительные устройства. Это персональные компьютеры, встроенные в другие устройства для выполнения функций, специфичных для конкретного приложения. Конечный пользователь обычно даже не знает об их существовании.

Встроенное тестирование

Встроенное тестирование Это процесс тестирования для проверки функциональности и нефункциональные Проверка характеристик как программного, так и аппаратного обеспечения встраиваемой системы и обеспечение отсутствия дефектов в конечном продукте. Главная цель тестирования встраиваемых систем — проверить и подтвердить, соответствует ли конечный продукт, как аппаратный, так и программный, требованиям заказчика.

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

Как провести тестирование встроенного программного обеспечения

В общем, вы тестируете по четырем причинам:

  • Чтобы найти ошибки в программном обеспечении
  • Помогает снизить риск как для пользователей, так и для компании.
  • Сократите затраты на разработку и обслуживание
  • Для повышения производительности

В процессе тестирования встроенных систем выполняются следующие действия:

  1. Программное обеспечение поставляется с некоторыми входными данными.
  2. Выполняется фрагмент программного обеспечения.
  3. Проводится мониторинг состояния программного обеспечения, а выходные данные проверяются на соответствие ожидаемым свойствам, таким как соответствие ожидаемому результату, соответствие требованиям и отсутствие сбоев системы.

Типы тестирования встроенного программного обеспечения

В принципе, существует пять уровней тестирования, которые можно применять к встроенному программному обеспечению.

Модульное тестирование программного обеспечения

Модуль представляет собой либо функцию, либо класс. Модульное тестирование выполняется командой разработчиков, в первую очередь разработчиком, и обычно проводится по модели взаимного рецензирования. Тестовые примеры разрабатываются на основе спецификации модуля.

Интеграционное тестирование

Интеграционное тестирование Можно разделить на два сегмента:

  • Интеграционное тестирование программного обеспечения
  • Тестирование интеграции программного и аппаратного обеспечения

В заключение проверяется взаимодействие аппаратной и программной частей системы. Это может включать в себя изучение взаимодействия между встроенными периферийными устройствами и программным обеспечением.

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

Тестирование системного модуля

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

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

Системное интеграционное тестирование

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

Проверочное тестирование системы

Тестируемый модуль представляет собой подсистему с полной реализацией или полную встроенную систему. Цель этого заключительного теста — соответствие функциональным требованиям внешнего объекта. Следует отметить, что внешним объектом может быть человек, устройство в телекоммуникационной сети или и то, и другое.

Разница: встроенное тестирование и тестирование программного обеспечения

В таблице ниже сравниваются методы встроенного тестирования и традиционные методы. тестирование программного обеспечения.

Тестирование программного обеспечения Встроенное тестирование
Тестирование программного обеспечения относится только к программному обеспечению. Встроенное тестирование относится как к программному, так и к аппаратному обеспечению.
В среднем 90% тестирования в мире проводится исключительно вручную. тестирование черного ящика. Встроенное тестирование проводится на встроенных системах или микросхемах и может быть методом «черного ящика» или другим методом. тестирование белого ящика.
Основными областями тестирования являются проверки графического интерфейса, функциональность, проверка и некоторый уровень тестирования базы данных. Основными областями тестирования являются поведение оборудования при изменении количества подаваемых на него входных сигналов.
Тестирование программного обеспечения в основном проводится для клиент-серверных, веб-приложений и мобильных приложений. Встроенное тестирование обычно проводится на аппаратном обеспечении.
например, Google MailYahoo Mail, Android приложений. Например, оборудование, используемое в здравоохранении, микроконтроллеры, применяемые в компьютерах.

Проблемы: тестирование встроенного программного обеспечения

Вот некоторые из проблем, с которыми можно столкнуться при тестировании встроенного программного обеспечения:

Аппаратная зависимость

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

Программное обеспечение с открытым исходным кодом

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

Программное обеспечение и аппаратные дефекты

Ещё один аспект — это разработка программного обеспечения для недавно созданного оборудования. В ходе этого процесса может быть выявлено большое количество аппаратных дефектов. Обнаруженные дефекты могут касаться не только программного обеспечения, но и аппаратной части.

Воспроизводимые дефекты

В случае встроенных систем дефекты сложнее воспроизвести. Это вынуждает процедуру тестирования встроенных систем оценивать каждое возникновение дефекта значительно выше, чем в стандартном случае, и собирать столько данных, сколько может разумно потребоваться для выявления первопричины дефекта.

Непрерывные обновления программного обеспечения

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

Часто задаваемые вопросы (FAQ)

Типичные стеки объединяют статический анализ, модульные тестовые среды для C и C++анализаторы шин, tracотладчики с поддержкой e-технологий и аппаратные средства моделирования в реальном времени, а также автоматизация испытаний Таким образом, наборы регрессионных тестов запускаются в автоматическом режиме.

В режиме аппаратного моделирования (HIL) на реальном контроллере запускается реальное программное обеспечение, а симулятор подает сигналы, которые бы генерировала окружающая среда, имитируя условия неисправностей, которые небезопасно создавать физически.

Симулятор моделирует поведение и запускает сборку для хоста; эмулятор воспроизводит целевой набор инструкций, чтобы выполнялся реальный исполняемый файл. Ни один из них не воспроизводит аналоговые и временные эффекты в точности.

IEC 61508 — это общий стандарт функциональной безопасности. Существуют также отраслевые версии, такие как ISO 26262 для дорожных транспортных средств, DO-178C для бортового программного обеспечения, IEC 62304 для медицинских устройств и EN 50128 для систем управления железнодорожным транспортом.

Модели ИИ сортируют большие массивы данных и tracАнализ объемов данных, производимых буровой установкой, позволяет кластеризовать повторяющиеся отказы и определить, какие регрессионные тесты следует запустить в первую очередь на дефицитном оборудовании. Решение по вопросам безопасности остается за инженером.

Второй пилот GitHub чертежи, испытательные ремни и заглушки для C или C++ Модули ускоряют повторяющееся мокирование. Необходимо проверить поведение регистров и временные ограничения, которые ранее не встречались.

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

Чтение C и C++Уверенное владение схемами и логическими анализаторами, знакомство с концепциями RTOS и протоколами шин, а также навыками написания скриптов. Смежные работы, такие как: IoT-тестирование опирается на ту же основу.

Подведем итог этой публикации следующим образом: