Corpus di test pubblico
Le nostre affermazioni di compatibilità degli scanner valgono solo quanto le prove su cui si basano. Questa pagina è il corpus, gli input canonici che sottoponiamo a test di regressione per ogni encoder, più il comportamento della fotocamera del telefono che puoi verificare tu stesso senza fidarti della nostra parola.
Scarica corpus.zip Fixture JSON + CSV + metodologia + README. ~4 KB.
Caricamento versione…
Come usare il corpus
Ogni vettore di test è in /test-vectors/fixtures.json. Un oggetto JSON per tipo con i campi di input e le sottostringhe decodificate attese. Recuperato in tempo reale da questo sito, nessuna copia obsoleta.
Prendi il map fields di qualsiasi fixture, inserisci i valori nel generatore per quel tipo e clicca Genera. Il QR risultante è bit per bit identico a quello che il nostro CI elabora in andata e ritorno.
Punta una fotocamera iPhone, fotocamera Android, Google Lens, scanner industriale (Zebra, Honeywell, Datalogic) o lettore specifico dell'app (app bancaria, autenticatore) sul QR generato. Conferma che il testo decodificato contiene ogni sottostringa expect di quel fixture.
Se uno scanner della tua flotta restituisce una decodifica che non corrisponde al fixture, apri un issue. Riprodurremo, aggiungeremo il tuo scanner alla matrice di compatibilità pubblica e (se è un bug dell'encoder) invieremo una correzione.
Risultati di scansione attesi, sottoinsieme curato
Questa è una vista compatta del JSON completo dei fixture, raggruppata per comportamento dello scanner. Per l'elenco esaustivo di tutti i tipi che Abundera supporta, vai a /test-vectors/.
| Tipo | Input del fixture | Fotocamera iOS | Fotocamera Android | Scanner pro |
|---|---|---|---|---|
| URL | https://example.com/test | Decodifica | Decodifica | Decodifica |
| WiFi | SSID=MyNet PSK=... WPA | Si connette alla rete | Si connette alla rete | Decodifica payload |
| vCard | FN=Alice ORG=Acme ... | Aggiungi a Contatti | Aggiungi a Contatti | Decodifica payload |
| TOTP | otpauth://totp/...?secret=JBSW... | App autenticatore lo legge | App autenticatore lo legge | Decodifica URI |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ provisiona | Android 13+ provisiona | Decodifica URI |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | Apre app portafoglio | Apre app portafoglio | Decodifica URI |
| SEPA (EPC) | BCD header + name + IBAN + amount | Solo stringa grezza | Solo stringa grezza | Supporto app bancaria |
| Swiss QR-bill | SPC header + IBAN + address + amount | Solo stringa grezza | Solo stringa grezza | App bancarie svizzere native |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | Apre URL | Apre URL | Firmware POS analizza AI |
| Data Matrix | Arbitrary payload | Nessuna decodifica | Solo Google Lens | Nativo |
| Aztec | Arbitrary payload | Nessuna decodifica | Alcuni lettori Android | Nativo |
| PDF417 | AAMVA or arbitrary | Nessuna decodifica | Google Lens parziale | Nativo |
| Patente AAMVA | @
ANSI 636014080002DL... | iOS 17+ riconosce patente | App Android riconosci-patente | Nativo |
| EAN-13 | 0012345678905 | Decodifica cifre | Decodifica cifre | Ogni POS retail |
| Micro QR | Compact payload | Nessuna decodifica | Nessuna decodifica | Solo lettori industriali |
| rMQR | Rectangular payload | Nessuna decodifica | Nessuna decodifica | Alcuni firmware Scandit/Cognex |
Cosa significa "risultato di scansione atteso"
- Decodes, Decodifica, il lettore nativo del telefono restituisce il payload senza necessitare di un'app separata.
- Partial, Parziale, la decodifica dipende da un'app specifica (autenticatore, portafoglio, banca) o da una versione specifica del SO.
- No decode, Nessuna decodifica, la fotocamera nativa non restituisce nulla. Richiede uno scanner o lettore specializzato.
Note sulla metodologia
- Ogni fixture viene testato in andata e ritorno. Il nostro CI genera ogni codice in Chromium headless, lo decodifica tramite l'API
BarcodeDetectordel browser e verifica la corrispondenza della sottostringa. Un CI verde significa che il corpus è internamente coerente. - I risultati dello scanner in questa tabella provengono da test manuali su dispositivi reali. Non sintetizzato. iPhone 15 Pro su iOS 18.3, Pixel 8 su Android 14, imager Zebra DS8100 su firmware CAAACS00-002-R06.
- Pubblichiamo i risultati negativi. Se la fotocamera iPhone si rifiuta di decodificare una simbologia (Data Matrix, Aztec, PDF417), quella è 'Nessuna decodifica' nella tabella, non un rebranding di 'lettore nativo'.
- Il corpus è versionato. Quando aggiungiamo un tipo o correggiamo un bug dell'encoder, la corrispondente voce fixture viene spedita nello stesso commit. Controlla la cronologia del fixture per il trail di audit.
Prossimamente
- Artefatti pre-renderizzati. Il ZIP attuale include fixture + metodologia + CSV. Una futura revisione aggiungerà SVG + PNG pre-renderizzati di ogni fixture in modo da poterli inserire direttamente in un harness di flotta scanner. Passo browser headless a tempo di compilazione in attesa.
- Attestazione flotta scanner. Registro datato su docs/SCANNER_ATTESTATION.md, cresce ogni volta che verifichiamo contro un nuovo dispositivo.
- Verifica di terze parti. Un laboratorio di sicurezza indipendente esegue il corpus attraverso una flotta di scanner e pubblica un attestato firmato. In attesa, commissionato; il rapporto sarà pubblicato qui all'arrivo.
Vedi anche
- /test-vectors/, JSON completo dei fixture e tabella ricercabile.
- /compatibility/, matrice di compatibilità degli scanner live.
- /standards/, pagine di riferimento per standard.
- /print-size/, guida di stampa fisica che accompagna il corpus.