É fácil criar e testar software com reconhecimento de localização usando apenas exemplos convenientes e bem-comportados: um endereço limpo em uma grande cidade, um endereço IP de banda larga residencial, um local bem distante de qualquer fronteira ou limite de fuso horário. Todos esses testes vão passar de forma confiável, e todos eles vão dizer quase nada sobre como o seu sistema se comporta nas situações com maior probabilidade de realmente causar um problema quando ele encontrar dados reais e mais bagunçados em produção.
Um conjunto de testes realmente útil para software de localização precisa incluir de propósito os casos mais difíceis que esta série abordou individualmente: um endereço em um país sem numeração convencional de imóveis, uma consulta de um local muito próximo de uma fronteira internacional, um horário que cai exatamente dentro de uma transição de horário de verão, um endereço IP conhecido por pertencer ao pool de CGNAT de uma operadora móvel ou a um provedor de internet via satélite, uma coordenada perto dos polos, onde as suposições baseadas em longitude começam a falhar, e um código postal de um país cujos dados postais são comparativamente pouco detalhados, em vez de um de um país com dados de referência excepcionalmente detalhados.
Nenhum deles é um cenário exótico e improvável inventado só por uma questão de rigor. Cada um representa uma categoria real e recorrente de entrada que qualquer base de usuários grande o suficiente e realmente global vai acabar enviando a você, de forma previsível, muitas vezes antes do que você imagina. Um sistema que nunca foi testado contra eles não vai falhar de forma ruidosa e óbvia, fácil de diagnosticar. Na maioria das vezes, ele vai falhar em silêncio, retornando um resultado aparentemente plausível, mas sutilmente errado, que passa em todas as verificações superficiais e só aparece como um problema real muito depois, geralmente como um chamado de suporte confuso ou uma métrica de negócio inexplicável que não fecha, e a essa altura é bem mais difícil rastreá-lo até a causa raiz real.
Montar esse tipo de conjunto de testes é, em si, a mesma disciplina descrita anteriormente para medir tanto a precisão quanto a cobertura: uma coleção fixa, variada de propósito e reutilizável de entradas de teste, verificada não apenas quanto a voltar ou não uma resposta plausível, mas especificamente quanto a se os campos precision e confidence dessa resposta se comportam de forma sensata e consistente, dada a dificuldade real daquela entrada específica. Um resultado de baixa confiança e precisão grosseira para um caso realmente difícil é um resultado correto e honesto e deve ser tratado como aprovado. Um resultado errado com alta confiança, ou um erro não tratado, é a falha real que vale a pena pegar antes que os seus usuários a encontrem por você.
Nossa documentação cobre os campos exatos e o comportamento esperado em cada endpoint, que é a referência certa para começar a montar esse tipo de conjunto de testes deliberadamente adverso para os casos extremos que mais importam para a sua aplicação e os seus usuários.
Nem todo conjunto de dados com informações de localização de aparência pública pode ser usado legalmente dentro de um produto pago. Os termos de licenciamento, e não a disponibilidade técnica, costumam definir o limite real.
Quando uma consulta realmente não pode ser resolvida de forma confiável, não retornar nada é uma resposta melhor do que retornar um palpite disfarçado de fato. Veja o raciocínio por trás dessa escolha.
Classificar um endereço IP como comercial ou residencial é um sinal realmente útil para muitas aplicações, mas é uma inferência a partir das características da rede, não um fato garantido.