Öffentliches Testkorpus
Unsere Scanner-Kompatibilitätsbehauptungen sind nur so gut wie die Beweise, auf denen sie basieren. Diese Seite ist das Corpus, die kanonischen Eingaben, gegen die wir jeden Encoder in der Regression testen, plus das Handykamera-Verhalten, das Sie selbst prüfen können, ohne uns auf unser Wort zu vertrauen.
corpus.zip herunterladen Fixtures JSON + CSV + Methodik + README. ~4 KB.
Version wird geladen…
So verwenden Sie das Corpus
Jeder Testvektor ist in /test-vectors/fixtures.json. Ein JSON-Objekt pro Typ mit den Eingabefeldern und den erwarteten dekodierten Teilzeichenfolgen. Live von dieser Seite abgerufen, keine veralteten Kopien.
Nehmen Sie die fields-Map eines beliebigen Fixtures, geben Sie die Werte in den Generator für diesen Typ ein und klicken Sie auf Generieren. Der resultierende QR ist bit-für-bit identisch mit dem, was unser CI als Round-Trip verarbeitet.
Richten Sie eine iPhone-Kamera, Android-Kamera, Google Lens, einen Industriescanner (Zebra, Honeywell, Datalogic) oder einen App-spezifischen Leser (Banking-App, Authenticator) auf den generierten QR. Bestätigen Sie, dass der dekodierte Text jede expect-Teilzeichenfolge für dieses Fixture enthält.
Wenn ein Scanner in Ihrer Flotte eine Dekodierung zurückgibt, die nicht mit dem Fixture übereinstimmt, öffnen Sie ein Issue. Wir reproduzieren es, fügen Ihren Scanner zur öffentlichen Kompatibilitätsmatrix hinzu und (falls es ein Encoder-Bug ist) stellen einen Fix bereit.
Erwartete Scan-Ergebnisse, kuratierte Teilmenge
Dies ist eine kompakte Ansicht des vollständigen Fixture-JSONs, gruppiert nach Scanner-Verhalten. Für die erschöpfende Liste aller Typen, die Abundera unterstützt, gehen Sie zu /test-vectors/.
| Typ | Fixture-Eingabe | iOS-Kamera | Android-Kamera | Pro-Scanner |
|---|---|---|---|---|
| URL | https://example.com/test | Dekodiert | Dekodiert | Dekodiert |
| WiFi | SSID=MyNet PSK=... WPA | Verbindet mit Netz | Verbindet mit Netz | Dekodiert Payload |
| vCard | FN=Alice ORG=Acme ... | Zu Kontakten hinzufügen | Zu Kontakten hinzufügen | Dekodiert Payload |
| TOTP | otpauth://totp/...?secret=JBSW... | Authenticator-App liest es | Authenticator-App liest es | Dekodiert URI |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ provisioniert | Android 13+ provisioniert | Dekodiert URI |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | Wallet-App öffnet | Wallet-App öffnet | Dekodiert URI |
| SEPA (EPC) | BCD header + name + IBAN + amount | Nur Rohtext | Nur Rohtext | Banking-App-Support |
| Swiss QR-bill | SPC header + IBAN + address + amount | Nur Rohtext | Nur Rohtext | Schweizer Banking-Apps nativ |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | Öffnet URL | Öffnet URL | POS-Firmware analysiert AIs |
| Data Matrix | Arbitrary payload | Kein Dekodieren | Nur Google Lens | Nativ |
| Aztec | Arbitrary payload | Kein Dekodieren | Einige Android-Lesegeräte | Nativ |
| PDF417 | AAMVA or arbitrary | Kein Dekodieren | Google Lens teilweise | Nativ |
| AAMVA-Führerschein | @
ANSI 636014080002DL... | iOS 17+ Lizenz-bewusst | Android Lizenz-bewusste Apps | Nativ |
| EAN-13 | 0012345678905 | Dekodiert Ziffern | Dekodiert Ziffern | Jeder Einzelhandels-POS |
| Micro QR | Compact payload | Kein Dekodieren | Kein Dekodieren | Nur Industriescanner |
| rMQR | Rectangular payload | Kein Dekodieren | Kein Dekodieren | Einige Scandit/Cognex-Firmwares |
Was "erwartetes Scan-Ergebnis" bedeutet
- Decodes, Dekodiert, nativer Telefonleser gibt das Payload zurück, ohne eine separate App zu benötigen.
- Partial, Teilweise, Dekodierung hängt von einer bestimmten App (Authenticator, Wallet, Banking) oder einer bestimmten OS-Version ab.
- No decode, Kein Dekodieren, native Kamera gibt nichts zurück. Erfordert einen Spezialscanner oder -leser.
Methodologiehinweise
- Jedes Fixture wird als Round-Trip getestet. Unser CI generiert jeden Code in Headless-Chromium, dekodiert ihn über die Browser-API
BarcodeDetectorzurück und prüft die Teilzeichenfolgenübereinstimmung. Ein grünes CI bedeutet, dass das Corpus intern konsistent ist. - Scanner-Ergebnisse in dieser Tabelle stammen aus manuellen Tests auf echten Geräten. Nicht synthetisiert. iPhone 15 Pro auf iOS 18.3, Pixel 8 auf Android 14, Zebra DS8100 Imager auf Firmware CAAACS00-002-R06.
- Wir veröffentlichen negative Ergebnisse. Wenn iPhone Camera sich weigert, eine Symbologie zu dekodieren (Data Matrix, Aztec, PDF417), ist das ein 'Kein Dekodieren' in der Tabelle, keine Umbenennung zu 'nativer Leser'.
- Das Corpus ist versioniert. Wenn wir einen Typ hinzufügen oder einen Encoder-Bug beheben, wird der entsprechende Fixture-Eintrag im selben Commit ausgeliefert. Prüfen Sie die Fixture-Historie für den Audit-Trail.
Demnächst
- Vorgerenderte Artefakte. Das aktuelle ZIP enthält Fixtures + Methodik + CSV. Eine zukünftige Revision fügt vorgerendertes SVG + PNG jedes Fixtures hinzu, damit Sie es direkt in ein Scanner-Flotten-Harness einfügen können. Build-time-Headless-Browser-Schritt ausstehend.
- Scanner-Flotten-Attestierung. Datiertes Protokoll unter docs/SCANNER_ATTESTATION.md, wächst bei jeder Verifikation gegen ein neues Gerät.
- Drittanbieter-Verifikation. Ein unabhängiges Sicherheitslabor führt das Corpus durch eine Scanner-Flotte und veröffentlicht eine signierte Attestierung. Ausstehend, beauftragt; Bericht wird hier bei Ankunft veröffentlicht.
Siehe auch
- /test-vectors/, Vollständiges Fixture-JSON und durchsuchbare Tabelle.
- /compatibility/, Live-Scanner-Kompatibilitätsmatrix.
- /standards/, Referenzseiten pro Standard.
- /print-size/, Physischer Druckleitfaden, der das Corpus begleitet.