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

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

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

Журнал начальных Тестов

Этот пример использует sldemo_mdlref_basic модель. Блок Model CounterA ссылается на модель 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Блок Model CounterC Simulation mode установлен на Acceleratorтак что вы не можете записать покрытие для него.

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

  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. В диалоговом окне Параметров конфигурации, на панели 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) условия изменили результат

Похожие темы