Публичный тестовый корпус

Наши заявления о совместимости со сканерами не лучше доказательств, на которых они основаны. Эта страница и есть корпус, канонические входные данные, которые мы регрессионно тестируем для каждого кодировщика, плюс поведение камеры телефона, которое можно проверить самостоятельно, не доверяя нам на слово.

Зачем это нужно: большинство QR-инструментов публикуют матрицу совместимости. Мы публикуем корпус, стоящий за этой матрицей. Если вы отвечаете за парк сканеров, в рознице, на складе, в фармацевтике, авиации или DMV, вы можете прогнать этот корпус через собственные устройства и проверить каждое наше утверждение.

Скачать corpus.zip Набор fixtures JSON + CSV + методология + README. ~4 КБ.

Загрузка версии…

Как использовать корпус

Скачайте fixtures.

Каждый тестовый вектор находится в /test-vectors/fixtures.json. Один объект JSON на тип с полями ввода и ожидаемыми декодированными подстроками. Загружается в реальном времени с этого сайта, никаких устаревших копий.

Сгенерируйте QR-коды заново.

Возьмите карту fields любого fixture, введите значения в генератор для этого типа и нажмите «Сгенерировать». Полученный QR-код побитово идентичен тому, что наш CI тестирует в цикле.

Сканируйте собственным парком.

Направьте iPhone Camera, Android Camera, Google Lens, промышленный сканер (Zebra, Honeywell, Datalogic) или специализированный считыватель приложений (банковское приложение, аутентификатор) на сгенерированный QR-код. Убедитесь, что декодированный текст содержит каждую подстроку expect для данного fixture.

Сообщайте о расхождениях.

Если сканер в вашем парке вернёт декодирование, не совпадающее с fixture, создайте задачу. Мы воспроизведём проблему, добавим ваш сканер в публичную матрицу совместимости и (если это ошибка кодировщика) выпустим исправление.

Ожидаемые результаты сканирования, избранное подмножество

Это компактный вид полного fixture JSON, сгруппированный по поведению сканеров. Полный список всех типов, поддерживаемых Abundera, доступен на /test-vectors/.

ТипВходные данные fixtureiOS CameraAndroid CameraПрофессиональный сканер
URLhttps://example.com/testДекодируетДекодируетДекодирует
WiFiSSID=MyNet PSK=... WPAПодключается к сетиПодключается к сетиДекодирует payload
WiFi Enterprise (EAP)WPA2-EAP PEAP identity=alice@corpiOS 17+ДекодируетДекодирует
vCardFN=Alice ORG=Acme ...Добавить в контактыДобавить в контактыДекодирует payload
TOTPotpauth://totp/...?secret=JBSW...Приложение-аутентификатор читаетПриложение-аутентификатор читаетДекодирует URI
eSIMLPA:1$rsp.example.com$K2-LM...iOS 17.4+ подготавливаетAndroid 13+ подготавливаетДекодирует URI
Bitcoin (BIP-21)bitcoin:1A1zP1eP...Открывает приложение кошелькаОткрывает приложение кошелькаДекодирует URI
SEPA (EPC)BCD header + name + IBAN + amountТолько сырая строкаТолько сырая строкаПоддержка банковских приложений
Swiss QR-billSPC header + IBAN + address + amountТолько сырая строкаТолько сырая строкаНативная поддержка швейцарских банковских приложений
GS1 Digital Linkhttps://id.gs1.org/01/09506000134352Открывает URLОткрывает URLПрошивка POS разбирает AI
Data MatrixArbitrary payloadНет декодированияТолько Google LensНативный
AztecArbitrary payloadНет декодированияНекоторые Android-считывателиНативный
PDF417AAMVA or arbitraryНет декодированияGoogle Lens частичноНативный
AAMVA driver license@\n\x1e\rANSI 636014080002DL...iOS 17+ распознаёт водительское удостоверениеAndroid-приложения с поддержкой водительского удостоверенияНативный
EAN-130012345678905Декодирует цифрыДекодирует цифрыЛюбой розничный POS
Code 128ABC-123ДекодируетДекодируетНативный
Micro QRCompact payloadНет декодированияНет декодированияТолько промышленные считыватели
rMQRRectangular payloadНет декодированияНет декодированияНекоторые прошивки Scandit/Cognex

Что означает «ожидаемый результат сканирования»

Методологические заметки

Что ожидается

Смотрите также

Корпус последний раз прошёл регрессионное тестирование 2026-04-18. Проверенные устройства: iPhone 15 Pro / iOS 18.3, Pixel 8 / Android 14, Zebra DS8100.