Devono essere testate le regole di validazione?

4

Se ho un metodo che prende input e dà output, è un gioco da ragazzi che i test dovrebbero essere scritti. Ma che dire di cose come le regole di validazione?

Ad esempio, aggiungo una regola di convalida che una determinata proprietà deve essere lunga almeno 5 caratteri. Dovrei quindi scrivere un test dell'interfaccia utente per verificare un messaggio di errore quando il campo del modulo è vuoto? Supponiamo che la libreria di convalida funzioni correttamente, l'unica cosa che faccio è aggiungere un unico elemento per specificare questa regola .

Sono inclinato verso il no, perché duplicherei solo le regole di convalida e, se le regole stesse sono impostate in modo errato, probabilmente anche il test non sarà corretto. Tuttavia, mi piacerebbe molto sentire l'opinione delle persone e l'esperienza su questo.

    
posta Stijn 26.07.2013 - 15:07
fonte

4 risposte

7

Assolutamente, anche se la libreria sottostante (livello aziendale) funziona bene.

Il motivo è che potrebbero esserci molte cose che vanno storte tra il livello aziendale e l'interfaccia utente quando si tratta di validazione. Nel primo caso, puoi semplicemente lanciare un'eccezione. Nel secondo caso, devi elaborare l'eccezione, reagire ad essa (ad esempio annullando l'elaborazione o facendo o non facendo un reindirizzamento, visualizzando un messaggio localizzato, ecc.)

Immagina la convalida di un indirizzo e-mail. Il livello aziendale ha rilevato che "someone.somewhere.com" non è un indirizzo e-mail valido. Il comportamento previsto è:

  1. Interrompi l'elaborazione,
  2. Interrompi il reindirizzamento,
  3. Mostra un messaggio all'utente,
  4. Evidenzia il campo e-mail in rosso.

Cosa succede se:

  • L'elaborazione non è stata interrotta?
  • L'e-mail non valida viene semplicemente sostituita da una stringa nulla?
  • Il reindirizzamento è ancora fatto?
  • Il messaggio non viene mostrato?
  • Il messaggio è sbagliato?
  • Un altro messaggio di errore per un altro campo viene mostrato insieme al messaggio previsto?
  • Il messaggio è corretto sono alcune culture, ma non in altre?
  • Il messaggio è troppo lungo in alcune culture per l'area?
  • Il campo e-mail non è evidenziato?
  • Un altro campo è evidenziato insieme al campo e-mail?
  • Il campo e-mail è vuoto, cioè l'input precedente è scartato?
  • Tutti gli input precedenti del modulo vengono scartati?
risposta data 26.07.2013 - 15:23
fonte
4

Se non scrivi un test per verificare che la regola di convalida funzioni effettivamente come sapere che ha funzionato?

Ci sono requisiti / storie utente del cliente che indicano che l'input deve essere valido, deve contenere 5 caratteri o più, non avere doppie lettere e non più di 2 numeri. Se l'utente non soddisfa questi standard, li avvisa, rifiuta la risposta o esce dal programma; a seconda dei requisiti. Quindi, ovviamente, dovresti testare queste condizioni.

    
risposta data 26.07.2013 - 15:24
fonte
1

Bastano poche righe di codice per testarlo, e questo 1 - ti dà la sicurezza che le specifiche siano ancora soddisfatte se cambi il codice, e 2 - fai dei test una documentazione migliore delle specifiche . Ricorda che i test unitari sono documentazione e i test di regressione, non solo la prova che la tua prima implementazione funziona.

    
risposta data 26.07.2013 - 23:02
fonte
0

SÌ, dovresti assolutamente testare la tua convalida. Quindi dovresti verificare che l'interfaccia utente risponda correttamente come test separato.

Inoltre, se usi espressioni regolari, un ottimo strumento per aiutarti a rilevare errori di convalida inattesi (o falsi positivi) è Rex in quanto è abbastanza efficace nell'esercitare tutti i percorsi.

    
risposta data 26.07.2013 - 15:34
fonte

Leggi altre domande sui tag