Corpus de teste público

Nossas afirmações de compatibilidade de scanners são tão boas quanto as evidências nas quais são baseadas. Esta página é o corpus, as entradas que submetemos a teste de regressão em nossas famílias de codificadores, mais o comportamento da câmera do telefone que você pode auditar por conta própria sem nos levar pela palavra.

Por que isso existe: a maioria das ferramentas QR publica uma matriz de compatibilidade. A nossa publica o corpus por trás da matriz. Se você é responsável por uma frota de scanners, varejo, armazém, farmácia, companhia aérea, DMV, você pode executar este corpus em seus próprios leitores e verificar cada afirmação que fazemos.

Baixar corpus.zip JSON de fixtures + CSV + metodologia + README. ~4 KB.

Carregando versão…

Como usar o corpus

Baixe os fixtures.

Cada vetor de teste está em /test-vectors/fixtures.json. Um objeto JSON por tipo com os campos de entrada e as subcadeias decodificadas esperadas. Buscado ao vivo deste site, sem cópias obsoletas.

Regenere os QRs.

Pegue o mapa de fields de qualquer fixture, insira os valores no gerador para esse tipo e clique em Gerar. O QR resultante é bit a bit idêntico ao que nosso CI processa em ida e volta.

Escaneie com sua própria frota.

Aponte uma câmera iPhone, câmera Android, Google Lens, scanner industrial (Zebra, Honeywell, Datalogic) ou leitor específico do app (app bancário, autenticador) para o QR gerado. Confirme que o texto decodificado contém cada subcadeia expect desse fixture.

Reporte discrepâncias.

Se um scanner da sua frota retornar uma decodificação que não corresponda ao fixture, abra um issue. Vamos reproduzir, adicionar seu scanner à matriz de compatibilidade pública e (se for um bug do codificador) enviar uma correção.

Resultados de escaneamento esperados

Renderizado a partir do mesmo conjunto de dados da matriz de compatibilidade e da linha "Funciona em" de cada página de tipo, então os três não podem discordar entre si. O arquivo completo de fixtures em /test-vectors/ tem 33 entradas, uma por família de codificador que testamos em regressão; não é uma linha por tipo de produto, e não afirmamos que seja.

TipoEntrada do fixtureiPhone CameraAndroid CameraScanner profissional
URLhttps://example.com/testAbre o linkA1Abre o linkA5DecodificaA8
WiFiWIFI:S:MyNet;T:WPA;P:...;;Conecta à redeA1Conecta à redeA5Decodifica o payloadA8
WiFi Enterprise (EAP)WPA2-EAP PEAP identity=alice@corpiOS 17+, relatadoUDecodifica; conectar depende do fabricanteUDecodifica o payloadQ
vCardFN=Alice ORG=Acme ...Adicionar aos ContatosA1Adicionar aos ContatosA5Decodifica o payloadA8
TOTPotpauth://totp/...?secret=JBSW...O app autenticador lêA9, A10O app autenticador lêA9, A10Decodifica o URIA8
eSIMLPA:1$rsp.example.com$K2-LM...iOS 17.4+ provisionaA4Android 13+ provisionaUDecodifica o URIQ
Bitcoin (BIP-21)bitcoin:1A1zP1eP...Abre o app de carteiraQAbre o app de carteiraQDecodifica o URIQ
SEPA (EPC)BCD header + name + IBAN + amountApenas string brutaQApenas string brutaQDecodifica a string brutaQ
Swiss QR-billSPC header + IBAN + address + amountApenas string brutaQApenas string brutaQDecodifica a string brutaQ
Micro QRCompact payloadSem decodificaçãoV, USem decodificaçãoGLeitores industriaisZ
rMQRRectangular payloadSem decodificaçãoUSem decodificaçãoGFirmware mais recente da Zebra, Scandit e CognexZ
GS1 Digital Linkhttps://id.gs1.org/01/09506000134352Abre a URLQAbre a URLQO firmware do PDV interpreta os AIsQ
AztecArbitrary payloadSem decodificaçãoA2Google Lens, algumas variantesA7NativoA8
Data MatrixArbitrary payloadSem decodificaçãoA2Google LensA6NativoA8
PDF417AAMVA or arbitrarySem decodificaçãoA2Google Lens, inconsistenteA7NativoA8
AAMVA driver license@\n\x1e\rANSI 636014100002DL...Fluxo compatível com carteira no iOS 17+A3Somente apps compatíveis com carteiraUNativoA8
EAN-13 / UPC-A0012345678905Sem decodificaçãoApGoogle LensGTodo PDV de varejoA8
Code 128ABC-123Sem decodificaçãoApGoogle LensGNativoA8

Como ler as marcas

Evidência

O que significa "resultado de escaneamento esperado"

Notas de metodologia

Log de atestação de frota de scanners

Cada execução manual em dispositivo, datada. Linhas são adicionadas quando adquirimos hardware novo ou um usuário reporta uma discrepância; um resultado nunca muda silenciosamente, ele ganha uma nova linha.

#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-10Nenhum decodifica nativamente (esperado, veja /standards/non-qr-2d/)
A3iPhone 15 ProiOS 18.3, native CameraAAMVA PDF417partial2026-04-10O fluxo compatível com carteira no iOS 17+ oferece Adicionar à Wallet; o PDF417 bruto não é devolvido
A4iPhone 15 ProiOS 18.3, WalleteSIM LPApass2026-04-12O fluxo de Adicionar eSIM é acionado corretamente
A5Pixel 8Android 14, native CameraAll QR fixturespass2026-04-10
A6Pixel 8Android 14, Google LensData Matrixpass2026-04-10
A7Pixel 8Android 14, Google LensAztec, PDF417partial2026-04-10Algumas variantes decodificam; o suporte é inconsistente
A8Zebra DS8100firmware CAAACS00-002-R06All 2D + 1D fixturespass2026-04-11Leitor industrial (imager), referência canônica
A9Google Authenticatorv7.0+ (iOS/Android)TOTP, HOTPpass2026-04-12Somente SHA-1, 6 dígitos (ignora os parâmetros algorithm/digits conforme o perfil de fato do Google)
A101Passwordv8 (iOS/Android/macOS)TOTP, HOTPpass2026-04-12Suporte completo à RFC, incluindo SHA-256, SHA-512, 8 dígitos

Em breve

Veja também

Corpus testado por último em regressão em 2026-04-18. Dispositivos scanner verificados: iPhone 15 Pro / iOS 18.3, Pixel 8 / Android 14, Zebra DS8100.