Date che vale la pena testare
Il software non si rompe nei martedì qualunque. Si rompe l'ultimo giorno del trimestre, il 29 febbraio, nell'istante in cui cambia l'anno e un secondo dopo la scadenza di una licenza. Queste sono le date che trovano quei bug - 14 di esse sono fornite come scenari con nome.
Confini di periodo
Tutto ciò che chiude un periodo, numera un documento per anno o matura fino a una data di chiusura sbaglia qui per primo.
- Ultimo giorno del mese - la chiusura mensile e i ratei del periodo si comportano bene l'ultimo giorno del mese?
- Ultimo giorno del trimestre - la chiusura trimestrale e la reportistica si comportano bene l'ultimo giorno del trimestre?
- Ultimo giorno dell'anno fiscale - l'app chiude l'anno fiscale nel giorno giusto, il giorno prima dell'inizio del nuovo anno fiscale?
- Cambio d'anno, in diretta - la numerazione dei documenti, l'anno nel nome e la reportistica annuale gestiscono il passaggio mentre avviene, invece di essere riavviati dopo?
L'ultimo è quello che di solito non si riesce a testare affatto, perché richiede che l'orologio attraversi la mezzanotte del 31 dicembre mentre l'applicazione è in esecuzione. Con un orologio accelerato sono dieci secondi di lavoro.
Limiti del calendario e della rappresentazione
- 29 febbraio - il giorno bisestile che esiste solo ogni quattro anni e che una quantità sorprendente di codice di validazione rifiuta senza mezzi termini.
- Epoch Unix zero - l'app tratta il 1° gennaio 1970 come una data vera, o come un valore vuoto che avrebbe dovuto rifiutarsi di memorizzare?
- Limite del 2038 - il momento in cui un
time_tcon segno a 32 bit si esaurisce, a2038-01-19T03:14:07Z. Un secondo dopo il contatore va in overflow fino al 1901.
Licenze, prove e installazione
Questi servono a testare la tua gestione delle licenze, che è il caso per cui sono stati scritti.
- Ultimo giorno di prova - l'app funziona ancora nell'ultimissimo momento della prova?
- Primo giorno dopo la scadenza della prova - nega l'accesso nell'istante in cui la prova finisce, e come? Con un messaggio sensato o con uno stack trace?
- Licenza scaduta un anno fa - gestisce una licenza scaduta da tempo, non solo ieri?
- Data precedente all'installazione - si comporta bene quando l'orologio è impostato prima della sua stessa data di installazione? Questo legge la data del file del target stesso, quindi non richiede alcun parametro.
Regole di business e comportamento dell'orologio
- Pagamento dovuto, +N giorni lavorativi - un pagamento dovuto fra N giorni lavorativi cade nel giorno giusto, saltando i fine settimana e i festivi del paese giusto? È l'unico scenario che richiede un calendario, e la risposta cambia da mercato a mercato.
- Soglia della maggiore età - l'app ammette chi è esattamente sulla soglia e rifiuta chi è a un giorno di distanza?
- Sfasamento dell'orologio, +90 s - l'app se la cava quando il suo orologio è avanti di novanta secondi rispetto al tempo reale? È il caso che rompe le password monouso basate sul tempo e la validazione dei token.
Usarne uno
Uno scenario è un'espressione di data con nome. Il calcolatore ne ricava il significato, e la sostituzione esegue un'applicazione a quella data - lo stesso nome in entrambi i posti.
# Che data è, e che cosa testa quella data? chrono calc --preset month-end # Eseguire un'applicazione a quella data chrono run "C:\apps\test.exe" --preset year-rollover --report session.txt # Gli scenari di prova prendono la data di inizio dalla data del file del target chrono run "C:\apps\test.exe" --preset trial-first-day-after
Nella finestra sono chip sopra il campo della data - un clic lo compila. Ognuno porta la propria frase che dice che cosa individua, che è la parte che un calcolatore di date online non può darti.
Cosa non c'è
I passaggi dell'ora legale. Far attraversare a un'applicazione il confine dell'entrata o dell'uscita dall'ora legale è un test davvero utile ed è volutamente assente, perché il fuso orario della sessione è uno scostamento fisso senza ora legale - non c'è ancora alcuna transizione da simulare. Fornire uno scenario che silenziosamente non facesse nulla sarebbe peggio che non fornirlo.
Tornerà con un modello delle regole dei fusi orari. Che cosa fa e che cosa non fa il fuso orario →