Выполните функциональное тестирование и анализируйте тестовое покрытие

Функциональное тестирование начинается с создания тестов на основе требований. Эти тесты могут покрыть ключевые аспекты вашего проекта и проверить, что отдельные компоненты модели удовлетворяют требования. Тесты включают входные параметры, ожидал выходные параметры и критерии допустимости.

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

Инкрементно увеличьте тестовое покрытие Используя генерацию теста

Этот пример показывает функциональный основанный на тестировании рабочий процесс тестирования для модели круиз-контроля. Вы запускаете с модели, которая имеет тесты, соединенные с внешним документом требований, анализируйте модель для покрытия в Simulink® Coverage™, инкрементно увеличьте покрытие с Simulink Design Verifier™ и сообщите о результатах.

Исследуйте тестовую обвязку и модель

  1. Создайте копию проекта в рабочей папке. В командной строке, введите:

    path = fullfile(matlabroot,'toolbox','shared','examples',...
    'verification','src','cruise')
    run(fullfile(path,'slVerificationCruiseStart'))

  2. Откройте модель и тестовую обвязку. В командной строке, введите:

    open_system simulinkCruiseAddReqExample
    sltest.harness.open('simulinkCruiseAddReqExample','SafetyTest_Harness1')
  3. Загрузите тестовый набор от Тестовой модели Против Результатов Отчета и Требований. В командной строке, введите:

    sltest.testmanager.load('slReqTests.mldatx')
    sltest.testmanager.view

  4. Откройте тестовый блок последовательности. Тесты последовательности:

    • То, что система расцепляет, когда педаль тормоза нажимается

    • То, что система расцепляет, когда скорость превышает предел

    Некоторые тестовые шаги последовательности соединяются с документом требований simulinkCruiseChartReqs.docx.

Измерьте покрытие модели

  1. В менеджере по Тесту включите набор покрытия для теста.

    1. Откройте менеджера по Тесту. В меню Simulink нажмите Analysis> Test Manager.

    2. В Test Browser кликните по тестовому файлу slReqTests.

    3. Расширьте Coverage Settings.

    4. Под Coverage to Collect выберите Record coverage for referenced models.

      Вы задаете фильтр покрытия, чтобы использовать для анализа покрытия при помощи поля Coverage filter filename. Настройка по умолчанию соблюдает образцовые настройки параметра конфигурации. Отъезд поля Coverage filter filename пустые присоединения никакой фильтр покрытия.

    5. Под Coverage Metrics выберите Decision, Condition и MCDC.

  2. Запустите тест. На менеджере по Тесту панель инструментов нажмите Run.

  3. Когда тест закончится в менеджере по Тесту, перейдите к тесту. Агрегированные результаты покрытия показывают, что модель в качестве примера достигает 50% Decision Coverage, 41%-го покрытия условия и 25%-го покрытия MCDC.

Сгенерируйте тесты, чтобы увеличить покрытие модели

  1. Используйте Simulink Design Verifier, чтобы сгенерировать дополнительные тесты, чтобы увеличить покрытие модели. Выберите тест в Results and Artifacts и откройте агрегированный раздел результатов покрытия.

  2. Выберите результаты испытаний из предыдущего раздела и затем нажмите Add Tests for Missing Coverage.

    Открытые опции Add Tests for Missing Coverage.

  3. Под Harness выберите Create a new harness.

  4. Нажмите OK, чтобы добавить тесты в тестовый набор с помощью Simulink Design Verifier.

  5. Запустите обновленный тестовый набор. На менеджере по Тесту панель инструментов нажмите Run. Результаты испытаний включают покрытие для объединенных входных параметров теста, достигая увеличенного покрытия модели.

Похожие темы