Исправление проблем проверки на основе требований

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

Сбор метрик для программных продуктов проверки в проекте

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

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

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

  3. Если вы ранее не открывали инструментальную панель для проекта, инструментальная панель должна идентифицировать программные продукты в проекте и проследить их до моделей. Чтобы запустить анализ и собрать результаты метрики, щелкните Трассировка и Собрать все.

  4. На панели « Программных продуктах» инструментальная панель организует программные продукты, такие как требования, контрольные примеры и результаты тестов, в моделях, которые они отслеживают. Просмотрите результаты метрики для модели db_DriverSwRequest. На панели « Программных продуктах» щелкните имя модели. Инструментальная панель заполняет виджеты данными из последнего набора для модели.

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

Связать требование с его реализацией в модели

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

  1. На панели « Программные продукты» перейдите к требованию Untraced > Функциональные Требования > db_req_func_spec.slreqx > Приоритет переключения.

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

  3. Откройте модель db_Controller. Чтобы открыть модель из панели инструментов Model Testing, на панели Artifacts, разверните папку db_Controller > Design и дважды кликните db_Controller.slx.

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

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

  6. Сохраните набор требований. В редакторе требований щелкните значок «Сохранить».

  7. Чтобы обновить информацию о трассируемости программного продукта, на панели инструментов тестирования модели нажмите Проследить программные продукты.

Панель « Программные продукты» показывает требование приоритета Switch в разделе db_Controller > Функциональные требования > db_req_func_spec.slreqx. Затем найдите трассируемость проблемы в программных продуктах, собрав метрики в панели мониторинга.

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

Откройте инструментальную панель для db_DriverSwRequest компонента, щелкнув имя компонента на панели « Программных продуктах». Поскольку файл требований был изменен путем добавления ссылки, виджеты панели мониторинга подсвечиваются серым цветом, чтобы показать, что результаты могут представлять устаревшие данные. Чтобы обновить результаты для компонента, щелкните Собрать результаты (Collect Results).

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

Ссылка и Тесты

В модель db_DriverSwRequestРаздел «Требования, связанные с тестами» показывает, что в некоторых требованиях модели отсутствуют ссылки на тесты. Проверьте требования, щелкнув один из виджетов инструментальной панели. Затем используйте ссылки в таблице, чтобы открыть программные продукты и исправить проблемы с трассируемостью.

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

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

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

  3. Проверьте, есть ли тест для поведения коммутатора. Чтобы вернуться к результатам метрики, в верхней части панели управления тестирования модели, нажмите db_DriverSwRequest. Раздел «Тесты, связанные с требованиями» показывает, что один тест не связан с требованиями.

  4. Чтобы увидеть незакрытые тесты, в разделе «Тесты, связанные с требованиями» нажмите «Разблокированные».

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

  6. Привязать тест к требованию. В Диспетчере тестов для тестового примера разверните раздел Requirements. Щелкните Добавить > Связать с выбранным требованием. Трассируемость ссылки указывает, что тест Set button проверяет требование Set Switch Detection.

  7. Результаты метрики на инструментальной панели отражают только сохраненные файлы программных продуктов. Чтобы сохранить тестовый набор db_DriverSwRequest_Tests.mldatx, в браузере тестов щелкните правой кнопкой мыши db_DriverSwRequest_Tests и нажмите «Сохранить».

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

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

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

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

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

  2. В верхней части инструментальной панели значок «Устаревшие метрики» указывает, что по крайней мере один виджет метрики показывает устаревшие данные для модели. Виджеты, которые показывают устаревшие метрические данные, подсвечиваются серым цветом. Чтобы обновить виджеты, повторно соберите метрические данные для модели, нажав Собрать результаты (Collect Results).

Виджеты Теста Analysis показывают, что остается 11 незарегистрированных требований. Раздел «Тесты, связанные с требованиями» показывает, что нет незарегистрированных тестов. Как правило, перед запуском тестов вы исследуете и решаете эти проблемы трассируемости проверки, добавляя тесты и связывая их с требованиями. В данном примере оставьте незарегистрированные программные продукты и перейдите к следующему шагу запуска тестов.

Тестируйте модель и анализируйте отказы и погрешности

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

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

Запустите контрольные примеры для модели с помощью Диспетчера тестов. Сохраните результаты как программный продукт в проекте и проверьте их на панели мониторинга тестирования модели.

  1. Откройте модульные тесты для модели в Диспетчере тестов. На панели инструментов тестирования модели, на панели Artifacts, разверните модель db_DriverSwRequest. Разверните папку Тесты и дважды кликните тестовый файл db_DriverSwRequest_Tests.mldatx.

  2. В Диспетчере тестов нажмите Запуск.

  3. Чтобы использовать результаты тестирования в панели мониторинга тестирования модели, экспортируйте результаты тестирования и сохраните файл в проекте. На вкладке Тесты, в разделе Результаты, нажмите Экспортировать. Назовите файл результатов Results1.mldatx и сохраните файл в корневой папке проекта.

Панель мониторинга тестирования модели обнаруживает, что результаты были экспортированы, и автоматически обновляет панель « Программные продукты», отражая новые результаты. Виджеты в разделе «Анализ результатов тестирования» выделены серым цветом, чтобы указать, что они показывают устаревшие данные. Чтобы обновить данные в виджетах инструментальной панели, щелкните Собрать результаты (Collect Results).

Устраните отказы и погрешности проверки

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

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

  2. Откройте отключенный тест в Диспетчере тестов. В таблице щелкните тест Decrement button hold.

  3. Включите тест. В браузере тестов щелкните правой кнопкой мыши контрольный пример и выберите Включено. Сохраните файл тестового набора.

  4. Чтобы просмотреть неудачный тест, на инструментальной панели щелкните значок Сбой (Failed).

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

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

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

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

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

  3. Чтобы увидеть подробные результаты покрытия, откройте модель в перспективе покрытия. В Диспетчере тестов, в разделе Агрегированные результаты покрытия, в столбце Анализируемая модель, нажмите db_DriverSwRequest.

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

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

Итерационная проверка на основе требований с помощью панели мониторинга тестирования модели

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