Расширьте тесты для системы с обратной связью

Предположим, что у вас есть модель с контроллером с обратной связью в модели, на которую ссылается блок Model. Вы не записываете 100%-е покрытие для модели, на которую ссылаются. Расширение существующих тестов может помочь вам достигнуть 100%-го покрытия. Программное обеспечение Simulink® Design Verifier™ добавляет время шаги к существующим тестам при анализе контроллера, реализованного моделью, на которую ссылаются. Тесты, которые следуют из анализа реалистично, отражают непрерывное поведение времени, ожидаемое в контроллере с обратной связью.

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

Регистрируйте стартовый тест

Этот пример использует модель sldemo_mdlref_basic. Блок Model CounterA ссылается на модель sldemo_mdlref_counter. Когда вы моделируете родительскую модель, sldemo_mdlref_basic, и собираете покрытие, вы записываете только 75%-е покрытие для sldemo_mdlref_counter. Регистрируйте данные от симуляции и расширьте те тесты, чтобы достигнуть 100%-го покрытия для модели, на которую ссылаются.

  1. Откройте модель в качестве примера:

  2. В Редакторе Simulink выберите Analysis> Coverage> Settings.

  3. В панели Coverage Параметров конфигурации выберите Enable coverage analysis.

  4. Выберите Referenced Models

    Обратите внимание на то, что анализ записывает покрытие только для моделей, на которые ссылаются, с набором Simulation mode к Normal, SIL или PIL. В sldemo_mdlref_basic блоку Model CounterC установили Simulation mode на Accelerator, таким образом, вы не можете записать покрытие для него.

  5. Под Coverage metrics, набор уровень структурного покрытия к Modified Condition Decision Coverage (MCDC), чтобы записать решение, условие и измененное условие/Decision Coverage.

  6. Нажмите OK.

  7. Моделируйте модель.

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

    • Условие: 50% (2/4) результаты условия

    • Решение: 25% (1/4) результаты решения

    • MCDC: 0% (0/2) условия инвертировали результат

    Результаты покрытия также подсвечены в модели, на которую ссылаются, sldemo_mdlref_counter. Можно выбрать отдельные объекты модели, чтобы просмотреть определенные результаты покрытия в диалоговом окне Coverage, как показано в следующем снимке экрана.

  8. Чтобы регистрировать входные сигналы для блока Model CounterA в sldemo_mdlref_basic во время симуляции, в командной строке MATLAB®, вводят следующий код:

    logged_data = sldvlogsignals('sldemo_mdlref_basic/CounterA');
  9. Сохраните записанные данные в MAT-файле под названием existingtestcase.mat:

    save('existingtestcase.mat', 'logged_data');

    Когда вы анализируете модель, на которую ссылаются в CounterA (sldemo_mdlref_counter), чтобы расширить существующие тесты, вы задаете этот MAT-файл.

Расширьте существующие тесты

Анализируйте модель sldemo_mdfref_counter, указывая, что анализ расширяет тесты, уже удовлетворенные:

  1. Чтобы открыть модель sldemo_mdfref_counter, в модели sldemo_mdlref_basic, дважды кликают блок Model CounterA.

  2. В Редакторе Simulink выберите Analysis> Design Verifier> Options.

  3. В диалоговом окне Configuration Parameters, на панели Select, под Design Verifier, выбирают Test Generation.

  4. На панели Test Generation, в поле Model coverage objectives, выбирают MCDC.

  5. Под Existing test cases выберите Extend existing test cases.

  6. В поле Data file задайте имя MAT-файла, который содержит записанные данные, в этом случае, existingtestcase.mat.

  7. Очистите Ignore objectives satisfied by existing test cases.

    Когда вы очищаете эту опцию, программное обеспечение включает тесты, зарегистрированные в файл existingtestcase.mat в комплекте завершающего испытания.

  8. Нажмите OK.

  9. В Редакторе Simulink выберите Analysis> Design Verifier> Generate Tests> Model.

    Анализ сначала загружает цели, удовлетворенные регистрируемыми тестами. Затем это добавляет, что дополнительное время продвигается в те тесты и пытается удовлетворить любые недостающие цели. Когда анализ завершается, логарифмическое окно Simulink Design Verifier открывает и указывает, что удовлетворены все 12 целей.

  10. Чтобы просмотреть результаты анализа на модели, в логарифмическом окне Simulink Design Verifier, выбирают Highlight analysis results on model.

    Результаты Simulink Design Verifier подсвечены в модели, на которую ссылаются, sldemo_mdlref_counter. Можно выбрать отдельные объекты модели, чтобы просмотреть определенные результаты анализа в диалоговом окне Simulink Design Verifier Results, как показано в следующем снимке экрана.

  11. Чтобы проверить результаты анализа и рассмотреть сгенерированные тесты, в логарифмическом окне Simulink Design Verifier, выбирают Generate detailed analysis report.

  12. Чтобы собрать покрытие модели с помощью расширенного тестового набора, в логарифмическом окне Simulink Design Verifier, выбирают Simulate tests and produce a model coverage report.

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

    • Условие: 100% (4/4) результаты условия

    • Решение: 100% (4/4) результаты решения

    • MCDC: 100% (2/2) условия инвертировали результат

Похожие темы