Publiek testcorpus
Onze scannercompatibiliteitsclaims zijn slechts zo goed als het bewijs waarop ze zijn gebaseerd. Deze pagina is het corpus, de canonieke invoer die we bij elke encoder regressiontest, plus het telefonische cameragedrag dat je zelf kunt controleren zonder ons op ons woord te geloven.
Corpus.zip downloaden Gebundelde fixtures-JSON + CSV + methodologie + README. ~4 KB.
Versie laden…
Het corpus gebruiken
Elke testvector staat in /test-vectors/fixtures.json. Eén JSON-object per type met de invoervelden en de verwachte gedecodeerde subtekenreeks(en). Live opgehaald van deze site, geen verouderde kopieën.
Neem de fields-map van een fixture, voer de waarden in de generator in voor dat type en klik op Genereer. De resulterende QR is bit-voor-bit identiek aan wat onze CI round-trip test.
Richt een iPhone-camera, Android-camera, Google Lens, industriële scanner (Zebra, Honeywell, Datalogic) of app-specifieke lezer (een bankapp, een authenticator) op de gegenereerde QR. Bevestig dat de gedecodeerde tekst elke expect-subtekenreeks voor die fixture bevat.
Als een scanner in je vloot een decodering teruggeeft die niet overeenkomt met de fixture, dien dan een issue in. We reproduceren, voegen je scanner toe aan de openbare compatibiliteitsmatrix en leveren (als het een encoderbug is) een oplossing.
Verwachte scanresultaten, gecureerde subset
Dit is een compacte weergave van de volledige fixture-JSON, gegroepeerd op scannergedrag. Voor de uitputtende lijst van alle typen die Abundera ondersteunt, ga naar /test-vectors/.
| Type | Fixture-invoer | iOS Camera | Android Camera | Pro scanner |
|---|---|---|---|---|
| URL | https://example.com/test | Decodeert | Decodeert | Decodeert |
| WiFi | SSID=MyNet PSK=... WPA | Verbindt met netwerk | Verbindt met netwerk | Decodeert payload |
| WiFi Enterprise (EAP) | WPA2-EAP PEAP identity=alice@corp | iOS 17+ | Decodeert | Decodeert |
| vCard | FN=Alice ORG=Acme ... | Toevoegen aan Contacten | Toevoegen aan Contacten | Decodeert payload |
| TOTP | otpauth://totp/...?secret=JBSW... | Authenticator-app leest het | Authenticator-app leest het | Decodeert URI |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ installeert | Android 13+ installeert | Decodeert URI |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | Wallet-app opent | Wallet-app opent | Decodeert URI |
| SEPA (EPC) | BCD header + name + IBAN + amount | Alleen ruwe tekenreeks | Alleen ruwe tekenreeks | Bankapp-ondersteuning |
| Swiss QR-bill | SPC header + IBAN + address + amount | Alleen ruwe tekenreeks | Alleen ruwe tekenreeks | Zwitserse bankapps native |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | Opent URL | Opent URL | POS-firmware parseert AI's |
| Data Matrix | Willekeurige payload | Geen decodering | Alleen Google Lens | Native |
| Aztec | Willekeurige payload | Geen decodering | Sommige Android-lezers | Native |
| PDF417 | AAMVA of willekeurig | Geen decodering | Google Lens gedeeltelijk | Native |
| AAMVA rijbewijs | @
ANSI 636014080002DL... | iOS 17+ rijbewijsbewust | Android rijbewijsbewuste apps | Native |
| EAN-13 | 0012345678905 | Decodeert cijfers | Decodeert cijfers | Elke retail POS |
| Code 128 | ABC-123 | Decodeert | Decodeert | Native |
| Micro QR | Compacte payload | Geen decodering | Geen decodering | Alleen industriële lezers |
| rMQR | Rechthoekige payload | Geen decodering | Geen decodering | Sommige Scandit/Cognex-firmware |
Wat "verwacht scanresultaat" betekent
- Decodeert, native telefoon-cameralezer geeft de payload terug zonder aparte app nodig.
- Gedeeltelijk, decodering hangt af van een specifieke app (authenticator, wallet, bankieren) of een specifieke OS-versie.
- Geen decodering, native camera geeft niets terug. Vereist een speciale scanner of lezer.
Methodologische opmerkingen
- Elke fixture maakt een round-trip. Onze CI genereert elke code in headless Chromium, decodeert hem terug via de
BarcodeDetector-API van de browser en verifieert de subtekenreeksovereenkomst. Een groen CI betekent dat het corpus intern consistent is. - Scanresultaten in deze tabel zijn afkomstig van handmatig testen op echte apparaten. Niet gesynthetiseerd. iPhone 15 Pro op iOS 18.3, Pixel 8 op Android 14, Zebra DS8100-imager op firmware CAAACS00-002-R06.
- We publiceren negatieve resultaten. Als iPhone Camera een symbologie niet decodeert (Data Matrix, Aztec, PDF417), staat er "Geen decodering" in de tabel, niet een herformulering van "native lezer".
- Het corpus is geversioneerd. Wanneer we een type toevoegen of een encoderbug oplossen, verschijnt de bijbehorende fixture-invoer in hetzelfde commit. Bekijk de fixture-geschiedenis voor de audittrail.
Wat er komen gaat
- Pre-rendered artefacten. De huidige ZIP bundelt fixtures + methodologie + CSV. Een toekomstige revisie voegt pre-rendered SVG + PNG van elke fixture toe zodat je ze direct in een scannervlootharness kunt importeren. In afwachting van een headless-browserstap bij buildtime.
- Scannervlotattest. Gedateerd logboek op docs/SCANNER_ATTESTATION.md, groeit elke keer dat we verifiëren tegen een nieuw apparaat.
- Verificatie door derden. Een onafhankelijk beveiligingslaboratorium voert het corpus uit via een scannervloot en publiceert een ondertekende attestatie. In afwachting, in opdracht; rapport verschijnt hier bij aankomst.
Zie ook
- /test-vectors/, volledige fixture-JSON en doorzoekbare tabel.
- /compatibility/, live scannercompatibiliteitsmatrix.
- /standards/, per-standaard referentiepagina's.
- /print-size/, fysieke afdrukguidance naast het corpus.