TPT ( тестирование временного разделения ) — это систематическая методология тестирования для автоматизированного тестирования программного обеспечения и проверки встроенных систем управления , киберфизических систем и программ потоков данных . TPT специализируется на тестировании и проверке встроенных систем, входы и выходы которых могут быть представлены в виде сигналов , и является специализированным методом для тестирования непрерывного поведения систем . [1] Большинство систем управления относятся к этому классу систем. Выдающейся характеристикой систем управления является тот факт, что они тесно взаимодействуют с реальной средой. Контроллерам необходимо наблюдать за своей средой и реагировать соответствующим образом на ее поведение. [2] Система работает в цикле взаимодействия со своей средой и подчиняется временным ограничениям. Тестирование этих систем заключается в стимулировании и проверке временного поведения. Традиционные методы функционального тестирования используют сценарии — TPT использует тестирование на основе моделей .
TPT сочетает в себе метод систематического и графического моделирования для тестовых случаев с полностью автоматизированным выполнением тестов в различных средах и автоматической оценкой тестов. TPT охватывает следующие четыре тестовых действия:
В TPT тесты моделируются графически с помощью специальных конечных автоматов и временного разделения. [1] [3] Все тестовые случаи для одной тестируемой системы могут быть смоделированы с использованием одного гибридного автомата. Тесты часто состоят из последовательности логических фаз. Состояния конечного автомата представляют логические проходы теста, которые одинаковы для всех тестов. Условия срабатывания моделируют переходы между тестовыми фазами. Каждое состояние и переход автомата могут иметь различные варианты. Комбинация вариантов моделирует отдельные тестовые случаи.
Тексты на естественном языке становятся частью графики, поддерживая простую и наглядную читаемость даже для непрограммистов. Существенные методы, такие как параллельные и иерархические разветвленные конечные автоматы , условное разветвление, реактивность , описание сигналов, измеренные сигналы, а также списки простых тестовых шагов позволяют интуитивно и наглядно моделировать даже сложные тестовые случаи.
Сложность теста скрыта за графикой. Описание сигнала самого низкого уровня состоит либо из списков шагов теста, либо из так называемых прямых определений.
Используя список тестовых шагов, можно моделировать простые последовательности тестовых шагов, которые не нужно выполнять параллельно, такие как установка сигналов (Set channel), изменение сигналов (Ramp channel), установка параметров (Set parameter) и ожидание (Wait). Запросы на ожидаемые результаты теста могут быть сделаны в рамках тестовой последовательности для оценки тестируемой системы по мере ее работы. Также можно помещать подавтоматы в список тестовых шагов, которые, в свою очередь, содержат автоматы и последовательности, что приводит к иерархическим спискам тестовых шагов. Тестовые последовательности также можно комбинировать с другими методами моделирования, что позволяет значительно усложнить (или упростить) тест. Тестовые последовательности также можно комбинировать и распараллеливать с другими методами моделирования.
В Test-Step-List можно реализовать так называемые "Прямые определения". Используя этот тип моделирования, можно определить сигналы как функцию времени, прошлых переменных/тестовых событий и других сигналов. Также можно определить эти сигналы, написав код " C -стиля", а также импортировав данные измерений и используя ручной редактор сигналов.
Можно определить функции , которые могут действовать как клиенты или серверы . Клиентские функции вызываются из TPT в тестируемой системе, где серверные функции, реализованные в TPT, могут вызываться как « функции- заглушки » из тестируемой системы. Сам TPT также может вызывать серверные функции.
TPT был разработан специально для тестирования непрерывного и реактивного поведения встроенных систем. [4] TPT можно рассматривать как расширение метода дерева классификации с точки зрения поведения синхронизации. Благодаря своему систематическому подходу к генерации тестовых случаев , TPT отслеживает даже очень сложные системы, тщательное тестирование которых требует большого количества тестовых случаев, что позволяет находить сбои в тестируемой системе с идеальным количеством тестовых случаев.
Основная идея систематики TPT заключается в разделении сходств и различий между тестовыми случаями: большинство тестовых случаев очень похожи по своему структурному процессу и могут быть дифференцированы «только» в нескольких, но важных деталях. [5] TPT использует этот факт путем совместного моделирования и использования совместных структур. С одной стороны, таким образом избегается избыточность. С другой стороны, становится очень ясно, чем на самом деле отличаются тестовые случаи, т. е. какой конкретный аспект они соответственно тестируют. Сопоставимость тестовых случаев и, следовательно, обзор улучшаются при таком подходе, и внимание тестировщика сосредотачивается на самом существенном — отличительных чертах тестовых случаев.
Иерархическая структура тестовых случаев позволяет разбить сложные тестовые задачи на подзадачи, тем самым повышая ясность и, как следствие, качество теста.
Эти методы моделирования помогают тестировщику находить действительно релевантные случаи, избегать избыточности и отслеживать даже большое количество тестовых случаев. [6]
TPT включает в себя несколько возможностей для автоматической генерации тестовых случаев:
С помощью TPT каждый тестовый случай может специфически реагировать на поведение системы [8] во время процесса тестирования в реальном времени – например, реагировать на систему именно тогда, когда происходит определенное состояние системы или сигнал датчика превышает определенный порог. Если, например, необходимо смоделировать отказ датчика для контроллера двигателя при превышении скорости холостого хода двигателя, необходимо иметь возможность реагировать на событие «превышена скорость холостого хода двигателя» в описании тестового случая.
Тестовые случаи TPT создаются независимо от его выполнения. Тестовые случаи могут быть выполнены практически в любой среде благодаря так называемой концепции виртуальной машины (VM) также в средах реального времени . Примерами являются MATLAB / Simulink , TargetLink , ASCET, C-code , CAN , AUTOSAR , SystemDesk, DaVinci CT, LABCAR, INCA, Software-in-the-Loop (SiL) и HiL . Таким образом, TPT является интегрированным инструментом для использования на всех этапах тестирования разработки, таких как модульное тестирование , интеграционное тестирование , системное тестирование и регрессионное тестирование .
Для анализа и измерения покрытия кода TPT может взаимодействовать с инструментами покрытия, такими как Testwell CTC++ для кода C.
Для взаимодействия с тестами можно использовать настраиваемый графический интерфейс пользователя (панель инструментов), основанный на виджетах GUI .
Смоделированные тестовые случаи в TPT компилируются и во время выполнения теста интерпретируются так называемой виртуальной машиной (VM). VM одинакова для всех платформ и всех тестов. Только адаптер платформы реализует отображение сигналов для отдельного приложения. TPT-VM реализована на ANSI C и требует памяти всего в несколько килобайт и может полностью обойтись без динамического выделения памяти, что позволяет применять ее в минималистичных и малоресурсных средах. Также существуют API для C и .NET .
Виртуальная машина TPT способна обрабатывать тесты в реальном времени с определенным поведением ответа. Время ответа тестовых случаев TPT обычно указывается в пределах микросекунд – в зависимости от сложности и тестового оборудования.
Ожидаемое поведение системы для отдельных тестовых случаев также должно автоматически тестироваться для обеспечения эффективных процессов тестирования. TPT предлагает возможность вычислять свойства для ожидаемого поведения онлайн (во время выполнения теста) и офлайн (после выполнения теста). В то время как онлайн-оценка использует те же методы моделирования, что и тестовое моделирование, офлайн-оценка предлагает определенно более далеко идущие возможности для более сложных оценок, включая такие операции, как сравнение с внешними справочными данными, мониторинг предельных значений, фильтры сигналов, анализ последовательностей состояний и временных условий.
Автономная оценка, технически говоря, основана на языке сценариев Python , который был расширен определенными элементами синтаксического языка и специализированной библиотекой оценки для обеспечения оптимальной поддержки оценки теста. Использование языка сценариев обеспечивает высокую степень гибкости в оценке теста: поддерживается доступ к справочным данным, связь с другими инструментами и разработка собственных библиотек для оценки теста. Помимо оценки результатов теста на основе сценариев, пользовательские интерфейсы предоставляют простой доступ к оценкам теста и помогают непрограммистам избегать написания сценариев.
Данные измерений из других источников, таких как регистрация сигналов TargetLink и Simulink или данные измерений MCD-3, могут быть оценены автоматически. Эти данные могут быть независимы от выполнения теста.
Тестовая документация TPT в соответствии с IEEE 829 представляет тестировщику результат оценки теста в HTML-отчете, в котором не только чистая информация «успех», «неудача» или «неизвестно» может быть отображена как результат теста для каждого тестового случая, но и такие детали, как характерные параметры или сигналы, которые наблюдались при выполнении теста или вычислялись при оценке теста. Поскольку оценка теста возвращает надлежащую информацию о времени и проверенном поведении, эта информация может быть доступна в отчете. Содержание тестовой документации, а также структура документа могут быть свободно настроены с помощью шаблона.
TPT поддерживает управление тестированием тестовых проектов TPT с помощью следующих мероприятий:
Отраслевые нормы, такие как IEC 61508 , DO-178B , EN 50128 и ISO 26262, требуют прослеживаемости требований и испытаний . TPT предлагает интерфейс для инструментов требований , таких как Telelogic DOORS, для поддержки этих видов деятельности.
TPT — это инструмент тестирования на основе модели , который применяется в основном при разработке автомобильных контроллеров [9] и изначально был разработан в Daimler AG для их собственной разработки. Daimler координировал разработку инструмента тестирования в течение многих лет. [10] С 2007 года PikeTec продолжает разработку инструмента. TPT используется многими другими автопроизводителями, такими как BMW , Volkswagen , Audi , Porsche и General Motors, а также поставщиками, такими как Robert Bosch GmbH , Continental и Hella . [11]