Тестирование в реальном времени
Тестирование в реальном времени — это процесс тестирования компьютерных систем, работающих в реальном времени .
Тестирование программного обеспечения проводится с целью обнаружения и исправления ошибок (ошибок) в компьютерном программном обеспечении. Тестирование включает в себя проверку не только того, что программное обеспечение не содержит ошибок, но и того, что оно предоставляет пользователю необходимые функциональные возможности. Статические и традиционные методы тестирования могут обнаружить ошибки, но такие методы не могут гарантировать правильные результаты в программных системах реального времени.
Программные системы реального времени имеют строгие временные ограничения и детерминированное поведение. Эти системы должны планировать свои задачи таким образом, чтобы соблюдались наложенные на них временные ограничения.Традиционный статический способ анализа не позволяет справиться с такими временными ограничениями, поэтому важно дополнительное тестирование в реальном времени. [1]
Стратегия [ править ]
Разработка тестового примера для тестирования в реальном времени может быть предложена в четыре этапа. [2]
- Тестирование задач
- На самом первом этапе каждая задача тестируется индивидуально с помощью обычного статического тестирования. Это тестирование проводится только для обнаружения ошибок в логике или синтаксисе программы. Порядок событий не имеет значения, поскольку тестирование задач не касается временных ограничений и временных свойств событий.
- Поведенческое тестирование
- Используя модели системы, созданные с помощью инструментов автоматизированного тестирования, можно смоделировать поведение системы реального времени и влияние параллельных внешних событий на ее поведение.
- Межзадачное тестирование
- После завершения тестирования отдельной задачи предполагается, что задача не содержит ошибок в области кодирования и поведения. Ограничения, связанные со временем, проверяются с помощью межзадачного тестирования. Чтобы выявить ошибки связи, асинхронные задачи тестируются с переменной скоростью передачи данных и различной полезной нагрузкой.
- Тестирование системы
- В ходе этого тестирования программное и аппаратное обеспечение интегрируются, и проводится полный спектр системных тестов для обнаружения ошибок, если таковые имеются, во время взаимодействия программного и аппаратного обеспечения .
Инструменты для тестирования в реальном времени [ править ]
Поскольку тестирование систем реального времени становится все более важным, существует несколько инструментов, предназначенных для такого тестирования.
МСК [ править ]
Диаграммы последовательности сообщений — это международно признанный стандарт для регистрации требований. [3] MSC предоставляет графический двухмерный язык, который часто требуется для сбора требований в некоторых сценариях взаимодействия.
СДЛ [ править ]
Язык спецификации и описания — это стандарт, используемый для проектирования и анализа. СДЛ [4] поддерживает спецификацию сложных программных систем и широко применяется в широком спектре областей: от телекоммуникаций , автоматизации до общей разработки программного обеспечения.
ТТСН [ править ]
Нотация тестирования и контроля тестирования — единственный международный стандартный язык тестирования. ТТЦН3 [5] обеспечивает более широкую применимость по сравнению с более ранними версиями TTCN, которые в основном были ориентированы только на протоколы OSI .
Эти три стандарта вместе используются для тестирования приложений реального времени. Необходимо, чтобы эти модели удовлетворяли требованиям, а создаваемые тестовые примеры должны охватывать функциональную информацию и информацию в режиме реального времени, необходимую для тестирования систем. Кроме того, изменения в требованиях к проектированию и новая информация о свойствах систем в реальном времени должны учитываться в моделях, чтобы можно было выяснить их влияние.
Чтобы точно зафиксировать свойства данной тестовой системы в реальном времени и гарантировать, что требования и модели используются для генерации реалистичной и осуществимой информации о времени, важно, чтобы сам язык (TTCN-3) имел хорошо понятную и семантически обоснованную модель время.
ТТЦН-3 [ править ]
Предыстория [ править ]
TTCN-3 — единственный доступный в настоящее время международный стандартизированный язык тестирования. До TTCN3 его более ранние версии имели ограниченную функциональность и ограниченную область применения протокола OSI. Однако TTCN3 является расширенной версией и имеет более широкое применение.
Характеристики TTCN3:
- возможность указать динамическое параллельное тестирование
- операции для связи на основе сообщений и процедур
- возможность указывать шаблоны данных и подписей с помощью мощных механизмов сопоставления
- параметризация типа и значения
- назначение и обработка тестовых вердиктов
- Механизмы параметризации набора тестов и выбора тестовых примеров
Причиной использования TTCN3 для тестирования в реальном времени являются его таймеры. Эти таймеры определены в наборах функциональных тестов . В TTCN3 не используются глобальные таймеры. Эти таймеры можно запускать, останавливать и проверять с помощью простых функций, таких как timer.start, timer.stop и timer.read.
Семантика моментальных снимков — это метод в TTCN3 (также в TTCN2), который имеет дело с сообщением, передаваемым во время связи между системами или тестируемой реализацией. Когда тестируемая система получает серию ответов, делается снимок и они оцениваются в порядке их поступления. Таким образом, каждый раз для набора атрибутов создается снимок и оцениваются только те события, которые присутствуют в снимке.
Но этот метод неэффективен, поскольку некоторые события и информация об их атрибутах могут быть потеряны во время создания моментального снимка. Некоторые события могут быть записаны в очереди обработки, но не в моментальном снимке. Такие события никогда не могут быть обработаны. Кроме того, если оборудование, выполняющее тестирование, недостаточно быстрое, оно не сможет должным образом взаимодействовать с тестируемой системой. Таким образом, во время такой тестовой оценки могут возникнуть ошибки.
Инструменты Linux [6] [7] [ редактировать ]
- rt-тесты: https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/
- циклический тест от SUSE : https://documentation.suse.com/sle-rt/15-SP1/html/SLE-RT-all/art-slert-hwtest.html
См. также [ править ]
- Linux реального времени
- Встроенный Linux
- Операционная система реального времени
- Критически важные для безопасности системы
Ссылки [ править ]
- ^ Цай, JJP; Фанг, К.-Ю.; Би, Ю.-Д. (1990). «О тестировании и отладке программного обеспечения в реальном времени». Труды. Четырнадцатой ежегодной международной конференции по компьютерному программному обеспечению и приложениям . стр. 512–518. дои : 10.1109/CMPSAC.1990.139423 . ISBN 978-0-8186-2054-6 .
- ^ Прессман, Роджер С. (2005). Программная инженерия: подход практикующего специалиста (6-е изд.). Бостон, Массачусетс: МакГроу-Хилл. ISBN 0-07-285318-2 . OCLC 53848343 .
- ^ Генерация тестового примера TTCN-3 на основе диаграмм последовательности сообщений (PDF) .
- ^ «Сообщество SDL Forum — Домашняя страница» . sdl-forum.org . Проверено 8 марта 2021 г.
- ^ "Дом" . ТТЦН-3 . Проверено 8 марта 2021 г.
- ^ Дальке, Патрик (06 февраля 2018 г.). «Реалтайм Линукс» . Середина . Проверено 10 марта 2021 г.
- ^ «Лучшие практики тестирования в реальном времени — eLinux.org» . elinux.org . Проверено 10 марта 2021 г.