Como testamos os geradores da Varnip
Última atualização: 2 de novembro de 2026. Esta página lista o que os testes da Varnip verificam em cada gerador, quantos casos rodam, qual software lê os arquivos de volta e o que os testes não conseguem mostrar. As contagens foram lidas no código de teste em 14 de outubro de 2026.
Como a Varnip testa os geradores?
A Varnip testa cada gerador criando arquivos para entradas conhecidas e lendo-os de volta com um decodificador de software, o zxing-wasm. Um teste de leitura de volta só passa se o texto que volta for o texto que entrou. As barras do código de barras e os quadrados do QR Code são desenhados por outro código que não o decodificador; por isso, para eles, quem lê não é quem escreve. O Data Matrix é a exceção, como a seção de limites explica. Os testes de navegador desenham os arquivos nos motores Chromium, Firefox e WebKit. Antes de cada publicação, um único comando roda todos os testes e as outras verificações listadas abaixo, e a publicação não sai se alguma falhar.
Como o gerador de código de barras é testado?
O gerador de código de barras é testado desenhando todos os formatos em todos os tamanhos e resoluções e lendo cada arquivo de volta. O gerador faz quatro tipos de código de barras: Code 128, UPC-A, EAN-13 e EAN-8. O teste desenha cada um nos três tamanhos do menu Tamanho (80%, 100% e 200% da barra de 0,33 mm) e em duas resoluções (300 e 600 dpi). São 24 combinações em cada motor de navegador, ou seja, 72 arquivos PNG e 72 arquivos SVG no total. Cada combinação gera quatro leituras: o PNG e o SVG, cada um com a opção “try harder” do decodificador ligada e desligada. São 96 leituras em cada navegador e 288 no total. O navegador desenha o PNG em um canvas, como o seu faz; o SVG é escrito pelo código do gerador no navegador e transformado em imagem para o decodificador por uma biblioteca de renderização, a Resvg.
O que é medido nos arquivos?
Além de ler cada arquivo de volta, o teste mede o próprio arquivo: a resolução gravada no PNG, pixels inteiros em cada barra, a largura da barra dos formatos de varejo dentro de 80% a 200% da barra de 0,33 mm (a faixa da EAN/UPC Symbol Reference da GS1 Canada (2018), em inglês), as margens em branco (zonas de silêncio), o tamanho do SVG em milímetros e que o SVG não tem elementos de texto.
O que mais é verificado?
Testes unitários conferem o dígito verificador em três números conhecidos, recusam um dígito verificador errado sem nunca corrigi-lo e mantêm o texto dentro da caixa do símbolo em todos os formatos. Também conferem que um ZIP feito pelo gerador de ZIP da página passa no teste de integridade do unzip e do 7-Zip, e que o texto digitado nunca vira marcação na prévia (cinco textos hostis). O teste de navegador da página confere que os arquivos baixados pela página são lidos de volta em todos os formatos, que uma geração em lote de 1.000 arquivos SVG ou 100 arquivos PNG sai inteira e que o 100º PNG do ZIP é lido de volta. Em 5 de outubro de 2026, medimos também o PDF que a impressão do Chromium gera: a régua de 50 mm mediu 50,0 mm.
As páginas de um formato só são testadas do mesmo jeito?
As páginas de Code 128, UPC e EAN-13 usam o mesmo gerador de código de barras, travado em um formato, então os testes acima cobrem os arquivos delas. Em cada uma das três páginas, no Chromium, no Firefox e no WebKit, um teste de navegador também confere que a página abre com o próprio exemplo e sem seletor de formato, e que os arquivos PNG e SVG que ela baixa e um arquivo de um ZIP em lote são lidos de volta com o decodificador de software. A página de código de barras e QR Code é verificada do mesmo modo nos dois sentidos da sua chave: cada ferramenta baixa um arquivo que é lido de volta, e a ferramenta escondida não recebe parada do teclado.
Como o gerador de QR Code é testado?
O gerador de QR Code é testado escrevendo códigos para textos de exemplo, lendo cada um de volta e conferindo o nível de correção de erros que ele carrega. Um conjunto de 7 exemplos (um endereço de site, dígitos, letras maiúsculas com símbolos, texto com letras acentuadas, caracteres japoneses e emoji, uma rede Wi-Fi, um cartão de contato e um texto com espaços nas duas pontas) é escrito nos quatro níveis de correção de erros, o que dá 28 códigos. Cada um é transformado em imagem e lido de volta, e o teste falha a menos que o texto seja idêntico e o decodificador informe o nível escolhido.
O que os testes de navegador acrescentam?
No Chromium, no Firefox e no WebKit, o teste gera arquivos PNG para quatro textos (um endereço de site; um texto com acentos, caracteres japoneses e emoji; uma rede Wi-Fi; e um texto longo) em dois níveis de correção de erros e dois tamanhos impressos (2 cm a 300 dpi e 5 cm a 600 dpi). São 16 arquivos PNG em cada navegador e 48 no total. Cada arquivo é conferido de cinco maneiras: o texto volta idêntico, o nível volta como foi escolhido, os quadrados têm pixels inteiros e a imagem é quadrada, a resolução está no arquivo e a margem em branco no topo e à esquerda tem pelo menos quatro quadrados de largura. Um teste unitário mede essa margem nos quatro lados, a margem que a DENSO WAVE (2026) diz que um QR Code precisa ter.
Os dez tipos de QR Code são lidos de volta?
Os dez tipos são lidos de volta, mas nem todos a partir da página. Para cinco tipos (Site, Wi-Fi, Texto, SMS e Localização), os arquivos PNG e SVG que a página baixa no Chromium, no Firefox e no WebKit são lidos de volta: 30 arquivos. Os outros cinco tipos (Contato, E-mail, Telefone, WhatsApp e Evento) são lidos de volta no Node.js a partir do mesmo código que monta o conteúdo deles, não a partir do botão de baixar da página do gerador de QR Code.
Como entradas difíceis são testadas?
Nomes de Wi-Fi são testados com 8 casos hostis que usam os símbolos ; , : \ e a aspa dupla dentro do nome. O texto passa por reimplementações nossas de como o Android e a biblioteca ZXing leem códigos de Wi-Fi, e o gerador deve avisar exatamente nos casos em que um leitor mais antigo do Android falha. Cartões de contato (vCard) e eventos de calendário são conferidos com 16 e 12 casos marcados, incluindo uma linha de data digitada na descrição de um evento, que deve continuar sendo texto e nunca virar uma segunda data de início, e a hora que o horário de verão repete. A senha de um Wi-Fi nunca vai parar no nome de um arquivo.
As páginas de Wi-Fi, localização e vCard são testadas?
Sim: nas páginas de Wi-Fi, localização e vCard, no Chromium, no Firefox e no WebKit, um teste de navegador confere que a página abre com o próprio exemplo e não mostra outro tipo de código, que os arquivos PNG e SVG que ela baixa são lidos de volta como o exemplo e que, depois de editar um campo, os novos arquivos são lidos de volta como foi digitado. O mesmo teste digita em cada uma dessas páginas e confere que o que foi digitado não aparece em nenhuma requisição, nenhuma contagem e nenhum nome de arquivo.
Como o gerador de GS1 Digital Link é testado?
O gerador de GS1 Digital Link é testado com 33 casos: 21 entradas que devem produzir um endereço exato e 12 que devem ser recusadas com um motivo. Cada resultado esperado vem da GS1: dos exemplos do seu padrão de URI, dos testes do motor de código aberto da GS1 ou da execução desse motor. As 12 recusas cobrem um dígito verificador errado, um lote muito longo ou com espaço ou caractere proibido, uma data que não existe ou não tem seis dígitos e um lote sem GTIN. Cada recusa aparece sob o campo a que pertence. O formato do endereço está descrito na norma GS1 Digital Link URI syntax (2026), em inglês.
Como os códigos são lidos de volta?
Em 4 dos casos, o endereço é escrito como QR Code e lido de volta como texto simples. Em 4 endereços, o Data Matrix é escrito, desenhado como SVG, transformado em imagem e lido de volta como o mesmo texto. O teste do Data Matrix também confere que o símbolo é quadrado e que escrever o mesmo endereço duas vezes dá o mesmo símbolo. Para 3 endereços de exemplo nos dois tipos de código, no tamanho impresso padrão da página, de 2 cm a 600 dpi, todo quadrado fica entre 0,396 e 0,990 mm, a faixa da ficha técnica da GS1 Nova Zelândia sobre códigos 2D (2025), em inglês. Nos três navegadores, os arquivos SVG de QR Code e de Data Matrix que a página baixa são lidos de volta como o endereço mostrado na tela.
E a privacidade do que você digita?
O teste da página digita um GTIN, um lote, um número de série, uma data e um domínio, depois confere que nenhum deles aparece em qualquer requisição da página e que nenhuma requisição sai do servidor de teste local.
Como o gerador de Data Matrix é testado?
O gerador de Data Matrix é testado escrevendo quatro textos de exemplo como Data Matrix e lendo cada um de volta: um endereço de site, um texto com acento e emoji, um número de lote com barra e um texto de 1.500 letras. Cada símbolo é desenhado como SVG, transformado em imagem e lido de volta pelo decodificador de software, e o teste falha a menos que o texto seja idêntico, o decodificador informe um Data Matrix simples e a margem em branco tenha um quadrado de largura. Um texto longo demais para um Data Matrix deve ser recusado, nunca cortado. No Chromium, no Firefox e no WebKit, um teste de navegador confere que a página abre com o exemplo já desenhado, que os arquivos PNG e SVG que ela baixa são lidos de volta, que não há controle de proteção contra danos e que os tamanhos impressos são 2, 3, 5 e 10 cm. O decodificador de software não é um celular nem um leitor: escaneie um código impresso antes de imprimir muitos.
O que roda antes de cada publicação?
Antes de cada publicação, um comando roda estas verificações em ordem e para na primeira falha.
- A versão do Node.js e o arquivo de lock são os esperados.
- Os arquivos de borda do site (cabeçalhos de resposta e redirecionamentos) combinam com a configuração de indexação.
- A verificação de tipos e a construção do site.
- Todos os arquivos de teste: os testes unitários, os testes de navegador e os testes das páginas construídas.
- Uma verificação de que o JavaScript construído roda nos navegadores que a Varnip suporta (ES2021).
- Orçamentos de tamanho: nenhuma página entrega mais script do que o seu orçamento.
- Licenças: toda fonte e toda dependência entregue está registrada com a sua licença.
- Uma varredura dos arquivos e de todo o histórico atrás de segredos, como tokens de acesso.
- Uma auditoria de segurança das dependências, em que todo aviso de gravidade alta ou crítica precisa estar listado com um motivo e uma data de revisão.
Os testes das páginas construídas conferem, entre outras coisas, que toda página tem endereço canônico e dados estruturados, que o mapa do site traz uma data para cada página, que nenhum script ou estilo embutido seria bloqueado pela política de segurança de conteúdo e que o Worker que conta as visitas guarda só uma lista fechada de campos. Em 14 de outubro de 2026, os nove arquivos de teste que não precisam de navegador somavam 135 testes, e os 135 passaram.
O que os testes não cobrem?
Os testes têm limites, e esta página os informa para você poder julgar os resultados.
- O Data Matrix é escrito e lido pela mesma biblioteca (zxing-wasm). A leitura de volta mostra que esse decodificador consegue ler o arquivo, não que dois decodificadores independentes concordam. As leituras de volta do QR Code e do código de barras não têm esse limite.
- Os analisadores que fazem o papel do leitor de Wi-Fi do Android e dos leitores de Wi-Fi, e-mail e SMS da biblioteca ZXing são reimplementações nossas, não os programas originais.
- Os testes não usaram a câmera de um celular, um leitor de loja nem uma etiqueta impressa. Fora dos testes, em um celular Android, um aplicativo leitor leu um PNG de Code 128 baixado. Escaneie um código impresso antes de imprimir muitos.
- Os testes de navegador rodam os motores Chromium, Firefox e WebKit que a ferramenta de teste Playwright instala, em um computador, não os navegadores do seu celular; nenhum iPhone de verdade foi usado.
- O gerador de GS1 Digital Link não consulta o id.gs1.org nem o seu domínio. Ele confere o dígito verificador do GTIN, o que não é o mesmo que conferir se um GTIN está registrado ou pertence a você. Em 14 de outubro de 2026, a nossa própria checagem encontrou que o GTIN de exemplo da GS1, 09520123456788, respondeu “Not Found” no id.gs1.org.
- O tamanho de uma impressão depende da janela de impressão. O teste de impressão mediu o PDF que o Chromium gera, não o papel de uma impressora; confira a régua de 50 mm na sua própria impressão.
- As contagens e as datas desta página vêm dos testes de 14 de outubro de 2026, feitos na versão em inglês do site; os testes de navegador ainda não abrem as páginas em português.
Como informo um erro nesta página?
Você pode escrever para hello@varnip.com. Se um teste descrito aqui não combina com o que você encontra em um gerador, ou se você tem um código que não é lido, envie a entrada e o tipo de arquivo, e a única pessoa que responde pela Varnip vai ler. Veja a página Sobre para saber quem é.