Suggerimenti per i test dei driver durante lo sviluppo
Quando è necessario avviare il test? Non appena si hanno i requisiti per il driver, è possibile iniziare a progettare test case per verificare che siano stati implementati i requisiti critici. Gli studi mostrano che la ricerca e la correzione dei difetti nel codice diventano più costosi, più i difetti rimangono nel codice. La ricerca e la correzione dei difetti all'inizio del ciclo di sviluppo sono meno costose e dispendiose rispetto alla ricerca di difetti dopo il rilascio e la distribuzione del codice. La creazione anticipata dei test case consente anche di individuare problemi nella progettazione.
Suggerimenti per i test durante lo sviluppo
Usare i suggerimenti seguenti per testare il codice driver e il pacchetto driver.
Per facilitare la ricerca di bug in fase di compilazione:
Dichiarare le funzioni di callback fornite dal driver e inviare routine usando i tipi di ruolo funzione. Ciò consente di migliorare l'accuratezza degli strumenti di analisi e verifica del codice e dell'efficacia del tempo di test. Per altre informazioni su come dichiarare le funzioni fornite dal driver, vedere Using Function Role Type Declarations.For more information about how to declare your driver-supplied functions, see Using Function Role Type Declarations.
Compilare il codice usando l'opzione Avvisi di livello4 (/W4). La correzione degli avvisi rilevati dal compilatore aumenterà la qualità del codice del driver e contribuirà a eliminare eventuali difetti aggiuntivi prima del ciclo di sviluppo.
Annotare il codice usando il linguaggio di annotazione del codice sorgente Microsoft (SAL) 2.0. Le annotazioni descrivono come una funzione usa i relativi parametri, ovvero i presupposti che fa su di essi e le garanzie che crea al termine. Le annotazioni migliorano anche l'accuratezza degli strumenti di analisi del codice. Per altre informazioni sulle annotazioni specifiche del driver, vedere Annotazioni SAL 2.0 per i driver.
Usare gli strumenti per verificare i driver durante lo sviluppo del driver. Per indicazioni su quando usare strumenti di verifica specifici, vedere Analisi di un driver tramite strumenti di analisi del codice e verifica.
Per testare il pacchetto driver:
Creare il file INF e il pacchetto driver all'inizio del processo di sviluppo e usarlo durante i test.
Usare lo strumento InfVerif per verificare la struttura e la sintassi del file INF e per diagnosticare il file INF e altri problemi correlati all'installazione.
Usare lo strumento Inf2Cat (con l'opzione /nocat ) per eseguire una verifica aggiuntiva dei file INF. Inf2Cat può verificare che i file a cui fa riferimento l'INF siano presenti e inseriti nella directory del pacchetto, perché l'INF prevede che siano.
Firmare i driver per facilitare l'installazione e il test dei driver, come descritto in Firma dei driver durante lo sviluppo e il test.
Eseguire il test DriverInstall incluso come parte dei test Di base del dispositivo forniti in WDK. Vedere Come testare un driver in fase di esecuzione usando Visual Studio e Come selezionare e configurare i test fondamentali del dispositivo. Il test DriverInstall può essere eseguito dopo la distribuzione del driver nel computer di test. È possibile aggiungere il test DriverInstall a un gruppo di test driver. Il test DriverInstall viene visualizzato nelle categorie test driver in Tutti i test\Basic\Device Fundamentals\DriverInstall.
Risolvere i problemi di installazione dei dispositivi usando Gestione dispositivi per visualizzare le informazioni di sistema sui driver e i dispositivi e consultando il log SetupAPI. Il log SetupAPI contiene informazioni sulla sequenza di operazioni che si sono verificate durante l'installazione di un dispositivo o di un driver.
Usando Visual Studio e WDK, è possibile testare e risolvere i problemi di installazione del pacchetto driver quando si distribuisce il driver in un computer di test, vedere Distribuzione di un driver in un computer di test. Selezionare l'opzione Installa e verifica nelle proprietà di distribuzione per i progetti di pacchetto driver. Quando si seleziona questa opzione e si specifica l'attività di installazione del pacchetto driver predefinito (possibile riavvio) o l'attività di installazione del pacchetto driver stampante predefinita (possibile riavvio), il test legge il file INF del driver e installa il driver. Il test verifica quindi che il driver sia attivo e in esecuzione. Al termine, il test fornisce informazioni dettagliate sull'esito positivo o negativo dell'attività di installazione. I risultati sono visualizzati in Esplora gruppi di test driver, in Driver Test Groups > Driver Installation. Il nome dell'attività è Default Driver Package Installation Task.The task is Default Driver Package Installation Task.
Per testare il driver in fase di esecuzione:
Eseguire i test di base del dispositivo inclusi in WDK. Vedere Come testare un driver in fase di esecuzione usando Visual Studio e Come selezionare e configurare i test fondamentali del dispositivo.
Configurare un debugger in modo che sia possibile risolvere i problemi ed eseguire il debug dei risultati del test. Per altre informazioni, vedere Introduzione con debug di Windows.
Abilitare Driver Verifier nei computer di test usati per la distribuzione, vedere Driver Verifier Properties for Driver Projects.Enable Driver Verifier ifier on the test computers you use for deployment, see Driver Verifier Properties for Driver Projects. Selezionare l'opzione controllo conformità DDI . Se il driver non riesce a verificare la conformità DDI, eseguire Static Driver Verifier e specificare la regola o le regole che hanno causato l'errore. Static Driver Verifier consente di individuare la causa del bug nei file di origine.
Testare il driver e il dispositivo in tutte le configurazioni hardware possibili. Variando l'hardware è possibile trovare conflitti tra i dispositivi e altri errori nelle interazioni del dispositivo. Ad esempio, è consigliabile testare il driver e il dispositivo nei computer con architetture del processore diverse e nei computer che eseguono versioni a 32 bit e a 64 bit di Windows.
Testare il driver e il dispositivo nei sistemi multiprocessore. Le race condition e altri problemi di temporizzazione vengono visualizzati nei sistemi multiprocessore che altrimenti non verrebbero trovati. Vedere Come selezionare e configurare i test fondamentali del dispositivo e i parametri di avvio per testare i driver per il supporto di più gruppi di processori.
Testare il driver e il dispositivo per specifiche condizioni di sistema e hardware, in particolare le condizioni perimetrali. Ad esempio, queste condizioni possono includere "D3 hot" e "D3 cold". Assicurarsi che il driver e il dispositivo possano essere restituiti correttamente dallo stato di alimentazione del dispositivo "D3 hot" (senza perdere energia) e "D3 cold" (quando l'alimentazione viene rimossa dal dispositivo). Per altre informazioni, vedere Come selezionare e configurare i test fondamentali del dispositivo.