Test di database - Tecniche
In questo capitolo vengono illustrate le tecniche più comuni utilizzate per eseguire il test del database.
Test dello schema del database
Come accennato in precedenza, implica il test di ogni oggetto nello schema.
Verifica di database e dispositivi
- Verifica del nome del database
- Verifica del dispositivo di dati, dispositivo di registro e dispositivo di dump
- Verifica se è stato allocato spazio sufficiente per ogni database
- Verifica dell'impostazione delle opzioni del database
Tabelle, colonne, controllo delle regole dei tipi di colonna
Verificare gli elementi indicati di seguito per scoprire le differenze tra l'impostazione effettiva e quella applicata.
Nome di tutte le tabelle nel database
Nomi di colonna per ogni tabella
Tipi di colonna per ogni tabella
NULL valore verificato o meno
Se un valore predefinito è associato alle colonne corrette della tabella
Definizioni di regole per correggere i nomi delle tabelle e i privilegi di accesso
Chiave e indici
Verifica la chiave e gli indici in ogni tabella -
Chiave primaria per ogni tabella
Chiavi esterne per ogni tabella
Tipi di dati tra una colonna di chiave esterna e una colonna in altri indici di tabella, cluster o non cluster univoci o non univoci
Test di stored procedure
Implica il controllo della definizione di una stored procedure e del confronto dei risultati di output. In un test Stored Procedure, vengono controllati i seguenti punti:
Nome della procedura memorizzata
Nomi dei parametri, tipi di parametri, ecc.
Output- Se l'output contiene molti record. Vengono eseguite zero righe o vengono estratti solo pochi record.
Qual è la funzione della stored procedure e cosa non dovrebbe fare una stored procedure?
Passaggio di query di input di esempio per verificare se una procedura memorizzata estrae i dati corretti.
Stored Procedure Parameters- Richiama stored procedure con dati di confine e con dati validi. Rendi ogni parametro non valido una volta ed esegui una procedura.
Return values- Verificare i valori restituiti dalla stored procedure. In caso di guasto, deve essere restituito diverso da zero.
Error messages check- Apporta le modifiche in modo tale che la procedura memorizzata fallisca e generi ogni messaggio di errore almeno una volta. Controllare eventuali scenari di eccezione quando non sono presenti messaggi di errore predefiniti.
Trigger test
In un test Trigger, il tester deve eseguire le seguenti attività:
- Assicurati che il nome del trigger sia corretto.
- Convalida il trigger se viene generato per una colonna di tabella specifica.
- Convalida dell'aggiornamento del trigger.
- Aggiorna un record con dati validi.
- Aggiorna un record con dati non validi e copre ogni errore di attivazione.
- Aggiorna un record quando è ancora referenziato da una riga in un'altra tabella.
- Garantire il rollback delle transazioni quando si verifica un errore.
- Scopri tutti i casi in cui un trigger non dovrebbe ripristinare le transazioni.
Script di configurazione del server
Devono essere eseguiti due tipi di test:
- Configurazione del database da zero e
- Per impostare un database esistente.
Test di integrazione di SQL Server
I test di integrazione devono essere eseguiti dopo aver completato il test dei componenti.
Le stored procedure dovrebbero essere chiamate in modo intensivo per selezionare, inserire, aggiornare ed eliminare record in tabelle diverse per trovare eventuali conflitti e incompatibilità.
Eventuali conflitti tra schema e trigger.
Eventuali conflitti tra stored procedure e schema.
Eventuali conflitti tra stored procedure e trigger.
Metodo di test funzionale
Il test funzionale può essere eseguito dividendo il database in moduli in base alla funzionalità. Le funzionalità sono dei seguenti due tipi:
Type 1- Nel test di tipo 1, scopri le caratteristiche del progetto. Per ciascuna funzionalità principale, individuare lo schema, i trigger e le stored procedure responsabili dell'implementazione di tale funzione e inserirli in un gruppo funzionale. Quindi testare ogni gruppo insieme.
Type 2- Nel test di tipo 2, il confine dei gruppi funzionali in un back-end non è evidente. Puoi controllare il flusso di dati e vedere dove puoi controllare i dati. Inizia dal front-end.
Ha luogo il seguente processo:
Quando un servizio ha una richiesta o salva dei dati, verranno chiamate alcune stored procedure.
Le procedure aggiorneranno alcune tabelle.
Quelle stored procedure saranno il punto in cui iniziare il test e quelle tabelle saranno il luogo in cui controllare i risultati del test.
Stress Testing
Lo stress test implica l'acquisizione di un elenco delle principali funzioni del database e delle relative stored procedure. Seguire i passaggi indicati di seguito per lo stress test:
Scrivi script di test per provare quelle funzioni e ogni funzione deve essere controllata almeno una volta in un ciclo completo.
Eseguire ripetutamente gli script di test per un periodo di tempo specifico.
Verifica dei file di registro per controllare eventuali deadlock, errori di memoria insufficiente, danneggiamento dei dati, ecc.
Test di benchmark
Se il database non presenta problemi di dati o bug, è possibile controllare le prestazioni del sistema. Una scarsa prestazione del sistema può essere trovata nei test di benchmark controllando i parametri indicati di seguito:
- Prestazioni a livello di sistema
- Identifica le funzioni / caratteristiche utilizzate più probabilmente
- Tempistica: tempo massimo, tempo minimo e tempo medio per eseguire le funzioni
- Volume di accesso
Test di un database tramite front-end
Talvolta è possibile trovare bug di back-end anche eseguendo test front-end. È possibile seguire i semplici passaggi indicati di seguito per rilevare i bug mediante test front-end.
Scrivi le query dal front-end ed esegui le ricerche.
Prendi un record esistente, modifica i valori in alcuni campi e salva il record. (Implica l'istruzione UPDATE o aggiorna le stored procedure e aggiorna i trigger.)
Inserisci una nuova voce di menu nella finestra del front-end. Compila le informazioni e salva il record. (Implica le istruzioni INSERT o le stored procedure di inserimento e i trigger di eliminazione.)
Raccogli un record esistente, fai clic sul pulsante ELIMINA o RIMUOVI e conferma l'eliminazione. (Implica l'istruzione DELETE o l'eliminazione delle stored procedure e dei trigger di eliminazione.)
Ripeti questi casi di test con dati non validi e guarda come risponde il database.