공개 테스트 코퍼스

스캐너 호환성에 관한 저희의 주장은 그 근거가 되는 증거만큼만 신뢰할 수 있습니다. 이 페이지가 코퍼스입니다. 저희 인코더 계열들에 대해 회귀 테스트를 실행하는 입력과, 저희 말을 그냥 믿지 않고도 직접 확인할 수 있는 스마트폰 카메라 동작을 담고 있습니다.

왜 이것이 존재하는가: 대부분의 QR 도구는 호환성 매트릭스를 공개합니다. 저희는 그 매트릭스 뒤에 있는 코퍼스를 공개합니다. 스캐너 플리트를 관리하는 분이라면, 소매, 창고, 제약, 항공, DMV, 이 코퍼스를 자체 리더로 실행하여 저희의 모든 주장을 검증할 수 있습니다.

corpus.zip 다운로드 fixtures JSON + CSV + 방법론 + README 번들. 약 4 KB.

버전 로드 중…

코퍼스 사용 방법

fixtures 다운로드.

모든 테스트 벡터는 /test-vectors/fixtures.json에 있습니다. 타입별로 하나의 JSON 객체가 있으며, 입력 필드와 기대되는 디코딩 서브문자열이 포함됩니다. 이 사이트에서 실시간으로 가져오므로 오래된 복사본이 없습니다.

QR 코드 재생성.

임의의 fixture의 fields 맵을 가져와 해당 타입의 생성기에 값을 입력하고 생성을 누릅니다. 생성된 QR 코드는 저희 CI가 라운드트립 테스트에 사용하는 것과 비트 단위로 동일합니다.

자체 플리트로 스캔.

iPhone Camera, Android Camera, Google Lens, 산업용 스캐너(Zebra, Honeywell, Datalogic), 또는 앱 전용 리더(은행 앱, 인증 앱)를 생성된 QR 코드에 겨냥합니다. 디코딩된 텍스트에 해당 fixture의 모든 expect 서브문자열이 포함되어 있는지 확인하세요.

불일치 보고.

플리트의 스캐너가 fixture와 일치하지 않는 디코딩 결과를 반환하면 이슈를 등록하세요. 재현하고, 해당 스캐너를 공개 호환성 매트릭스에 추가하고, (인코더 버그라면) 수정 사항을 배포합니다.

예상 스캔 결과

호환성 매트릭스 및 각 타입 페이지의 "스캔 가능" 줄과 동일한 데이터셋에서 렌더링되므로 셋이 서로 어긋날 수 없습니다. /test-vectors/의 전체 fixture 파일에는 저희가 회귀 테스트하는 인코더 계열마다 하나씩, 33개의 항목이 있습니다. 제품 타입마다 한 행이 아니며, 그렇다고 주장하지도 않습니다.

유형Fixture 입력iPhone CameraAndroid Camera프로 스캐너
URLhttps://example.com/test링크 열기A1링크 열기A5디코딩A8
WiFiWIFI:S:MyNet;T:WPA;P:...;;네트워크 연결A1네트워크 연결A5페이로드 디코딩A8
WiFi Enterprise (EAP)WPA2-EAP PEAP identity=alice@corpiOS 17+, 보고됨U디코딩됨; 연결 여부는 제조사에 따라 다름U페이로드 디코딩Q
vCardFN=Alice ORG=Acme ...연락처에 추가A1연락처에 추가A5페이로드 디코딩A8
TOTPotpauth://totp/...?secret=JBSW...인증 앱이 읽음A9, A10인증 앱이 읽음A9, A10URI 디코딩A8
eSIMLPA:1$rsp.example.com$K2-LM...iOS 17.4+ 프로비저닝A4Android 13+ 프로비저닝UURI 디코딩Q
Bitcoin (BIP-21)bitcoin:1A1zP1eP...지갑 앱 열림Q지갑 앱 열림QURI 디코딩Q
SEPA (EPC)BCD header + name + IBAN + amount원시 문자열만Q원시 문자열만Q원시 문자열 디코딩Q
Swiss QR-billSPC header + IBAN + address + amount원시 문자열만Q원시 문자열만Q원시 문자열 디코딩Q
Micro QRCompact payload디코딩 불가V, U디코딩 불가G산업용 리더Z
rMQRRectangular payload디코딩 불가U디코딩 불가G최신 Zebra, Scandit, Cognex 펌웨어Z
GS1 Digital Linkhttps://id.gs1.org/01/09506000134352URL 열기QURL 열기QPOS 펌웨어가 AI를 파싱함Q
AztecArbitrary payload디코딩 불가A2Google Lens, 일부 변형A7네이티브A8
Data MatrixArbitrary payload디코딩 불가A2Google LensA6네이티브A8
PDF417AAMVA or arbitrary디코딩 불가A2Google Lens, 고르지 않음A7네이티브A8
AAMVA driver license@\n\x1e\rANSI 636014100002DL...iOS 17+ 면허증 인식 흐름A3면허증 인식 앱 전용U네이티브A8
EAN-13 / UPC-A0012345678905디코딩 불가ApGoogle LensG모든 소매 POSA8
Code 128ABC-123디코딩 불가ApGoogle LensG네이티브A8

표시 읽는 법

근거

"예상 스캔 결과"의 의미

방법론 참고 사항

스캐너 플리트 인증 로그

모든 수동 기기 테스트를 날짜별로 기록합니다. 새 하드웨어를 확보하거나 사용자가 불일치를 보고할 때 행이 추가됩니다. 결과는 조용히 바뀌지 않으며, 항상 새 행으로 추가됩니다.

#DeviceOS / appCorpus sliceResultDateNotes
A1iPhone 15 ProiOS 18.3, native CameraAll QR fixturespass2026-04-10
A2iPhone 15 ProiOS 18.3, native CameraAztec, PDF417, Data Matrixfail2026-04-10네이티브로 디코딩하는 것 없음(예상된 결과, /standards/non-qr-2d/ 참고)
A3iPhone 15 ProiOS 18.3, native CameraAAMVA PDF417partial2026-04-10iOS 17+ 면허증 인식 흐름이 Wallet에 추가를 제안함; 원시 PDF417은 반환되지 않음
A4iPhone 15 ProiOS 18.3, WalleteSIM LPApass2026-04-12Add-eSIM 흐름이 정상적으로 시작됨
A5Pixel 8Android 14, native CameraAll QR fixturespass2026-04-10
A6Pixel 8Android 14, Google LensData Matrixpass2026-04-10
A7Pixel 8Android 14, Google LensAztec, PDF417partial2026-04-10일부 변형은 디코딩됨; 지원이 고르지 않음
A8Zebra DS8100firmware CAAACS00-002-R06All 2D + 1D fixturespass2026-04-11산업용 이미저, 기준 참조
A9Google Authenticatorv7.0+ (iOS/Android)TOTP, HOTPpass2026-04-12SHA-1 전용, 6자리(Google의 사실상 표준 프로필에 따라 algorithm/digits 파라미터 무시)
A101Passwordv8 (iOS/Android/macOS)TOTP, HOTPpass2026-04-12SHA-256, SHA-512, 8자리를 포함한 전체 RFC 지원

앞으로의 계획

관련 항목

코퍼스 최종 회귀 테스트: 2026-04-18. 검증된 기기: iPhone 15 Pro / iOS 18.3, Pixel 8 / Android 14, Zebra DS8100.