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

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

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

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

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

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

  2. На вкладке Apps кликните по стреле справа от раздела Apps.

    Под Model Verification, Validation, and Test нажмите Coverage Analyzer.

  3. На вкладке Coverage нажмите Settings.

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

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

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

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

  7. Нажмите OK.

  8. Нажмите Analyze Coverage.

    Чтобы открыть отчет покрытия, в разделе Review Results, нажимают Generate Report.

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

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

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

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

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

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

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

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

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

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

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

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

  2. На вкладке Design Verifier нажмите Test Generation Settings.

  3. В диалоговом окне Configuration Parameters, на панели Test Generation, в поле Model coverage objectives, выбирают MCDC.

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

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

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

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

  7. Нажмите OK.

  8. Нажмите Generate Tests.

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

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

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

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

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

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

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

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

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

Похожие темы