在部署期间测试驱动程序的提示

**应该何时开始测试?**一旦你对你的驱动程序有了要求,你就可以开始设计测试用例,以便测试是否实现了重要的要求。研究表明,缺陷停留在代码中的时间越长,在代码中查找和修复缺陷的开销就越大。与在发布和分发代码之后查找缺陷相比,在开发周期早期查找和修复缺陷开销较少并且破坏性较小。 尽早创建测试用例还会帮助你发现设计中的问题。

在部署期间进行测试的建议

请采用以下建议测试你的驱动程序代码和驱动程序包。

为了帮助你在编译时发现错误,请执行以下操作:

  • 使用功能角色类型声明你的驱动程序提供的回调函数并分派例程。这有助于提高代码分析和验证工具的精确性以及测试的时间效率。有关如何声明你的驱动程序提供的功能的详细信息,请参阅使用功能角色类型声明

  • 使用 Level4 (/W4) 警告选项编译你的代码。修复编译器检测到的警告将会提高驱动程序代码的质量,并且有助于在开发周期早期消除其他缺陷。

  • 使用 Microsoft 源代码批注语言 (SAL) 2.0 对你的代码进行批注。批注描述某个功能如何使用它的参数—对它们进行的假设,并且保证在完成之后实现该假设。批注还会提高代码分析工具的精确性。有关特定于驱动程序的批注的详细信息,请参阅驱动程序的 SAL 2.0 批注

  • 开发驱动程序时,使用用于验证驱动程序的工具。有关何时使用特定验证工具的指南,请参阅使用代码分析和验证工具分析驱动程序验证工具调查

若要测试驱动程序包,请执行以下操作:

  • 在开发过程的早期创建 INF 文件和驱动程序包并在整个测试过程中使用。

  • 使用 ChkINF 工具验证 INF 文件的结构和语法,并且可以帮助你诊断 INF 文件以及其他与安装相关的问题。

  • 使用 Inf2Cat 工具(具有 /nocat 选项)进行其他 INF 文件验证。 Inf2Cat 可以验证 INF 引用的文件是否存在以及是否位于 INF 预期的程序包目录中。

  • 签署驱动程序以便对驱动程序进行安装和测试,如在开发和测试期间签署驱动程序中所述。

  • 运行 DriverInstall 测试,该测试为 WDK 中提供的设备基本测试的一部分。 请参阅如何使用 Visual Studio 在运行时测试驱动程序如何选择和配置设备基本测试。DriverInstall**** 测试可以在将驱动程序部署到测试计算机之后运行。 可以将 DriverInstall 测试添加到驱动程序测试组中。DriverInstall**** 测试显示在 All Tests\Basic\Device Fundamentals\DriverInstall 下的“驱动程序测试类别”中。 也可以使用 IWDTFDriverPackageAction2 接口编写自己的测试。

  • 使用设备管理器对设备安装问题进行疑难解答,以通过查看 SetupAPI 日志查看有关驱动程序和设备的系统信息。SetupAPI 日志包含有关在安装设备或驱动程序期间发生的操作序列的信息。

    使用 Visual Studio 和 WDK,你可以在将驱动程序部署到测试计算机时测试和解决驱动程序包安装问题,请参阅将驱动程序部署到测试计算机。 从驱动程序包项目的部署属性中选择“安装并验证”选项。当选择该选项并指定“默认驱动程序包安装任务(可能会重新启动)”****或“默认打印机驱动程序包安装任务(可能会重新启动)”时,测试将读取驱动程序的 INF 文件并安装驱动程序。然后,此测试验证驱动程序是否已启动以及是否正在运行。完成后,此测试提供有关此安装任务成功或失败的详细信息。 结果显示在“驱动程序测试组资源管理器”****的 Driver Test Groups > Driver Installation 下。任务名称为“默认的驱动程序包安装任务”。

若要在运行时测试驱动程序,请执行以下操作: