다음을 통해 공유


개발 중의 드라이버 테스트를 위한 팁

테스트는 언제 시작해야 합니까? 드라이버에 대한 요구 사항이 충족되면 그 즉시 핵심 요구 사항이 구현되었는지 테스트하는 테스트 사례 설계를 시작할 수 있습니다. 연구 결과에 따르면 코드에 결함이 남아 있는 시간이 길어질수록 코드에서 결함을 찾아서 수정하는 비용이 증가합니다. 개발 주기 초기에 결함을 찾아서 수정하면 코드가 릴리스 및 배포된 후에 결함을 찾는 것보다 비용도 덜 들고 피해도 적습니다. 테스트 사례를 일찍 만들면 설계와 관련된 문제를 찾는 데도 도움이 됩니다.

개발 중의 테스트를 위한 제안

드라이버 코드 및 드라이버 패키지를 테스트할 때 다음 제안을 사용하세요.

컴파일 시간에 버그를 찾으려면

  • 드라이버에서 제공하는 콜백 함수를 선언하고 함수 역할 형식을 사용하여 루틴을 디스패치합니다. 이렇게 하면 코드 분석 및 검증 도구의 정확도와 테스트 시간의 효율성이 향상됩니다. 드라이버에서 제공하는 함수를 선언하는 방법에 대한 자세한 내용은 함수 역할 형식 선언 사용을 참조하세요.

  • Level4 (/W4) 경고 옵션을 사용하여 코드를 컴파일합니다. 컴파일러에서 감지된 경고를 수정하면 드라이버 코드의 품질이 향상되고 개발 주기의 초기에 추가 결함이 줄어듭니다.

  • Microsoft SAL(소스 코드 주석 언어) 2.0을 사용하여 코드에 주석을 추가합니다. 주석은 함수가 매개 변수를 사용하는 방법 및 수행을 끝낼 때 목표를 달성하도록 보장하는 방법에 대해 설명합니다. 또한 코드 분석 도구의 정확도를 향상합니다. 드라이벼별 주석에 대한 자세한 내용은 드라이버에 대한 SAL 2.0 주석을 참조하세요.

  • 드라이버를 개발하는 동안 드라이버 검증 도구를 사용합니다. 특정 검증 도구를 사용하는 시점에 대한 자세한 내용은 코드 분석 및 검증 도구를 사용하여 드라이버 분석검증 도구 설문 조사를 참조하세요.

드라이버 패키지를 테스트하려면

  • 개발 프로세스의 초기에 INF 파일과 드라이버 패키지를 만들고 테스트 전반에 이를 사용합니다.

  • ChkINF 도구를 사용하여 INF 파일의 구조와 구문을 확인하고 INF 파일 및 기타 설치 관련 문제를 진단합니다.

  • Inf2Cat 도구를 (/nocat 옵션과 함께) 사용하여 추가 INF 파일 검증을 수행합니다. Inf2Cat는 INF에서 참조하는 파일이 INF가 예상하는 패키지 디렉터리에 있는지 확인할 수 있습니다.

  • 개발 및 테스트 중 드라이버 서명에 설명되어 있는 것처럼 드라이버에 서명하여 드라이버의 설치와 테스트를 용이하게 합니다.

  • WDK에서 제공하는 장치 기본 테스트의 일부로 포함된 DriverInstall 테스트를 실행합니다. Visual Studio를 사용하여 런타임에 드라이버를 테스트하는 방법장치 기본 테스트를 선택하고 구성하는 방법을 참조하세요. DriverInstall 테스트는 드라이버가 테스트 컴퓨터에 배포된 후 실행할 수 있습니다. DriverInstall 테스트를 드라이버 테스트 그룹에 추가할 수 있습니다. DriverInstall 테스트는 All Tests\Basic\Device Fundamentals\DriverInstall 아래의 드라이버 테스트 범주에 표시됩니다. 또한 IWDTFDriverPackageAction2 인터페이스를 사용하여 테스트를 작성할 수 있습니다.

  • 장치 관리자를 사용하여 드라이버 및 장치에 대한 시스템 정보를 보고 SetupAPI 로그를 참조하여 장치 설치 문제를 해결합니다. SetupAPI 로그에는 장치 또는 드라이버의 설치 중에 발생한 작업 시퀀스에 대한 정보가 포함되어 있습니다.

    Visual Studio 및 WDK를 사용하여, 테스트 컴퓨터에 드라이버를 배포할 때 드라이버 패키지 설치를 테스트하고 문제를 해결할 수 있습니다. 테스트 컴퓨터에 드라이버 배포를 참조하세요. 드라이버 패키지 프로젝트에 대한 배포 속성에서 Install and Verify(설치 및 검증) 옵션을 선택합니다. 이 옵션을 선택하고 Default Driver Package Installation Task (possible reboot)(기본 드라이버 패키지 설치 작업(다시 부팅될 수 있음)) 또는 **Default Printer Driver Package Installation Task (possible reboot)(기본 프린터 드라이버 패키지 설치 작업(다시 부팅될 수 있음))**을 지정하면 테스트에서 드라이버의 INF 파일을 읽고 드라이버를 설치합니다. 테스트는 드라이버가 작동 및 실행 중인지 확인합니다. 확인이 완료되면 다음 설치 작업의 성공 또는 실패에 대한 세부 정보를 제공합니다. 결과는 Driver Test Groups > Driver Installation 아래의 드라이버 테스트 그룹 탐색기에 표시됩니다. 작업 이름은 기본 드라이버 패키지 설치 작업입니다.

런타임에 드라이버를 테스트하려면