Laboratório QA de IMEI: importar, verificar e reproduzir
Execute um teste CSV completo com resultados esperados e observados. Verifique formato, Luhn, valores ausentes e duplicados e repita a mesma verificação sem ligação à Internet.
Todos os exemplos são inventários simulados com dados sintéticos. Não são consultados Apple MDM, Samsung Knox, operadoras ou bases de dados de dispositivos. O texto importado é processado no navegador; o laboratório não o envia para o servidor.
1. Executar um teste de inventário
Até 200 linhas. No CSV use o cabeçalho imei; colunas opcionais: case_id, record_id, slot, expected_status, expected_duplicate. O CSV completo do gerador também é aceite: os metadados descritivos não são verificados nem comprovam a identidade do dispositivo. Exportar entrada CSV conserva as colunas originais. Os identificadores permanecem como texto. As linhas vazias são ignoradas; use uma linha CSV explícita para testar um valor ausente.
Opcional: reproduzir casos a partir de uma semente
A semente e o cenário selecionado geram as mesmas cadeias com o contrato 1.0.0. A entrada acima é substituída por casos positivos e negativos identificados. A semente não seleciona prefixos de fabricantes.
Relatório por linha
Contrato randomimei-qa 1.0.0. As chaves de estado dos ficheiros permanecem em inglês. Um controlo válido não comprova atribuição, propriedade ou estado na rede.
O JSON preserva as cadeias exatas. Ao importar CSV numa folha de cálculo, defina os identificadores como Texto para preservar os zeros. O relatório CSV acrescenta um apóstrofo a células semelhantes a fórmulas; o JSON conserva o original.
Entradas originais, estado observado, estado esperado, duplicados e resultados das verificações.
Caso / registo simulado
Original / normalizado
Observado
Esperado
Duplicado
Verificação da expectativa
Por que o exemplo Apple separa os identificadores
O primeiro registo simulado tem dois identificadores distintos, IMEI1 e IMEI2. Um segundo repete um identificador e omite IMEI2; um terceiro tem um erro de controlo deliberado. Um dado ausente não é uma falha de controlo. O relatório conserva record_id e slot sem afirmar que valida o esquema de resposta Apple ou a configuração SIM de um dispositivo.
Por que o exemplo Samsung normaliza antes de comparar
Dois registos simulados contêm os mesmos algarismos com separadores diferentes. O duplicado é detetado após normalização e a entrada original permanece visível. Outra linha preserva zeros iniciais e outra falha Luhn. O relatório permite investigar duplicados; não junta nem corrige registos automaticamente e não comprova compatibilidade com Knox.
Descarregue e extraia o projeto completo e execute estes comandos na respetiva pasta. Requer Node.js 20 ou posterior e npm. Não há dependências para instalar. O navegador e o projeto executam exatamente o mesmo módulo contract.mjs.
O comando de verificação compara cada campo observado com o relatório esperado publicado. Estas são as linhas de sucesso esperadas; qualquer diferença termina com o código 1.
Execução local de referência: 2026-09-09T18:02:03.915Z · Node v26.7.0 · 9 testes aprovados · 20 linhas verificadas sem diferenças. Os ficheiros observados registam essa execução; não constituem uma certificação externa.
O contrato remove espaços em branco, separadores Unicode e hífenes ASCII. Depois só aceita algarismos ASCII. Um corpo de 14 algarismos está incompleto; uma proposta de 15 algarismos é mostrada separadamente. Luhn duplica as posições 2, 4, 6…14 a partir da esquerda do corpo.
Os duplicados comparam cadeias normalizadas completas de 15 algarismos por ordem de entrada, incluindo as de controlo incorreto. As linhas seguintes remetem para o primeiro caso. Os corpos incompletos e valores mal formados não participam. Os campos slot permanecem como etiquetas; a sua aplicação decide quais são obrigatórios.
As colunas opcionais expected_status e expected_duplicate transformam o CSV em verificações. A ausência de uma expectativa não equivale a aprovação. Um caso deliberadamente inválido é um teste correto quando a falha observada corresponde ao esperado.
Exemplos e relatórios originais: CC0-1.0. Código fonte: MIT. O kit não inclui catálogos TAC de terceiros. Mantenha os dados sintéticos em ambientes de teste; os valores gerados podem coincidir com identificadores atribuídos.