Входные параметры модели секционирования для инкрементальной генерации тестов

Как описано в Constrain Data, можно ограничить значения входов модели с помощью Simulink® Design Verifier™ блок Test Condition.

Как и другие параметры Simulink, значения ограничений могут быть разделены между несколькими блоками путем ссылки на общую переменную рабочей области; можно инициализировать значения ограничений с помощью MATLAB® команды. Если у вас есть несколько входов, связанных со скоростью, таких как желаемая скорость, измеренная скорость и средняя скорость, можно принять решение ограничить все они одним и тем же множеством значений.

В качестве передового метода для опытных программистов MATLAB можно использовать параметризованные ограничения и последующие запуски Simulink Design Verifier, чтобы реализовать метод инкрементальной генерации тестов:

  1. Входы модели разбиения, так что некоторые сохраняются постоянными, некоторые ограничены наборами констант, использующими блок Test Condition, а некоторые могут иметь любое значение.

  2. Сгенерируйте тесты и запустите эти тесты, чтобы собрать покрытие модели.

  3. Выберите новые значения и разделите входы этими новыми значениями.

  4. Сгенерируйте тесты для недостающего покрытия, используя sldvgencov функция и текущий тестовый охват.

    Примечание

    Чтобы просмотреть пример расширения существующего тестового набора для достижения отсутствующего покрытия модели, введите следующее в командной строке в Командном окне MATLAB:

    showdemo('sldvdemo_incremental_test_generation')

  5. Повторяйте шаги 3 и 4 до достижения требуемого покрытия.

Разделите входы модели, которые позволяют дальнейшее упрощение при запуске анализа. Рассмотрим следующую модель, которая имеет три взаимозависимые подсистемы:

  • Режим Normal Mode

  • Режим завершения работы

  • Тип отказа

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