Устраните основанные на требованиях проблемы тестирования

В этом примере показано, как решить общие проблемы трассируемости в требованиях модели и тестах при помощи Модели, Тестирующей Инструментальную панель. Инструментальная панель анализирует артефакты тестирования в проекте и сообщает о метрических данных по качеству и измерениям полноты, таким как трассируемость и покрытие, которые отражают инструкции в признанных промышленностью стандартах разработки программного обеспечения, таких как ISO 26262 и DO - 178C. Виджеты инструментальной панели обобщают данные так, чтобы можно было отследить основанное на требованиях тестирование, прогрессируют и фиксируют разрывы, которые подсвечивает инструментальная панель. Можно кликнуть по виджетам, чтобы открыть таблицы с подробной информацией, где можно найти и зафиксировать артефакты тестирования, которые не соответствуют соответствующим стандартам.

Соберите метрики для артефактов тестирования в проекте

Отображения инструментальной панели, тестирующие данные на модель и артефакты, до которых прослеживает модель в рамках проекта. В данном примере откройте проект и соберите метрические данные для артефактов.

  1. Откройте проект. В командной строке введите dashboardCCProjectStart.

  2. Откройте инструментальную панель. На вкладке Project нажмите Model Testing Dashboard.

  3. Если вы ранее не открыли инструментальную панель для проекта, инструментальная панель должна идентифицировать артефакты в проекте и проследить их до моделей. Чтобы запустить анализ и собрать метрические результаты, нажмите Trace и Collect All.

  4. В панели Артефактов инструментальная панель организует модульные модели под моделями компонента, которые содержат их в иерархии модели. Артефакты, такие как требования, тесты и результаты испытаний появляются в соответствии с модульными моделями, до которых они прослеживают. Просмотрите метрические результаты для модели db_DriverSwRequest. В панели Артефактов кликните по имени модели. Инструментальная панель заполняет виджеты с данными из нового метрического набора для модели.

Можно использовать оверлейные программы в Модели, Тестирующей Инструментальную панель, чтобы видеть, совместимы ли метрические результаты для виджета, несовместимы, или генерируют предупреждение, что метрические результаты должны быть рассмотрены. Результаты совместимы, если они показывают полную трассируемость, тестируют завершение или покрытие модели. В разделе Overlays гарантируйте, что кнопки Compliant и Non-Compliant нажимаются. Наложение появляется на виджетах, которые имеют результаты в той категории. Вы видите общее количество виджетов в каждой категории податливости в верхнем правом углу инструментальной панели.

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

Можно скрыть значки наложения путем нажатия на выбранную категорию в разделе Overlays.

Для получения дополнительной информации о порогах податливости для каждой метрики см., что Модель Тестирует Метрики (Simulink Check).

Соедините Требование с его Реализацией в Модели

На панели Артефактов папка Untraced показывает артефакты, которые не прослеживают до модульных моделей в проекте. Можно проверять артефакты в эту папку, чтобы видеть, существуют ли какие-либо требования, которые должны быть реализованы моделями, но являются недостающими звеньями. В данном примере соедините одно из этих требований к блоку модели, который реализует его, и обновите панель Артефактов, чтобы отразить ссылку.

  1. В панели Артефактов перейдите к требованию, Непрослеженному> Функциональные требования> db_req_func_spec.slreqx > Переключите приоритет.

  2. Откройте требование в Редакторе Требований. На панели Артефактов дважды кликните приоритет Переключателя. Это требование описывает порядок, в котором принимает меры система круиз-контроля, если несколько переключателей включены одновременно. Сохраните Редактор Требований открытым с требованием выбранный.

  3. Откройте модель db_Controller. Чтобы открыть модель из Модели, Тестирующей Инструментальную панель, в панели Артефактов, расширяют папку db_Controller> Проект и дважды кликают db_Controller.slx.

  4. Блок Model DriverSwRequest ссылается на модель db_DriverSwRequest, который управляет порядком, в котором принимает меры система круиз-контроля, когда переключатели включены. Соедините этот блок модели с требованием. Щелкните правой кнопкой по блоку модели и выберите Requirements > Link to Selection in Requirements Browser.

  5. Сохраните модель. На вкладке Simulation нажмите Save.

  6. Сохраните набор требований. В Редакторе Требований нажмите значок Save.

  7. Чтобы обновить информацию о трассируемости артефакта, в Модели, Тестирующей Инструментальную панель, нажимают Trace Artifacts.

Телевикторины Артефактов требование приоритета Переключателя под db_Controller> Функциональные требования> db_req_func_spec.slreqx. Затем найдите проблемы трассируемости в артефактах путем сбора метрик в инструментальной панели.

Решите проблемы трассируемости тестирования

Откройте инструментальную панель для модуля db_DriverSwRequest путем нажатия на имя модуля в панели Артефактов. Поскольку вы изменили файл требований путем добавления ссылки, виджеты инструментальной панели подсвечены в сером, чтобы показать, что результаты могут представлять устаревшие данные. Чтобы обновить результаты для модуля, нажмите Collect Results.

Виджеты в разделе Test Case Analysis инструментальной панели показывают данные о требованиях модели, тестах для модели и ссылках между ними. Виджеты указывают, существуют ли разрывы в тестировании и трассируемости для реализованных требований.

Соедините требования и тесты

В модели db_DriverSwRequest, раздел Requirements Linked to Tests показывает, что некоторые требования в модели являются недостающими звеньями к тестам. Исследуйте требования путем нажатия на один из виджетов инструментальной панели. Затем используйте ссылки в таблице, чтобы открыть артефакты и устранить проблемы трассируемости.

Чтобы видеть подробную информацию о расцепляемых требованиях, в разделе Requirements Linked to Tests, кликают по Расцепляемому виджету. Таблица показывает требования, которые реализованы в модели, но не имеют ссылок на тест. Таблица отфильтрована, чтобы показать только требования, которые являются недостающими звеньями к тестам. В данном примере соедините тест для требования Set Switch Detection.

  1. Откройте требование в Редакторе Требований. В таблице нажмите Set Switch Detection.

  2. В Редакторе Требований исследуйте детали требования. Это требование описывает поведение Set переключитесь, когда это будет нажато. Сохраните требование выбранным в Редакторе Требований.

  3. Проверяйте, существует ли уже тест для поведения переключателя. Возвратиться к метрическим результатам, наверху Модели, Тестирующей Инструментальную панель, db_DriverSwRequest нажатия кнопки. Раздел Tests Linked to Requirements показывает, что один тест не соединяется с требованиями.

  4. Чтобы видеть расцепляемые тесты, в разделе Tests Linked to Requirements, нажимают Unlinked.

  5. Чтобы открыть тест в менеджере по Тесту, в таблице, кликают по тесту Set button. Тест проверяет поведение Resume switch. Если бы уже не было теста для переключателя, вы добавили бы тест при помощи менеджера по Тесту.

  6. Соедините тест с требованием. В менеджере по Тесту, для теста, расширяют раздел Requirements. Нажмите Add> Link to Selected Requirement. Ссылка трассируемости указывает что тест Set button проверяет требование Set Switch Detection.

  7. Метрические результаты в инструментальной панели отражают только сохраненные файлы артефакта. Сохранить тестовый набор db_DriverSwRequest_Tests.mldatx, в Тестовом Браузере щелкните правой кнопкой по db_DriverSwRequest_Tests и нажмите Save.

  8. Сохраните файл требований db_req_func_spec.slreqx. В Редакторе Требований нажмите кнопку Save.

Затем обновите метрические данные в инструментальной панели, чтобы видеть эффект добавления ссылки.

Обновите метрические результаты в инструментальной панели

Обновите метрические результаты в Модели, Тестирующей Инструментальную панель так, чтобы они отразили ссылку трассируемости между требованием и тестом.

  1. Чтобы анализировать изменения артефакта в Модели, Тестирующей Инструментальную панель, нажмите Trace Artifacts. Кнопка включена, когда существуют изменения в артефактах проекта, которые не анализировала инструментальная панель.

  2. Наверху инструментальной панели Устаревший Метрический значок указывает в наименьшем количестве одного метрического виджета, показывает устаревшие данные для модели. Виджеты, которые показывают устаревшие метрические данные, кажутся подсвеченными в сером. Чтобы обновить виджеты, вспомните метрические данные для модели путем нажатия на Collect Results.

Аналитические виджеты Теста показывают, что существует 11 остающихся расцепляемых требований. Раздел Tests Linked to Requirements показывает, что нет никаких расцепляемых тестов. Как правило, прежде, чем запустить тесты, вы исследуете и решаете эти проблемы трассируемости тестирования путем добавления тестов и соединения их с требованиями. В данном примере оставьте расцепляемые артефакты и продолжите к следующему шагу запущения тестов.

Протестируйте модель и анализируйте отказы и разрывы

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

Выполните модульное тестирование

Запустите тесты для модели при помощи менеджера по Тесту. Сохраните результаты как артефакт в проекте и рассмотрите их в Модели, Тестирующей Инструментальную панель.

  1. Откройте модульные тесты на модель в менеджере по Тесту. В Модели, Тестирующей Инструментальную панель, в панели Артефактов, расширяют модель db_DriverSwRequest. Расширьте папку Test Cases и дважды кликните тестовый файл db_DriverSwRequest_Tests.mldatx.

  2. В менеджере по Тесту нажмите Run.

  3. Чтобы использовать результаты испытаний в Модели, Тестирующей Инструментальную панель, экспортируйте результаты испытаний и сохраните файл в проекте. На вкладке Tests, в разделе Results, нажимают Export. Назовите файл результатов Results1.mldatx и сохраните файл под корневой папкой проекта.

Модель, Тестирующая Инструментальную панель, обнаруживает, что вы экспортировали результаты и автоматически обновляете панель Артефактов, чтобы отразить новые результаты. Виджеты в разделе Test Result Analysis подсвечены в сером, чтобы указать, что они показывают устаревшие данные. Чтобы обновить данные в виджетах инструментальной панели, нажмите Collect Results.

Обратитесь к отказам тестирования и разрывам

В модели db_DriverSwRequest, раздел Model Test Status указывает, что один не пройдено тест и один тест были отключены во время последнего тестового прогона. Откройте тесты и устраните эти проблемы.

  1. Чтобы просмотреть отключенный тест, в инструментальной панели, кликают по Отключенному виджету. Таблица показывает отключенные тесты для модели.

  2. Откройте отключенный тест в менеджере по Тесту. В таблице кликните по тесту Decrement button hold.

  3. Включите тест. В Тестовом Браузере щелкните правой кнопкой по тесту и нажмите Enabled. Сохраните файл тестового набора.

  4. Чтобы просмотреть проваленный тест, в инструментальной панели, кликают по Не пройдено виджету.

  5. Откройте проваленный тест в менеджере по Тесту. В таблице кликните по тесту Cancel button.

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

Проверяйте, осуществили ли тесты, которые вы запустили полностью, проект модели при помощи метрик покрытия. В данном примере раздел Model Coverage инструментальной панели указывает, что некоторые условия в модели не были покрыты. Установите свой курсор на панель в виджете, чтобы видеть, какой процент покрытия условия был достигнут. В данном примере 86,4% решений был покрыт тестами, и 4,55% решений был выровнен по ширине в фильтре покрытия.

  1. Посмотрите детали Decision Coverage. Кликните по панели Решения.

  2. В таблице расширьте артефакт модели. Таблица показывает результаты теста для модели и файла результатов, который содержит их. Откройте файл результатов Results1.mldatx в менеджере по тесту.

  3. Чтобы видеть подробные результаты покрытия, откройте модель в перспективе Покрытия. В менеджере по Тесту, в разделе Aggregated Coverage Results, в Анализируемом столбце Модели, нажимают db_DriverSwRequest.

  4. Выделение покрытия на модели показывает вопросы, на которые не ответили тесты. Для вопроса, на который не отвечают, добавьте тест, который покрывает его. Найдите требование, которое реализовано элементом модели или, если нет ни одного, добавьте требование для него. Соедините новый тест с требованием. Если на вопрос нельзя ответить, выровняйте по ширине недостающее покрытие при помощи фильтра. В данном примере не фиксируйте недостающее покрытие.

Если вы обновили модульные тесты, чтобы обратиться к отказам и разрывам, запускаете тесты и сохраняете результаты. Затем исследуйте результаты путем сбора метрик в инструментальной панели.

Итеративное основанное на требованиях тестирование с моделью, тестирующей инструментальную панель

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