Советы по тестированию драйверов во время разработки

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

Рекомендации по тестированию во время разработки

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

Чтобы упростить поиск ошибок во время компиляции, выполните следующие действия.

  • Объявите предоставляемые драйвером функции обратного вызова и подпрограммы диспетчеризации с помощью типов ролей функций. Это помогает повысить точность средств анализа и проверки кода и эффективность тестового времени. Дополнительные сведения о том, как объявить функции, предоставляемые драйвером, см. в разделе Использование объявлений типов роли функции.

  • Скомпилируйте код с помощью параметра Предупреждения уровня 4 (/W4). Исправление предупреждений, обнаруженных компилятором, повысит качество кода драйвера и поможет устранить дополнительные дефекты на ранних этапах цикла разработки.

  • Создание заметок к коду с помощью языка заметок к исходному коду Майкрософт (SAL) 2.0. В заметках описывается, как функция использует свои параметры — предположения, которые она делает о них, и гарантии, которые она делает после завершения. Заметки также повышают точность средств анализа кода. Дополнительные сведения о заметках для конкретных драйверов см. в статье Заметки SAL 2.0 для драйверов.

  • Используйте средства для проверки драйверов во время разработки драйвера. Рекомендации по использованию конкретных средств проверки см. в статье Анализ драйвера с помощью средств анализа кода и проверки.

Чтобы протестировать пакет драйверов, выполните приведенные далее действия.

  • Создайте INF-файл и пакет драйверов на ранних этапах разработки и используйте его во время тестирования.

  • Используйте средство InfVerif для проверки структуры и синтаксиса INF-файла, а также для диагностики INF-файла и других проблем, связанных с установкой.

  • Используйте средство Inf2Cat (с параметром /nocat ), чтобы выполнить дополнительную проверку INF-файла. Inf2Cat может убедиться, что файлы, на которые ссылается INF, присутствуют и помещаются в каталог пакета, как ожидает inf.

  • Подписывание драйверов для упрощения установки и тестирования драйверов, как описано в разделе Подписывание драйверов во время разработки и тестирования.

  • Запустите тест DriverInstall , который входит в состав тестов Device Fundamental, которые предоставляются в WDK. См. статьи Тестирование драйвера во время выполнения с помощью Visual Studio и Выбор и настройка основных тестов устройств. Тест DriverInstall можно запустить после развертывания драйвера на тестовом компьютере. Вы можете добавить тест DriverInstall в группу тестов драйверов. Тест DriverInstall отображается в разделе Категории тестов драйвера в разделе Все тесты\Basic\Device Fundamentals\DriverInstall.

  • Устранение неполадок с установкой устройств с помощью диспетчер устройств для просмотра сведений о системе о драйверах и устройствах, а также путем просмотра журнала SetupAPI. Журнал SetupAPI содержит сведения о последовательности операций, выполненных во время установки устройства или драйвера.

    С помощью Visual Studio и WDK можно тестировать установку пакета драйверов и устранять неполадки при развертывании драйвера на тестовом компьютере. См. статью Развертывание драйвера на тестовом компьютере. Выберите параметр Установить и проверить в свойствах развертывания для проектов пакетов драйверов. Если выбрать этот параметр и указать задачу установки пакета драйвера по умолчанию (возможная перезагрузка) или Задачу установки пакета драйвера принтера по умолчанию (возможная перезагрузка), тест считывает INF-файл драйвера и устанавливает драйвер. Затем тест проверяет, работает ли драйвер. По завершении теста предоставляются подробные сведения об успешном или неудачном выполнении задачи установки. Результаты отображаются в Обозреватель "Группа тестирования драйверов" в разделе "Группы тестирования > драйверов" Установка драйвера. Имя задачи — Задача установки пакета драйвера по умолчанию.

Чтобы протестировать драйвер во время выполнения, выполните приведенные далее действия.