Динамическое создание EFSM для MBT

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

Я пытался использовать ModelJUnit, но насколько я понимаю, этот инструмент поддерживает только полностью предопределенные модели.

Поэтому у меня вопрос: есть ли какие-либо инструменты для тестирования на основе моделей, которые поддерживают динамическое создание FSM для тестируемой системы, как описано выше?

1 ответ

Решение

Ваша проблема очень типичная. Примером может служить контроллер / программное обеспечение, которое определяет положение переключателя в транспортном средстве - положение P R N D необходимо определять по электрическим переходам рычага. Если принять во внимание перепрыгивание через переходы и электрические неисправности, вы получите большое / бесконечное пространство. Этот вид программного обеспечения имеет максимально возможный уровень безопасности, поскольку он может вызвать непреднамеренный крутящий момент.

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

С другой стороны, без изменений они не могут справиться с упомянутой вами проблемой: пространство состояний / взрыв перехода и т. Д. Вот почему профессиональные инструменты используют очень сложные методы для обработки больших / бесконечных пространств:

  • полное символическое исследование
  • решатели ограничений
  • нарезка

Они часто могут давать результаты, такие как покрытие требований, mc / dc даже на бесконечных моделях, потому что алгоритмам не нужно расширять все пространство во время исследования. Примеры инструментов, которые вы можете найти:

  • Conformiq
  • Spec Explorer
Другие вопросы по тегам