한 컴퓨터 시스템이 다른 컴퓨터 시스템을 모방하여 동작하는 에뮬레이터는 게임, 개발, 디버깅, 프로그램 분석, 악성코드 분석 등 많은 곳에서 활용되고 있다. 그러나 점점 복잡해지는 현대 컴퓨터 아키텍처들을 정확히 에뮬레이션해 주는 것은 매우 어려운 일이고 이를 검증하는 것 또한 어려운 일이다. 에뮬레이터의 정확성을 검증하기 위해서는 각 명령어의 정확한 의미와 동작을 알고있어야 하며 에뮬레이터가 이를 올바르게 구현했는지 검사해야 하기 때문이다. 선행 연구에서는 동일한 명령어를 CPU와 에뮬레이터에 각각 실행시킨 결과를 비교하는 차등 테스팅을 제안했다. 그러나 명령어를 생성할 때 랜덤한 바이트 코드를 생성하기 때문에 비효율적이다는 단점이 존재한다. 따라서 우리는 명령어 문법 인식 기반의 효율적인 에뮬레이터 차등 테스팅 방법론을 제시한다. 명령어를 생성할 때 매뉴얼을 파싱하여 명령어의 문법을 파악하고 이를 기반으로 명령어를 생성하여 선행 연구에 비해 월등히 높은 확률로 유효한 명령어를 생성해낸다. 또한 명령어의 의존성을 고려하여 불필요한 코드의 반복을 줄이고 한 번에 여러 명령어를 테스팅할 수 있는 방법론을 제안한다. 우리의 방법론이 더 높은 확률로 다양한 종류의 명령어를 생성해 낼 수 있었고 QEMU 사용자 에뮬레이터에서 더 많은 버그를 찾을 수 있었음을 실험을 통해 보였다. 또한 명령어 의존성을 고려한 테스팅 방법을 통해 더 빠르게 버그를 찾을 수 있었다. 끝으로 QEMU v7.1.0에서 7개의 새로운 버그를 찾아냈다.