Publiczny korpus testowy

Nasze twierdzenia o kompatybilności skanerów są tyle warte, ile dowody, na których się opierają. Ta strona to korpus, kanoniczne dane wejściowe, względem których regresyjnie testujemy każdy koder, oraz zachowanie aparatu telefonu, które możesz samodzielnie zweryfikować bez konieczności ufania nam na słowo.

Dlaczego to istnieje: większość narzędzi do QR publikuje matrycę kompatybilności. My publikujemy korpus stojący za tą matrycą. Jeśli odpowiadasz za flotę skanerów, handel detaliczny, magazyny, farmacja, lotnictwo, DMV, możesz uruchomić ten korpus przez własne czytniki i zweryfikować każde nasze twierdzenie.

Pobierz corpus.zip Pakiet fixtures JSON + CSV + metodologia + README. ~4 KB.

Ładowanie wersji…

Jak używać korpusu

Pobierz fixtures.

Każdy wektor testowy znajduje się w /test-vectors/fixtures.json. Jeden obiekt JSON na typ z polami wejściowymi i oczekiwanymi podciągami zdekodowanymi. Pobierane na żywo z tej strony, żadnych nieaktualnych kopii.

Wygeneruj QR ponownie.

Weź mapę fields dowolnej fixture, wstaw wartości do generatora dla tego typu i kliknij Generuj. Wynikowy QR jest bit po bicie identyczny z tym, co nasze CI testuje w cyklu.

Skanuj własną flotą.

Skieruj iPhone Camera, Android Camera, Google Lens, skaner przemysłowy (Zebra, Honeywell, Datalogic) lub czytnik dedykowany dla aplikacji (aplikacja bankowa, autentykator) na wygenerowany QR. Potwierdź, że zdekodowany tekst zawiera każdy podciąg expect dla danej fixture.

Zgłaszaj rozbieżności.

Jeśli skaner w Twojej flocie zwróci dekodowanie niezgodne z fixture, zgłoś problem. Odtworzymy go, dodamy Twój skaner do publicznej matrycy kompatybilności i (jeśli to błąd kodera) wyślemy poprawkę.

Oczekiwane wyniki skanowania, wyselekcjonowany podzbiór

To zwięzły widok pełnego fixture JSON, pogrupowany według zachowania skanerów. Pełna lista wszystkich typów obsługiwanych przez Abundera jest dostępna na /test-vectors/.

TypWejście fixtureiOS CameraAndroid CameraSkaner profesjonalny
URLhttps://example.com/testDekodujeDekodujeDekoduje
WiFiSSID=MyNet PSK=... WPAŁączy z sieciąŁączy z sieciąDekoduje payload
WiFi Enterprise (EAP)WPA2-EAP PEAP identity=alice@corpiOS 17+DekodujeDekoduje
vCardFN=Alice ORG=Acme ...Dodaj do kontaktówDodaj do kontaktówDekoduje payload
TOTPotpauth://totp/...?secret=JBSW...Aplikacja autentykator odczytujeAplikacja autentykator odczytujeDekoduje URI
eSIMLPA:1$rsp.example.com$K2-LM...iOS 17.4+ provisionujeAndroid 13+ provisionujeDekoduje URI
Bitcoin (BIP-21)bitcoin:1A1zP1eP...Aplikacja portfela otwiera sięAplikacja portfela otwiera sięDekoduje URI
SEPA (EPC)BCD header + name + IBAN + amountTylko surowy ciągTylko surowy ciągWsparcie aplikacji bankowych
Swiss QR-billSPC header + IBAN + address + amountTylko surowy ciągTylko surowy ciągNatywny dla szwajcarskich aplikacji bankowych
GS1 Digital Linkhttps://id.gs1.org/01/09506000134352Otwiera URLOtwiera URLFirmware POS parsuje AI
Data MatrixArbitrary payloadBrak dekodowaniaTylko Google LensNatywny
AztecArbitrary payloadBrak dekodowaniaNiektóre czytniki AndroidNatywny
PDF417AAMVA or arbitraryBrak dekodowaniaGoogle Lens częściowoNatywny
AAMVA driver license@\n\x1e\rANSI 636014080002DL...iOS 17+ rozpoznaje prawo jazdyAplikacje Android obsługujące prawo jazdyNatywny
EAN-130012345678905Dekoduje cyfryDekoduje cyfryKażdy POS detaliczny
Code 128ABC-123DekodujeDekodujeNatywny
Micro QRCompact payloadBrak dekodowaniaBrak dekodowaniaTylko czytniki przemysłowe
rMQRRectangular payloadBrak dekodowaniaBrak dekodowaniaNiektóre firmware Scandit/Cognex

Co oznacza „oczekiwany wynik skanowania"

Uwagi metodologiczne

Co nadchodzi

Zobacz też

Korpus ostatnio testowany regresyjnie 2026-04-18. Zweryfikowane urządzenia: iPhone 15 Pro / iOS 18.3, Pixel 8 / Android 14, Zebra DS8100.