Поделиться через


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

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

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

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

Чтобы помочь вам найти ошибки во время компиляции:

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

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

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

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

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

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

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

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

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

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

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

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

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