Test del database - Panoramica
Il test del database include l'esecuzione della validità dei dati, il test dell'integrità dei dati, il controllo delle prestazioni relativo al database e il test delle procedure, dei trigger e delle funzioni nel database.
Esempio
Si consideri un'applicazione che acquisisca i dettagli delle transazioni quotidiane per gli utenti e memorizzi i dettagli nel database. Dal punto di vista del test del database, è necessario eseguire i seguenti controlli:
Le informazioni transazionali dall'applicazione dovrebbero essere memorizzate nel database e dovrebbero fornire informazioni corrette all'utente.
Le informazioni non devono essere perse quando vengono caricate nel database.
Solo le transazioni completate dovrebbero essere memorizzate e tutte le operazioni incomplete dovrebbero essere interrotte dall'applicazione.
L'autorizzazione all'accesso al database dovrebbe essere mantenuta. Non deve essere fornito alcun accesso non autorizzato o non autorizzato alle informazioni dell'utente.
Perché è necessario eseguire il test del database?
Esistono diversi motivi per cui viene eseguito il test del database. È necessario eseguire l'integrità dei dati, la convalida e il controllo della coerenza dei dati sul database poiché il sistema di backend è responsabile dell'archiviazione dei dati e vi si accede per molteplici scopi.
Di seguito sono riportati alcuni motivi comuni per il test del database:
Per facilitare la complessità delle chiamate al back-end del database, gli sviluppatori aumentano l'uso di View e Stored Procedure.
Queste Stored procedure e Viewscontengono attività critiche come l'inserimento dei dettagli del cliente (nome, informazioni di contatto, ecc.) e dati di vendita. Queste attività devono essere testate a diversi livelli.
Black-box testingeseguito sul front-end è importante, ma rende difficile isolare il problema. Il test nel sistema di backend aumenta la robustezza dei dati. Ecco perché il test del database viene eseguito sul sistema back-end.
In un database, i dati provengono da più applicazioni e c'è la possibilità che dati dannosi o errati siano memorizzati nel database. Pertanto, è necessario controllare regolarmente i componenti del database. Inoltre, l'integrità e la coerenza dei dati dovrebbero essere controllate regolarmente.
Test di database vs test front-end
Il test del database è diverso dal test dell'interfaccia utente front-end. La tabella seguente evidenzia le differenze principali:
Test di database | Test dell'interfaccia utente |
---|---|
Il test del database è noto come convalida dei dati e test di integrità o test di back-end. |
Il test dell'interfaccia utente o il test front-end è anche chiamato test dell'applicazione o test della GUI. |
Il test del database implica il test dei componenti back-end, che non sono visibili agli utenti. Ciò include componenti di database e sistemi DBMS come My SQL, Oracle. |
Il test dell'interfaccia utente comporta il controllo delle funzionalità di un'applicazione e dei suoi componenti come moduli, grafici, menu, rapporti, ecc. Questi componenti vengono creati utilizzando strumenti di sviluppo front-end come VB.net, C #, Delphi, ecc. |
Il test del database implica il controllo di procedure memorizzate, viste, schemi nel database, tabelle, indici, chiavi, trigger, convalide dei dati e controllo della coerenza dei dati. |
Il test dell'interfaccia utente implica il controllo della funzionalità dell'applicazione, dei pulsanti, dei moduli e dei campi, del calendario e delle immagini, della navigazione da una pagina all'altra e della funzionalità complessiva dell'applicazione. |
Per eseguire il test DB, un tester necessita di una conoscenza approfondita del concetto di database, come procedure e funzioni, viste, indici, chiavi e un buon SQL pratico. |
Per eseguire i test dell'interfaccia utente, un tester necessita di una buona comprensione dei requisiti aziendali, conoscenza funzionale dell'applicazione, codifica, ecc. |
I dati provengono da più origini dati eterogenee su applicazioni Web, applicazioni Intranet e varie altre applicazioni. |
I dati vengono inseriti manualmente nelle applicazioni. Implica il test funzionale delle applicazioni front-end. |