Test di database - Tipi

In base alla funzione e alla struttura di un database, il test DB può essere classificato in tre categorie:

  • Structural Database Testing - Si occupa di test di tabelle e colonne, test di schemi, stored procedure e test di viste, controllo di trigger, ecc.

  • Functional Testing- Implica il controllo della funzionalità del database dal punto di vista dell'utente. I tipi più comuni di test funzionali sono i test white box e black box.

  • Nonfunctional Testing - Comprende test di carico, test di rischio nel database, stress test, requisiti minimi di sistema e si occupa delle prestazioni del database.

Test di database strutturali

Il test del database strutturale implica la verifica di quei componenti del database, che non sono esposti agli utenti finali. Coinvolge tutti i componenti del repository, che vengono utilizzati per memorizzare i dati e non vengono modificati dagli utenti finali. Gli amministratori di database con una buona padronanza delle procedure memorizzate SQL e altri concetti normalmente eseguono questo test.

Vengono discussi i componenti comuni testati rispetto ai test strutturali -

Test di schemi / mappature

Implica la convalida degli oggetti dell'applicazione front-end con la mappatura degli oggetti del database.

Nel test dello schema -

  • A volte accade che gli oggetti dell'applicazione dell'utente finale non siano mappati correttamente o compatibili con gli oggetti del database. Pertanto, è necessario verificare la convalida dei vari formati di schema associati ai database.

  • È necessario per trovare gli oggetti non mappati nel database, come tabelle, viste, colonne, ecc.

Esistono vari strumenti sul mercato che possono essere utilizzati per eseguire la mappatura degli oggetti negli schemi.

Example - In Microsoft SQL Server, un tester può scrivere semplici query per controllare e convalidare gli schemi nel database.

Se il tester desidera apportare modifiche alla struttura di una tabella, deve assicurarsi che tutti i file stored le procedure con quella tabella sono compatibili con questa modifica.

Stored procedure e test delle visualizzazioni

In questo test, un tester garantisce che l'esecuzione manuale di stored procedure e viste generi il risultato richiesto.

Il tester garantisce:

  • Se abilita l'esecuzione dei trigger richiesti come previsto.

  • Se il team di sviluppo ha coperto tutti i cicli e le condizioni passando l'input alle applicazioni nelle procedure.

  • Se nel database sono presenti stored procedure inutilizzate.

  • Le operazioni TRIM vengono applicate correttamente quando i dati vengono recuperati dalle tabelle richieste nel database.

  • Convalida dell'integrazione complessiva dei moduli di stored procedure secondo i requisiti dell'applicazione in prova.

  • Vengono seguiti meccanismi di gestione delle eccezioni e degli errori.

Gli strumenti più comuni utilizzati per eseguire il test delle stored procedure sono LINQ, SP Test tool, eccetera.

Trigger Testing

Nel test trigger, un tester deve garantire quanto segue:

  • Se le convenzioni di codifica vengono seguite durante la fase di codifica dei trigger.

  • Vedere i trigger eseguiti soddisfano le condizioni richieste.

  • Se il trigger aggiorna i dati correttamente, una volta che sono stati eseguiti.

  • La convalida di Aggiorna / Inserisci / Elimina attiva la funzionalità dell'applicazione sottoposta a test.

Tabelle e test delle colonne

Le aree chiave trattate in questo test sono:

  • Convalida dei tipi di dati nel database in valori di campo nell'applicazione front-end.

  • Convalida della lunghezza del campo dati nel database in base alla lunghezza dei tipi di dati nell'applicazione.

  • Verifica della presenza di tabelle o colonne non mappate nel database dagli oggetti del campo dell'applicazione.

  • Le convenzioni di denominazione delle tabelle e delle colonne del database vengono verificate, se sono conformi o meno ai requisiti aziendali.

  • Convalida delle chiavi e degli indici nel database, ovvero le chiavi primarie ed esterne nelle tabelle sono definite secondo i requisiti.

  • Controlla se le chiavi primarie e le chiavi esterne corrispondenti sono le stesse in due tabelle.

  • Verificare che le caratteristiche delle chiavi Unique e NOT NULL siano mantenute.

  • La lunghezza e il tipo di dati delle chiavi e degli indici vengono mantenuti secondo i requisiti.

Controllo server database

Il controllo del server database implica la verifica:

  • Se il server database è in grado di gestire il numero previsto di transazioni secondo i requisiti aziendali.

  • Se i dettagli di configurazione dei server di database soddisfano i requisiti aziendali.

  • Se l'autorizzazione dell'utente viene mantenuta come da requisito.

Test funzionali

I test funzionali vengono eseguiti tenendo presente il punto di vista dell'utente finale; se le transazioni e le operazioni richieste eseguite dagli utenti finali soddisfano le specifiche aziendali.

Test della scatola nera

Black Box Testing prevede la verifica dell'integrazione del database per verificarne la funzionalità. I casi di test sono semplici e vengono utilizzati per verificare i dati in entrata e in uscita dalla funzione.

Per testare la funzionalità del database vengono utilizzate varie tecniche come la tecnica grafica causa-effetto, il partizionamento di equivalenza e l'analisi del valore limite.

Suo advantages sono i seguenti -

  • È abbastanza semplice e viene eseguito nelle prime fasi di sviluppo.
  • Il costo dello sviluppo di casi di test è inferiore rispetto ai test white box.

I suoi svantaggi sono i seguenti:

  • Alcuni errori non possono essere rilevati
  • Non è noto quanto programma debba essere testato.

Test della scatola bianca

White Box Testing si occupa della struttura interna del database e i dettagli delle specifiche sono nascosti agli utenti. Implica il test dei trigger del database e delle viste logiche, che supporteranno il refactoring del database.

Esegue il test del modulo delle funzioni del database, trigger, viste, query SQL, ecc. Questo tipo di test convalida le tabelle del database, i modelli di dati, lo schema del database, ecc. Controlla le regole di integrità referenziale. Seleziona i valori di tabella predefiniti per verificare la coerenza del database.

Le tecniche più comuni utilizzate per eseguire i test white box sono la copertura delle condizioni, la copertura delle decisioni, la copertura delle dichiarazioni, ecc.

Gli errori di codifica possono essere rilevati nei test white box, in modo da eliminare i bug interni nel database. La limitazione del test white box è che le istruzioni SQL non sono coperte.

Test non funzionali

I test non funzionali comprendono l'esecuzione di test di carico, stress test, verifica dei requisiti minimi di sistema per soddisfare le specifiche aziendali, individuazione dei rischi e ottimizzazione delle prestazioni del database.

Test di carico

L'obiettivo principale del test di carico è verificare se la maggior parte delle transazioni in esecuzione ha un impatto sulle prestazioni del database.

In Prova di carico, il tester verifica:

  • Il tempo di risposta per l'esecuzione delle transazioni per più utenti remoti.
  • Tempo impiegato dal database per recuperare record specifici.

Examples of load testing in different testing types -

  • Esecuzione ripetuta della transazione più utilizzata per visualizzare le prestazioni del sistema di database.
  • Download di una serie di file di grandi dimensioni da Internet.
  • Esecuzione simultanea di più applicazioni su un computer o un server.

Stress Testing

Lo stress test viene eseguito per identificare il punto di interruzione del sistema. In questo test, l'applicazione viene caricata in modo tale che il sistema non riesce a un certo punto. Questo punto è chiamatobreakpoint del sistema di database.

La determinazione dello stato delle transazioni del database richiede un notevole impegno. È necessaria una pianificazione adeguata per evitare problemi basati su tempo e costi.

Gli strumenti di stress test più comunemente usati sono LoadRunner e WinRunner.

Prendiamo un file exampledi stress test. Un'applicazione CRM può richiedere un carico utente massimo di 50000 utenti simultanei. Supponiamo di aumentare il carico a 51000 e di effettuare alcune transazioni come l'aggiornamento dei record o l'aggiunta di una voce. Non appena si esegue la transazione, l'applicazione può sincronizzarsi con il sistema di database. Quindi il prossimo test deve essere eseguito con un carico utente di 52000. A volte viene anche chiamato stress testFatigue Testing.