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 canônicas que submetemos a teste de regressão em cada codificador, mais o comportamento da câmera do telefone que você pode auditar por conta própria sem nos levar pela palavra.
Baixar corpus.zip JSON de fixtures + CSV + metodologia + README. ~4 KB.
Carregando versão…
Como usar o corpus
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.
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.
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.
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, subconjunto selecionado
Esta é uma visão compacta do JSON completo de fixtures, agrupada por comportamento do scanner. Para a lista exaustiva de todos os tipos que a Abundera suporta, vá para /test-vectors/.
| Tipo | Entrada do fixture | Câmera iOS | Câmera Android | Scanner pro |
|---|---|---|---|---|
| URL | https://example.com/test | Decodifica | Decodifica | Decodifica |
| WiFi | SSID=MyNet PSK=... WPA | Conecta à rede | Conecta à rede | Decodifica payload |
| vCard | FN=Alice ORG=Acme ... | Adicionar a Contatos | Adicionar a Contatos | Decodifica payload |
| TOTP | otpauth://totp/...?secret=JBSW... | App de autenticação lê | App de autenticação lê | Decodifica URI |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ provisiona | Android 13+ provisiona | Decodifica URI |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | Abre app de carteira | Abre app de carteira | Decodifica URI |
| SEPA (EPC) | BCD header + name + IBAN + amount | Apenas string bruta | Apenas string bruta | Suporte em app bancário |
| Swiss QR-bill | SPC header + IBAN + address + amount | Apenas string bruta | Apenas string bruta | Apps bancários suíços nativos |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | Abre URL | Abre URL | Firmware POS analisa AIs |
| Data Matrix | Arbitrary payload | Sem decodificação | Somente Google Lens | Nativo |
| Aztec | Arbitrary payload | Sem decodificação | Alguns leitores Android | Nativo |
| PDF417 | AAMVA or arbitrary | Sem decodificação | Google Lens parcial | Nativo |
| Carteira AAMVA | @
ANSI 636014080002DL... | iOS 17+ reconhece carteira | Apps Android reconhecedoras de carteira | Nativo |
| EAN-13 | 0012345678905 | Decodifica dígitos | Decodifica dígitos | Todo PDV varejista |
| Micro QR | Compact payload | Sem decodificação | Sem decodificação | Somente leitores industriais |
| rMQR | Rectangular payload | Sem decodificação | Sem decodificação | Alguns firmware Scandit/Cognex |
O que significa "resultado de escaneamento esperado"
- Decodes, Decodifica, o leitor nativo do telefone retorna o payload sem precisar de um app separado.
- Partial, Parcial, a decodificação depende de um app específico (autenticador, carteira, banco) ou de uma versão específica do OS.
- No decode, Sem decodificação, câmera nativa não retorna nada. Requer scanner ou leitor especializado.
Notas de metodologia
- Todos os fixtures são de ida e volta. Nosso CI gera cada código no Chromium sem cabeça, o decodifica de volta via API
BarcodeDetectordo navegador e verifica a correspondência de subcadeia. Um CI verde significa que o corpus é internamente consistente. - Os resultados do scanner nesta tabela são de testes manuais em dispositivos reais. Sem síntese. iPhone 15 Pro no iOS 18.3, Pixel 8 no Android 14, imager Zebra DS8100 no firmware CAAACS00-002-R06.
- Publicamos resultados negativos. Se a câmera iPhone se recusa a decodificar uma simbologia (Data Matrix, Aztec, PDF417), isso é 'Sem decodificação' na tabela, não uma renomeação de 'leitor nativo'.
- O corpus é versionado. Quando adicionamos um tipo ou corrigimos um bug do codificador, a entrada de fixture correspondente é enviada no mesmo commit. Verifique o histórico do fixture para o rastro de auditoria.
Em breve
- Artefatos pré-renderizados. O ZIP atual inclui fixtures + metodologia + CSV. Uma revisão futura adicionará SVG + PNG pré-renderizados de cada fixture para que você possa inserir diretamente em um harness de frota de scanners. Etapa de navegador sem cabeça em tempo de compilação pendente.
- Atestação de frota de scanners. Registro datado em docs/SCANNER_ATTESTATION.md, cresce cada vez que verificamos contra um novo dispositivo.
- Verificação de terceiros. Um laboratório de segurança independente executa o corpus através de uma frota de scanners e publica um atestado assinado. Pendente, encomendado; relatório será publicado aqui quando chegar.
Veja também
- /test-vectors/, JSON completo de fixtures e tabela pesquisável.
- /compatibility/, matriz de compatibilidade de scanners ao vivo.
- /standards/, páginas de referência por padrão.
- /print-size/, guia de impressão física que acompanha o corpus.