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

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

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

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

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

  • Объявите предоставляемые драйвером функции обратного вызова и диспетчерские процедуры, используя типы ролей функций. Это заявление помогает повысить точность средств анализа кода и средств проверки, а также эффективность тестового времени. Дополнительные сведения об объявлении функций, предоставляемых драйвером, см. в разделе "Использование объявлений типов ролей функции".
  • Скомпилируйте ваш код, используя параметр Предупреждения уровня 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-файл драйвера и устанавливает драйвер. Затем тест проверяет, запущен ли драйвер. По завершении тест содержит подробные сведения об успешном выполнении или сбое задачи установки. Результаты отображаются в обозревателе группы тестирования драйверов в разделе "Установка драйверов для групп > тестирования". Имя задачи — задача установки пакета драйверов по умолчанию.

Проверьте драйвер во время выполнения: