Test e QA · 6 min di lettura

Generatore di indirizzi falsi: crea indirizzi di test validi (2026)

Un generatore di indirizzi falsi crea indirizzi sintetici strutturalmente validi per test di moduli e QA. Scopri le regole sull'ordine dei campi, la copertura di 38 paesi, il seeding e i limiti.

Di Charlie Simmon ·

Un generatore di indirizzi falsi produce indirizzi che sembrano strutturalmente corretti ma non descrivono alcuna famiglia, azienda o casella postale reale. Questa distinzione è l'intero prodotto. L'output è un fixture per test di moduli, seeding di database, mockup per screenshot e ambienti demo. Non è un modo per raggiungere una persona e non sostituisce un servizio di verifica degli indirizzi. Ogni indirizzo restituito da questo sito è assemblato da fixture sintetiche.

La parte utile di un indirizzo generato è la sua forma: l'ordine delle righe, il pattern del codice postale, il codice di stato o provincia, il set di caratteri. Sono esattamente le cose che rompono i moduli in produzione. Un indirizzo generato che le ignora è peggio di nessun fixture, perché supererà il tuo modulo e poi fallirà sui dati reali, oppure farà fallire il modulo per un motivo che non può verificarsi. Questa guida illustra cosa deve fare correttamente un generatore, come eseguirne il seeding e come i dati sintetici finiscono in luoghi dove non dovrebbero mai arrivare.

Cosa contiene realmente un indirizzo sintetico

Ogni risultato è assemblato da una definizione di paese, una delle cinque fixture di città di quel paese, un elenco di nomi di strade, un numero civico e un pattern di codice postale. Il generatore sceglie un paese, sceglie una fixture di città al suo interno, costruisce una riga stradale nell'ordine locale e compila il codice postale dal pattern. Nulla viene campionato da un database di consegne e nulla viene copiato da una casella postale reale.

Questo offre due garanzie e due non-garanzie. Garantito: il formato segue le convenzioni del paese e lo stesso seed restituisce lo stesso indirizzo. Non garantito: che la strada esista a quel numero, o che un codice postale non statunitense corrisponda a una zona di consegna reale. Per i ZIP statunitensi esiste un controllo di esistenza separato su un dataset di 40.979 righe nel verificatore di codici postali. Al di fuori degli Stati Uniti il controllo è solo strutturale, e il sito lo dichiara invece di lasciar intendere altro.

  • Formato: corretto per il paese selezionato, ogni volta
  • Riproducibilità: deterministico per un dato seed
  • Esistenza: solo ricerca ZIP statunitense, su 40.979 righe
  • Consegnabilità: mai dichiarata e mai implicita da un segno di spunta verde
  • Dati personali: nessuno, perché nessuna persona reale è rappresentata

Perché la correttezza del formato conta anche per dati usa e getta

I moduli di indirizzo raramente testano l'indirizzo. Testano il livello di validazione, il masking, i limiti di lunghezza, la dipendenza paese-regione e il serializzatore che scrive la riga nel database. Un fixture già malformato nasconde tutto questo. Se il tuo fixture canadese è "123 Main St, Toronto, ON 12345", il modulo accetta un pattern che un codice postale canadese reale non può mai rispettare, e il bug arriva in produzione.

Il fallimento opposto è altrettanto comune. I team scrivono a mano un fixture dall'aspetto reale ma sbagliato per il paese, poi aggiungono una soluzione nel validatore per accettarlo. Sei mesi dopo quella soluzione è portante e nessuno ricorda perché il campo del codice postale tedesco accetti lettere. I dati generati che seguono i pattern pubblicati eliminano entrambe le direzioni di deriva, purché il generatore stesso sia onesto su ciò che sa.

Dove gli indirizzi sintetici sono lo strumento giusto

Gli indirizzi sintetici appartengono a ogni livello sotto la produzione: unit test per parser e validatori, test di integrazione che scrivono e leggono righe di indirizzo, test end-to-end che compilano un modulo di checkout, test di carico che necessitano volume senza toccare un cliente reale e esecuzioni di screenshot localizzate per una pagina di marketing. Sono utili anche per il fuzzing, perché puoi generare deliberatamente valori al limite di un limite di lunghezza o di un set di caratteri.

Sono lo strumento sbagliato per qualsiasi cosa dipenda da un punto di consegna reale. Non usarli per controlli antifrode, verifica dell'identità, elusione di ban, creazione di account, manipolazione di recensioni o test end-to-end di un'integrazione di spedizione. Un indirizzo sintetico non ha una casella postale, quindi qualsiasi passaggio che richieda una scansione reale del corriere fallirà, e usare identità generate per ottenere beni o servizi è frode indipendentemente da come sono stati prodotti i dati.

  • Buono: unit test dei validatori, seed di staging, compilazione di moduli e2e, volume di carico
  • Buono: QA di localizzazione dove ogni locale necessita di un indirizzo locale plausibile
  • Buono: ambienti di screenshot e demo che non devono mai mostrare un cliente
  • Cattivo: KYC, scoring antifrode, screening sanzioni o qualsiasi cosa che si aspetti una consegna
  • Cattivo: analytics di produzione, perché le righe generate inquinano i calcoli di conversione

Copertura: 38 paesi con cinque fixture di città ciascuno

Il generatore copre 38 paesi. Ogni paese porta cinque fixture di città, quindi ci sono 190 definizioni di città in totale, e ogni città conosce il proprio codice di regione, il proprio pattern postale e le convenzioni stradali locali. La copertura è ponderata verso i mercati in cui i moduli di indirizzo vengono effettivamente costruiti: Nord America, Europa occidentale e settentrionale e i maggiori mercati dell'Asia-Pacifico e dell'America Latina.

Due paesi del set non hanno alcun codice postale: Hong Kong e gli Emirati Arabi Uniti. Il generatore lascia il campo vuoto per entrambi invece di inventare un numero. Questo è il comportamento corretto. Un modulo che contrassegna il codice postale come obbligatorio in quei paesi è rotto, e un fixture che fornisce un codice falso nasconderà il difetto finché un utente reale non lo incontra.

RegionePaesi nel set di fixtureConteggioCodice postale
Nord AmericaStati Uniti, Canada, Messico3Sì, tutti e tre
Europa occidentaleRegno Unito, Irlanda, Francia, Germania, Paesi Bassi, Belgio, Svizzera, Austria8Sì, tutti e otto
Europa settentrionaleSvezia, Norvegia, Danimarca, Finlandia4Sì, tutti e quattro
Europa meridionale e orientaleSpagna, Portogallo, Italia, Polonia, Cechia, Grecia, Romania, Ungheria8Sì, tutti e otto
Asia-PacificoGiappone, Corea del Sud, Singapore, Australia, Nuova Zelanda, India, Cina, Hong Kong8No per Hong Kong
America LatinaBrasile, Argentina, Cile, Colombia, Perù5Sì, tutti e cinque
Medio Oriente e AfricaEmirati Arabi Uniti, Sudafrica2No per gli Emirati Arabi Uniti
Totale38 paesi, cinque fixture di città ciascuno38Due senza codice

Ordine dei campi e pattern postali che puoi verificare

Un generatore è valido quanto la sua tabella dei paesi. I pattern seguenti sono quelli che più spesso vengono appiattiti in un unico modello a forma di US. Nota che il Giappone inverte completamente l'ordine, che i Paesi Bassi mettono lettere dopo le cifre e che Brasile e Giappone usano entrambi un trattino convenzionale anziché strutturale.

I codici postali devono essere memorizzati come stringhe. Germania, Francia, Spagna, Italia e Polonia emettono tutti codici con zeri iniziali, e una colonna intera trasforma silenziosamente 01067 in 1067. Lo stesso vale per i codici australiani e brasiliani. Se il tuo schema ha una colonna postale numerica, il fixture la esporrà nel momento in cui esegui il seed di un indirizzo tedesco.

PaeseOrdine delle righePattern postaleNota di archiviazione
Stati UnitiVia, città, ST ZIP5 cifre o 12345-6789Mantieni il trattino in ZIP+4
CanadaVia, città, ST A1A 1A1Lettera cifra lettera, spazio, cifra lettera cifraNon consentire D, F, I, O, Q, U come prima lettera
Regno UnitoVia, città, A9A 9AA2-4 caratteri esterni, spazio, 3 caratteri interniUn solo spazio; maiuscolo
GermaniaVia, città a 5 cifre5 cifreGli zeri iniziali sono significativi
Paesi BassiVia, città a 4 cifre AB4 cifre, spazio, 2 lettere maiuscoleLe lettere fanno parte del codice
GiapponeCodice postale, prefettura, città, via3 cifre, trattino, 4 cifreUnità più grande per prima
BrasileVia, città - ST, 12345-6788 cifre, trattino dopo la quintaIl trattino è convenzionale
Hong KongVia, distretto, Hong KongNessunoNon richiedere mai un codice
Emirati Arabi UnitiVia, città, emiratoNessunoLa casella postale è la convenzione comune

Seeding: far tornare due volte lo stesso indirizzo falso

Un generatore che restituisce un indirizzo diverso a ogni chiamata non è un fixture, è rumore. La generazione con seed fissa un input in modo che la sequenza di output sia stabile tra macchine e tra esecuzioni. Passa il seed esplicitamente nei test, registralo con qualsiasi dataset generato e tratta un cambio di seed come un cambio di fixture che richiede revisione.

Il pattern pratico è derivare seed per entità da un seed padre, ad esempio un hash del seed e dell'indice del record. Questo mantiene stabile il dataset producendo comunque valori diversi per riga. Rende anche riproducibili i fallimenti: quando la CI segnala un indirizzo errato, il seed più l'indice bastano a rigenerare esattamente quella riga. Non derivare mai il seed dall'orologio o da una chiamata casuale, perché è così che un test instabile diventa un mistero permanente.

  • Memorizza il seed accanto al dataset generato, non in un commento
  • Deriva i seed dei record come hash(seed, index) così i cambi di ordine restano visibili
  • Non usare mai come seed Date.now() o la sorgente casuale del processo nei test
  • Salva uno snapshot del primo e dell'ultimo record di ogni dataset, non di tutti
  • Rigenera invece di committare grandi blob JSON di indirizzi falsi

Validazione strutturale versus controllo di esistenza

Sono due affermazioni diverse e confonderle è il modo più comune in cui una suite di test mente ai suoi proprietari. Un controllo strutturale risponde a "questa stringa corrisponde al pattern del paese". Un controllo di esistenza risponde a "questo codice appare in un dataset di riferimento". Il verificatore di codici postali su questo sito fa il primo per ogni paese e il secondo solo per i ZIP statunitensi, dove consulta 40.979 righe.

Un passaggio strutturale ti dice che il modulo non rifiuterà un valore ben formato. Non ti dice nulla su se un corriere può consegnarlo, se il numero civico è nel range per quella strada o se la città corrisponde allo ZIP. Questi richiedono dati di riferimento postali che questo sito non fornisce. Scrivi le tue asserzioni in modo che corrispondano al controllo che esegui effettivamente, altrimenti i nomi dei test prometteranno troppo per anni.

ControlloCosa dimostra un passaggioCosa non dimostra
Corrispondenza al pattern del paeseIl valore è ben formato per quel paeseChe il codice sia assegnato
Esistenza ZIP statunitense (40.979 righe)Lo ZIP a 5 cifre appare nel datasetChe la strada o la città corrispondano
Controllo dei campi obbligatoriIl modulo verrà inviatoChe l'indirizzo sia coerente
Round trip del parserLa stringa può essere divisa e ricostruitaChe la divisione sia semanticamente corretta
Output del generatore di indirizziIl fixture ha la forma giustaQualsiasi cosa sul mondo reale

Campi che questo generatore deliberatamente non produce

Il sito non genera numeri di previdenza sociale, numeri di carte di pagamento, valori IMEI o IMSI, indirizzi Bluetooth o numeri di serie dei dispositivi. È un confine deliberato, non una funzionalità mancante. Quegli identificatori portano checksum, registri di allocazione o restrizioni legali, e un valore generato dall'aspetto plausibile è molto più pericoloso di uno ovviamente falso perché può superare un validatore ingenuo e finire in uno screenshot, in un ticket o in un commit.

Lo stesso confine vale per i dati di contatto. Gli indirizzi email generati usano sempre il dominio riservato example.test, che non può mai risolvere a una casella postale reale. I numeri di telefono generati sono limitati al blocco NANP 555-0100 fino a 555-0199 negli Stati Uniti e in Canada, l'intervallo riservato all'uso fittizio. Se un flusso di lavoro richiede un numero di carta o un identificativo fiscale, usa i valori di test ufficiali pubblicati dal processore o dall'autorità fiscale, e mai un valore estratto da un generatore.

  • Non generati: SSN, ITIN, EIN o qualsiasi documento d'identità nazionale
  • Non generati: numeri di carte di credito o debito, inclusi quelli validi secondo Luhn
  • Non generati: IMEI, IMSI, MEID o indirizzi di dispositivi Bluetooth
  • Non generati: numeri di serie, targhe o numeri di passaporto
  • Email generate: solo example.test, un dominio riservato che non risolve
  • Telefoni generati: solo NANP 555-0100 fino a 555-0199 per Stati Uniti e Canada

Domande

Gli indirizzi sono reali?+
No. Ogni indirizzo è assemblato da fixture sintetiche e non descrive alcun punto di consegna reale. Il sito non dichiara la consegnabilità, e solo i ZIP statunitensi ricevono un controllo di esistenza su un dataset di 40.979 righe.
Quanti paesi copre il generatore?+
38 paesi, ciascuno con cinque fixture di città. Hong Kong e gli Emirati Arabi Uniti sono inclusi ma restituiscono un codice postale vuoto, perché nessuno dei due paesi usa codici postali.
Posso ottenere due volte lo stesso indirizzo?+
Sì. La generazione è con seed, quindi lo stesso seed e indice restituiscono lo stesso indirizzo su qualsiasi macchina. Memorizza il seed con il dataset così i fallimenti restano riproducibili.
Posso usare gli indirizzi generati in produzione?+
No. Sono fixture di test. Le righe generate in analytics di produzione o nelle tabelle clienti corrompono il reporting e possono fuorviare chiunque in seguito le tratti come record reali.
Perché lo strumento rifiuta di generare SSN o numeri di carta?+
Quegli identificatori sono regolamentati, con checksum o entrambe le cose, e un falso plausibile può scivolare oltre una validazione ingenua finendo in screenshot e ticket. Usa invece i valori di test ufficiali del processore o dell'autorità.

Gli esempi sono sintetici. Non usare un indirizzo generato per verifiche di identità, registrazione di account o consegne.

Standard di riferimento

Leggi dopo

Tutte le guide