Genera un piccolo gruppo di date e trasformalo in casi di test intenzionali. Conserva data iniziale, finale, filtro, regola di unicità e formato con la fixture; usa YYYY-MM-DD per i valori destinati alle macchine e aggiungi casi separati per fine mese e anni bisestili.

Cosa deve produrre un generatore di date casuali per i test

Una fixture utile è più di una stringa che sembra una data. Ha un motivo: data di registrazione, intervallo di prenotazione, scadenza, filtro di un report o evento da ordinare. Il generatore offre rapidamente varietà, ma il piano di test stabilisce cosa deve dimostrare. Inizia nominando il campo e il comportamento da verificare.

Una lista ordinata per created_at dovrebbe contenere mesi diversi, non lo stesso giorno di gennaio in ogni riga. Un modulo di prenotazione deve ricevere date prima, dentro e dopo la finestra consentita. Una regola sull'età va testata il giorno prima del compleanno, nel giorno esatto e nel giorno seguente. L'estrazione è l'input; l'asserzione resta tua responsabilità.

  • Nomina il campo o la funzione che riceverà la data.
  • Definisci il comportamento che deve valere per ogni valore.
  • Decidi quali date aggiungere deliberatamente invece di lasciarle al caso.

Stabilisci se il campo è data, ora o timestamp

Prima di generare, chiarisci il significato del campo. Una data di calendario, come una scadenza, non ha fuso orario. Un campo come created_at contiene un'ora e di solito richiede una zona esplicita. Un selettore data-ora unisce i due concetti e può dipendere dall'ora legale. Convertire una data pura nella mezzanotte locale può spostarla al giorno precedente in un'altra zona.

Per i valori senza ora preferisci 2026-11-18 quando saranno salvati, ordinati, confrontati o inviati a un'API. Mantieni una versione estesa per schermate e revisione umana. I formati numerici americano ed europeo servono a testare la visualizzazione, ma sono ambigui per un parser: 03/04 può significare 4 marzo o 3 aprile. Prova separatamente interfaccia e contratto del parser.

Formati per lavori comuni sui dati di test
FormatoAdatto aControllo
YYYY-MM-DDCampi database, API e fixtureNon ambiguo e ordinabile come testo se valido.
MM/DD/YYYYVisualizzazioni statunitensiVerifica un parser esplicitamente USA.
DD/MM/YYYYVisualizzazioni regionaliTesta la locale senza indovinare dalla stringa.
Data estesaSchermate, e-mail e reportControlla nomi dei mesi, accessibilità e a capo.
Data e oraLog, prenotazioni ed eventiAggiungi separatamente fuso e ora legale.

Usa limiti inclusivi invece di un periodo vago

Scrivi due estremi concreti. From e To sono inclusivi: un intervallo di un giorno contiene un solo valore e un anno intero comprende 1 gennaio e 31 dicembre. La regola è facile da spiegare nel piano e da controllare con un'asserzione. Se l'applicazione esclude il limite superiore, converti la fixture o documenta la differenza.

Un intervallo ampio mostra la variazione normale, ma non garantisce i confini. Riducilo attorno alla fine di un mese, al cambio d'anno o a una soglia di età per rendere chiaro il risultato atteso. Usa un campione per la distribuzione e un elenco scelto a mano per i limiti; un'estrazione fortunata non deve creare falsa sicurezza.

  • Intervallo ampio: controlla ordinamento, raggruppamento, paginazione e distribuzione.
  • Intervallo breve: controlla estremi inclusivi e limite della quantità.
  • Intervallo di confine: controlla fine mese, anni bisestili e regole di business.
  • Intervallo vuoto: controlla l'errore quando il filtro lascia zero date.
Calendario collegato a formati di data e controlli sul database
Un flusso di dati di test deve conservare il confine del calendario e il formato richiesto dal sistema.

Crea campioni realistici senza perdere il controllo

Inizia con pochi valori. Da cinque a venti date bastano spesso per controllare una fixture a mano; un lotto più grande può riempire una tabella di staging o testare la paginazione. Mantieni l'unicità quando ogni riga è un evento diverso. Consenti ripetizioni solo per testare import duplicati, più righe nello stesso giorno o campionamento con reinserimento.

Applica il filtro dei giorni prima di valutare il risultato. Dal lunedì al venerdì è una regola del calendario, non un calendario delle festività. Un lunedì può essere chiuso in un paese o in un'azienda. Se il prodotto richiede giorni lavorativi per paese, genera i giorni normali e aggiungi un set di festività dalla fonte del prodotto.

  • Genera prima un lotto piccolo da ispezionare.
  • Usa valori unici per righe diverse e ripetizioni per testare i duplicati.
  • Usa YYYY-MM-DD per le macchine e una data estesa per le persone.
  • Copia intervallo e filtro accanto all'elenco dei risultati.

Aggiungi le date che il campionamento può non trovare

I campioni casuali mostrano la variazione comune, ma le date rare vanno inserite esplicitamente. Aggiungi il 29 febbraio di un anno bisestile e i giorni vicini. Inserisci l'ultimo giorno di un mese da 30 e di uno da 31 giorni. Usa 31 dicembre e 1 gennaio quando un report o un abbonamento attraversa l'anno.

Per le regole di età o idoneità calcola il confine dal requisito e prova entrambi i lati. Chi compie 18 anni oggi è diverso da chi li compie domani. Per scadenze e rinnovi prova la data esatta, l'istante precedente e il primo giorno valido dopo. Il generatore fornisce i valori, il piano l'asserzione.

  • Anno bisestile: 29 febbraio e giorni vicini.
  • Fine mese: febbraio, aprile, giugno, settembre e un mese da 31 giorni.
  • Cambio d'anno: 31 dicembre, 1 gennaio e data di chiusura del report.
  • Confini di regola: giorno prima, giorno esatto e giorno dopo.

Rendi i dati spiegabili e ripetibili

Una fixture è più facile da mantenere quando il revisore può rispondere senza aprire il generatore: quale intervallo, quali date erano ammesse, i duplicati erano possibili e quale formato è stato copiato? Metti le risposte nel nome o in una piccola metadata. `orders_2026Q1_unique_iso` comunica più di `random_dates_1`.

Confronta l'elenco con la validazione reale. Verifica parsing, rifiuto delle stringhe non valide, corrispondenza tra visualizzazione e valore salvato e ordinamento cronologico invece che alfabetico. Alcune asserzioni sull'elenco sono più utili dell'affermazione che il campione sia casuale.

  • Mantieni intervallo, filtro, quantità, unicità e formato insieme al risultato.
  • Asserisci separatamente validità, parsing, ordine, visualizzazione e limiti.
  • Salva l'output che ha causato il problema per riprodurlo.

Cosa possono dimostrare le date generate

Una data generata dimostra che il codice accetta e tratta il valore scelto. Non dimostra che un appuntamento sia disponibile, che una festività valga in un paese o che un termine legale sia stato interpretato correttamente. Per queste affermazioni servono calendario di dominio, documento di policy o fonte autorevole.

Mantieni il perimetro onesto: pianificazione, esempi, fixture QA e campionamento ordinario. Per password, codici, token, estrazioni regolate o decisioni verificabili usa una sorgente casuale progettata per la sicurezza.

Cinque passaggi dall'intervallo alla fixture

  1. Dare un nome al comportamentoScrivi il campo, la regola o il flusso che le date devono esercitare.
  2. Scegliere il modelloSepara la data pura da data-ora e fuso orario.
  3. Impostare l'intervalloInserisci inizio, fine, quantità e filtro dei giorni se necessario.
  4. Aggiungere i confiniIncludi anni bisestili, fine mese, cambio d'anno e soglia di business.
  5. Salvare il contestoConserva intervallo, regole, formato e output fallito nel report.

FAQ sulle date casuali per i test

Perché usare un generatore di date casuali per i test?

Crea rapidamente valori vari per evitare di testare moduli, report, API e query sempre con la stessa data. Servono comunque confini e asserzioni intenzionali.

Quale formato è migliore per una fixture?

Usa YYYY-MM-DD per valori salvati, ordinati, confrontati o inviati tramite API. Conserva una data estesa per schermate e controlli manuali.

Le date di test devono essere uniche?

Usa date uniche quando ogni riga è un evento diverso. Permetti duplicati per testare duplicazioni, import ripetuti o più righe nello stesso giorno.

Il filtro dei giorni esclude le festività?

No. Distingue lunedì-venerdì da sabato-domenica. Festività e chiusure richiedono un calendario separato.

Come si testano anni bisestili e fine mese?

Aggiungi 29 febbraio e giorni vicini, ultimi giorni dei mesi corti e lunghi, 31 dicembre e 1 gennaio. Non aspettare un'estrazione rara.

Posso usare le date generate per la sicurezza?

No. Le date sono prevedibili e questo flusso è per campioni e QA. Per password e token usa un generatore di sicurezza.

Come può un altro tester ripetere il campione?

Conserva intervallo, filtro, quantità, unicità, formato e output insieme al caso. La fixture salvata garantisce la ripetibilità.

L'articolo spiega le decisioni di test. Gli strumenti svolgono la selezione ripetitiva, così puoi concentrarti sul comportamento dell'applicazione.

Apri il generatore di date Genera data e ora Crea compleanni fittizi

Riferimenti

Queste fonti di prima parte supportano i dettagli tecnici. Una data casuale non è una credenziale di sicurezza né un documento legale.

Inizia con un intervallo chiaro

Genera alcune date, indica il formato e usa la checklist per trasformare un campione in un caso di test verificabile.

Apri il generatore