Dicas para testar drivers durante o desenvolvimento
Quando você deve começar a testar? Assim que tiver os requisitos para o driver, você poderá começar a criar casos de teste para testar se os requisitos críticos foram implementados. Estudos mostram que encontrar e corrigir defeitos no código torna-se mais caro quanto mais tempo os defeitos permanecem no código. Localizar e corrigir defeitos no início do ciclo de desenvolvimento é menos caro e disruptivo do que encontrar defeitos depois que o código foi liberado e distribuído. Criar seus casos de teste antecipadamente também pode ajudá-lo a encontrar problemas em seu design.
Sugestões para teste durante o desenvolvimento
Use as sugestões a seguir para testar o código do driver e o pacote de driver.
Para ajudá-lo a encontrar bugs em tempo de compilação:
Declare as funções de retorno de chamada fornecidas pelo driver e as rotinas de expedição usando tipos de função-função. Isso ajuda a melhorar a precisão das ferramentas de análise e verificação de código e a eficácia do tempo de teste. Para obter mais informações sobre como declarar suas funções fornecidas pelo driver, consulte Usando declarações de tipo de função.
Compile seu código usando a opção Avisos level4 (/W4 ). Corrigir avisos detectados pelo compilador aumentará a qualidade do código do driver e ajudará a eliminar defeitos adicionais no início do ciclo de desenvolvimento.
Anote seu código usando a SAL (linguagem de anotação de código-fonte) 2.0 da Microsoft. As anotações descrevem como uma função usa seus parâmetros — as suposições que ela faz sobre eles e as garantias que ela faz quando termina. As anotações também melhoram a precisão das ferramentas de análise de código. Para obter mais informações sobre as anotações específicas do driver, consulte Anotações de SAL 2.0 para drivers.
Use as ferramentas para verificar drivers enquanto você está desenvolvendo seu driver. Para obter diretrizes sobre quando usar ferramentas de verificação específicas, consulte Analisando um driver usando ferramentas de análise e verificação de código.
Para testar seu pacote de driver:
Crie o arquivo INF e o pacote de driver no início do processo de desenvolvimento e use-o durante todo o teste.
Use a ferramenta InfVerif para verificar a estrutura e a sintaxe do arquivo INF e para ajudá-lo a diagnosticar o arquivo INF e outros problemas relacionados à instalação.
Use a ferramenta Inf2Cat (com a opção /nocat ) para fazer verificação de arquivo INF adicional. O Inf2Cat pode verificar se os arquivos referenciados pelo INF estão presentes e colocados no diretório do pacote como o INF espera que estejam.
Conecte drivers para facilitar a instalação e o teste de drivers, conforme descrito em Drivers de assinatura durante o desenvolvimento e teste.
Execute o teste DriverInstall incluído como parte dos testes fundamentais do dispositivo fornecidos no WDK. Consulte Como testar um driver em runtime usando o Visual Studio e Como selecionar e configurar os Testes Fundamentais do Dispositivo. O teste DriverInstall pode ser executado depois que o driver tiver sido implantado no computador de teste. Você pode adicionar o teste DriverInstall a um Grupo de Testes de Driver. O teste DriverInstall aparece nas Categorias de Teste de Driver em Todos os Testes\Básico\Conceitos Básicos do Dispositivo\DriverInstalar.
Solucione problemas de instalação do dispositivo usando Gerenciador de Dispositivos para exibir informações do sistema sobre drivers e dispositivos e consultando o log setupAPI. O log setupAPI contém informações sobre a sequência de operações que ocorreram durante a instalação de um dispositivo ou driver.
Usando o Visual Studio e o WDK, você pode testar e solucionar problemas de instalação do pacote de driver ao implantar o driver em um computador de teste, consulte Implantando um driver em um computador de teste. Selecione a opção Instalar e Verificar nas Propriedades de Implantação para Projetos de Pacote de Driver. Quando você seleciona essa opção e especifica a Tarefa de Instalação do Pacote de Driver Padrão (possível reinicialização) ou a Tarefa de Instalação do Pacote de Driver de Impressora Padrão (possível reinicialização), o teste lê o arquivo INF do driver e instala o driver. Em seguida, o teste verifica se o driver está em execução. Após a conclusão, o teste fornece informações detalhadas sobre o êxito ou a falha da tarefa de instalação. Os resultados são mostrados no grupo de testes de driver Explorer, em Instalação do driver de grupos > de testes de driver. O nome da tarefa é Tarefa de Instalação do Pacote de Driver Padrão.
Para testar o driver em tempo de execução:
Execute os testes fundamentais do dispositivo incluídos no WDK. Consulte Como testar um driver em runtime usando o Visual Studio e Como selecionar e configurar os Testes Fundamentais do Dispositivo.
Configure um depurador para que você possa solucionar problemas e depurar os resultados do teste. Para obter mais informações, consulte Introdução com a Depuração do Windows.
Habilitar o Verificador de Driver nos computadores de teste que você usa para implantação, consulte Propriedades do Verificador de Driver para Projetos de Driver. Selecione a opção De verificação de conformidade da DDI . Se o driver falhar na verificação de Conformidade da DDI, execute o Verificador de Driver Estático e especifique a regra ou as regras que causaram a falha. O Verificador de Driver Estático pode ajudá-lo a localizar a causa do bug em seus arquivos de origem.
Teste seu driver e dispositivo em quantas configurações de hardware diferentes você puder. Variar o hardware pode ajudá-lo a encontrar conflitos entre dispositivos e outros erros nas interações do dispositivo. Por exemplo, você deve testar seu driver e dispositivo em computadores com arquiteturas de processador diferentes e em computadores que executam versões de 32 bits e 64 bits do Windows.
Teste o driver e o dispositivo em sistemas multiprocessadores. As condições de corrida e outros problemas de tempo aparecem em sistemas multiprocessadores que, de outra forma, não seriam encontrados. Consulte Como selecionar e configurar os testes fundamentais do dispositivo e os parâmetros de inicialização para testar drivers para suporte a vários grupos de processadores.
Teste o driver e o dispositivo quanto a condições específicas do sistema e do hardware, especialmente as condições de borda. Por exemplo, essas condições podem incluir "D3 quente" e "D3 frio". Verifique se o driver e o dispositivo podem retornar corretamente do estado de energia do dispositivo "D3 quente" (sem perder energia) e "D3 frio" (quando a energia é removida do dispositivo). Para obter mais informações, consulte Como selecionar e configurar os testes fundamentais do dispositivo.