Database di test delle unità: testare tutte le possibili permute di lettura e scrittura sulla tabella?

2

Sto testando una classe di gestione delle risorse che interagisce con un database o un file system o una combinazione di entrambi. Stavo vagando se è normale testare tutte le possibili permutazioni di leggere e scrivere per tutte le colonne di un set di dati quando è coinvolto un database. Quello che voglio dire è:

Tabella del database del test case:

+----------------------+----------------------+----------------------+----------------------+
| users                                                                                     |
+----------------------+----------------------+----------------------+----------------------+
|       user_id        |      user_name       |      user_email      |      user_role       |
+----------------------+----------------------+----------------------+----------------------+
|          1           |      A New Name      | [email protected]   |          1           |
+----------------------+----------------------+----------------------+----------------------+
|          2           |   A different name   | [email protected]   |          1           |
+----------------------+----------------------+----------------------+----------------------+

Potevo immaginare qualcosa di diverso che andasse storto nel livello di astrazione, aggiornando il primo record ma nessun altro, aggiornando il secondo record, ma non il quarto, o nessuna altra permutazione o combinazione.

È normale scrivere test per tutti questi scenari (se sto pensando a ciò correttamente sarebbe 4! = 24 casi, giusto)?

Ora, se voglio recuperare le colonne, posso ancora immaginare che qualcosa va storto solo recuperando la prima e la quarta colonna, solo la terza o tutte le possibili permutazioni di quella.

Ora cosa succede se la scrittura e la lettura sono miste, prima una lettura, poi una scrittura e poi una lettura. Forse una scrittura su una colonna, una lettura di tre colonne, poi una lettura di una o qualsiasi altra permutazione. Molto presto ci sono potenzialmente migliaia di casi di test ...

Sto pensando troppo a questo e dovrei solo testare quello che sto realmente incontrando, o è la norma per fare due diligence e testare tutto questo.

Le sto chiedendo perché l'accesso al database sta causando il lancio delle mie suite di test in tempo di esecuzione.

Modifica: Nel caso questo non fosse chiaro, non sto provando a verificare se il database sta facendo quello che dovrebbe essere, ma se il mio livello di astrazione si comporta come previsto.

    
posta DudeOnRock 01.10.2013 - 22:36
fonte

1 risposta

1

Penso che tu stia pensando troppo a questo. Esegui il test per 2 cose durante il test dell'unità. Il codice fa quello che dovrebbe, e gestisce gli errori / i dati non validi senza crash.

Se sei in grado, o hai, di progettare il database, la progettazione corretta dovrebbe gestire le scritture errate presumendo che tu convalidi correttamente i tuoi dati prima di scriverli. Se c'è qualcosa di sbagliato, il database te lo dirà.

Per quanto riguarda le letture, se i dati inseriti nel database sono stati correttamente convalidati, dovresti recuperare solo i dati corretti.

Non penserai mai a tutti i possibili problemi. Assicurati che il tuo programma registri gli errori che si verificano. Quindi valutali e aggiungi un nuovo caso di test, se necessario.

    
risposta data 06.10.2013 - 07:23
fonte