I dati sono il cuore di ogni applicazione software, così come il database che ospita quei dati. Ma con l'aumento delle dimensioni dei dati o della complessità del database aumenta anche la difficoltà di gestire i dati. Pertanto, la convalida dei dati diventa molto necessaria. È qui che il test del database è utile e aiuta a controllare la qualità, la sicurezza e la correttezza dei dati che un'applicazione sta recuperando o archiviando nel database. Attraverso il mezzo di questo articolo, ti fornirò approfondimenti completi al riguardo.
Di seguito sono riportati gli argomenti trattati in questo tutorial:
- Cos'è il test del database?
- Perché è richiesto il test del database?
- Tipi di test del database
- Prove strutturali
- Test funzionali
- Test non funzionali
- Fasi di test del database
- Strumenti di test del database
Allora iniziamo.
Cos'è il test del database?
Prima di parlare di cos'è il test del database, lascia che ti informi sui database. Un database non è altro che una raccolta sistematica di dati che fornisce l'archiviazione dei dati e aiuta nella manipolazione dei dati. La gestione dei dati diventa molto semplice utilizzando questi database poiché i database utilizzano oggetti per la gestione dei dati come tabelle per la memorizzazione dei dati, visualizzazione per rappresentazioni dei dati, funzioni e trigger per la manipolazione dei dati.
Ora, il test del database si riferisce al processo di convalida dei dati archiviati in un database verificando gli oggetti che controllano i dati e le varie funzionalità che lo circondano. In genere, durante il test del database vengono trattate attività come il controllo della validità dei dati, il test dell'integrità dei dati, il controllo delle prestazioni, il test di varie procedure, trigger e funzioni nel database.
Ma per eseguire il test del database, avere una buona conoscenza di SQL è molto importante. Non preoccuparti se non disponi delle competenze richieste, puoi fare riferimento a questo articolo su Nozioni di base su SQL per iniziare.
Perché il test del database?
Come sappiamo, il database è un dump di dati in cui i dati vengono raccolti in quantità enormi e archiviati in un formato strutturato. Sebbene DBMS (DataBase Management System) fornisce un modo organizzato per gestire, recuperare e archiviare questi dati, ci sono casi in cui i dati potrebbero diventare ridondanti, duplicati, ecc. In questi casi il test del database entra in gioco che ci aiuta nella convalida dei dati. Di seguito ho elencato vari aspetti in base ai quali un database deve essere convalidato:
- Mappatura dei dati
La mappatura dei dati è un aspetto integrante del test del database che si concentra sulla convalida dei dati che attraversano avanti e indietro tra l'applicazione e il database back-end. - Convalida proprietà ACID
ACID sta per A tomicità, C onsistance, io consolazione e D urabilità. Questo è un altro aspetto importante che deve essere confermato per ogni transazione di database.- Atomicità :Ciò significa che tutte le transazioni del database sono atomiche, ovvero le transazioni possono comportare successo o errore. Conosciuto anche come Tutto o niente .
- Coerenza :Ciò significa che lo stato del database rimarrà valido dopo il completamento della transazione.
- Isolamento :Ciò significa che è possibile eseguire più transazioni contemporaneamente senza influenzarsi a vicenda e alterare lo stato del database.
- Durata :Ciò significa che una volta che una transazione è stata impegnata, conserverà le modifiche senza alcun errore indipendentemente dall'effetto di fattori esterni.
- Integrità dei dati
Il test dell'integrità dei dati di un database si riferisce al processo di valutazione di tutti i tipi di processi, operazioni e metodi utilizzati per accedere, gestire e aggiornare il database noto anche come CRUD operazioni. Questo si concentra esclusivamente sulla verifica dell'accuratezza e della coerenza dei dati archiviati nel database in modo da ottenere i risultati attesi o desiderati.
- Conformità alle regole aziendali
Con l'aumento della complessità dei database, anche vari componenti come vincoli relazionali, trigger, stored procedure, ecc. iniziano a complicarsi. Per evitare ciò, i tester forniscono alcune query SQL sufficientemente appropriate per convalidare gli oggetti complessi.
Tipi di test del database
Ci sono 3 tipi di test del database che ho elencato di seguito:
- Prove strutturali
- Test funzionali
- Test non funzionali
Ora esaminiamo ciascuno di questi tipi e i loro sottotipi uno per uno.
Test strutturali
Il test strutturale del database è il processo di convalida di tutti gli elementi presenti all'interno del repository di dati e utilizzati principalmente per l'archiviazione dei dati. Questi elementi non possono essere manipolati direttamente dagli utenti finali. La convalida dei server di database è una delle considerazioni più importanti e i tester che riescono a completare con successo questa fase acquisiscono padronanza delle query SQL.
Vari tipi di test strutturali sono:
-
Test dello schema
Questo tipo di test è anche noto come test di mappatura e viene eseguito per garantire che la mappatura dello schema del front-end e del back-end sia sincronizzata. Alcuni dei punti di controllo importanti di questo test sono:
- Convalida vari tipi di formati di schema associati ai database.
- La verifica è richiesta per tabelle/viste/colonne non mappate.
- È necessaria anche la verifica per garantire la coerenza dei database eterogenei in un ambiente con la mappatura complessiva dell'applicazione.
- Fornisce vari strumenti per la convalida dello schema del database.
-
Test di tabelle e colonne del database
Alcuni dei punti di controllo importanti di questo test sono:
- La compatibilità dei campi del database e della mappatura delle colonne nel back-end e nel front-end.
- Convalida della lunghezza e della convenzione di denominazione dei campi e delle colonne del database secondo i requisiti.
- Rilevamento e convalida di eventuali tabelle/colonne di database inutilizzate/non mappate.
- Convalida della compatibilità del tipo di dati e delle lunghezze dei campi nelle colonne del database di back-end con il front-end dell'applicazione.
- Convalida che gli utenti sono in grado di fornire gli input desiderati utilizzando i campi del database specificati nei documenti delle specifiche dei requisiti aziendali.
-
Test di chiavi e indici
Alcuni dei punti di controllo importanti di questo test sono:
- Assicurati che la chiave primaria richiesta e i vincoli di chiave esterna siano già presenti nelle tabelle richieste.
- Convalida i riferimenti delle chiavi esterne.
- Assicurati che, in due tabelle, il tipo di dati della chiave primaria e le chiavi esterne corrispondenti siano gli stessi.
- Convalida i nomi di tutte le chiavi e gli indici in base alle convenzioni di denominazione.
- Controlla le dimensioni e la lunghezza dei campi e degli indici richiesti.
- Assicurati la creazione degli indici cluster e degli indici non cluster nelle tabelle richieste secondo i requisiti aziendali.
-
Test delle stored procedure
Alcuni dei punti di controllo importanti di questo test sono:
- Convalidare l'adozione delle convenzioni standard di codifica richieste, la gestione delle eccezioni e degli errori per tutte le procedure archiviate da parte del team di sviluppo in tutti i moduli dell'applicazione in fase di test.
- Assicurati che il team di sviluppo abbia coperto tutte le condizioni/loop applicando i dati di input richiesti all'applicazione in fase di test.
- Verifica se il team di sviluppo ha applicato correttamente le operazioni TRIM o meno ogni volta che i dati sono stati recuperati dalle tabelle del database specificate.
- Assicurati che gli output richiesti siano generati eseguendo manualmente le stored procedure.
- Assicurati che i campi della tabella siano aggiornati come specificato dall'applicazione in fase di test eseguendo manualmente le stored procedure.
- Assicurati che i trigger richiesti siano invocati implicitamente eseguendo le stored procedure.
- Rileva e convalida eventuali stored procedure inutilizzate.
- Convalida della condizione Null a livello di database.
- Assicurati che tutte le stored procedure e le funzioni siano state eseguite e testate sul database vuoto che è in fase di test.
- Convalida l'integrazione complessiva dei moduli della procedura memorizzata come specificato nei requisiti dell'applicazione in fase di test.
-
Test di attivazione
Alcuni dei punti di controllo importanti di questo test sono:
- Convalida che le convenzioni di codifica richieste siano seguite nella fase di codifica dei Trigger.
- Assicurati che i trigger eseguiti soddisfino le condizioni richieste per le rispettive transazioni DML.
- Verifica se i dati vengono aggiornati correttamente una volta eseguiti i trigger.
- Convalida le funzionalità come Aggiorna, Inserisci, Elimina attiva la funzionalità dell'applicazione in prova.
-
Convalide del server di database
Alcuni dei punti di controllo importanti di questo test sono:
- Convalida le configurazioni del server di database come specificato nei requisiti aziendali.
- Assicurati che l'utente richiesto esegua solo i livelli di azioni richiesti dall'applicazione in prova.
- Assicurati che il server del database sia in grado di soddisfare le esigenze del numero massimo di transazioni utente consentite come nelle specifiche dei requisiti aziendali.
Test funzionali
Il test funzionale del database è il processo che garantisce che le transazioni e le operazioni eseguite dagli utenti finali siano coerenti con le specifiche aziendali.
Vari tipi di test funzionali sono:
- Test della scatola nera
Black Box Testing si riferisce al processo che verifica varie funzionalità verificando l'integrazione del database. In questo, i casi di test sono generalmente 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, l'analisi del valore limite e il partizionamento di equivalenza. Viene generalmente eseguito nelle prime fasi di sviluppo e costa meno rispetto ad altri test funzionali. Ma presenta alcuni inconvenienti come alcuni errori che non possono essere rilevati da esso e non ci sono specifiche su quanto del programma dovrebbe essere testato.
- Test della scatola bianca
Il White Box Testing riguarda la struttura interna del database e gli utenti non sono a conoscenza dei dettagli delle specifiche. Questo test richiede trigger di database e test di viste logiche che supportano il refactoring del database. Inoltre, in questo vengono testate anche funzioni di database, trigger, viste, query SQL, ecc. Il test della casella bianca viene utilizzato per convalidare le tabelle del database, i modelli di dati, lo schema del database, ecc. Aderisce alle regole di integrità referenziale e seleziona i valori di tabella predefiniti per verificare la coerenza del database. Tecniche come la copertura delle condizioni, la copertura delle decisioni, la copertura delle dichiarazioni, ecc. vengono spesso utilizzate per eseguire i test White Box. A differenza del Black box testing, gli errori di codifica possono essere facilmente rilevati per eliminare i bug interni presenti nel database. L'unico inconveniente di questo tipo di test è che non copre le istruzioni SQL.
Test non funzionali
Il test non funzionale è il processo di esecuzione di test di carico, test di stress, verifica dei requisiti minimi di sistema richiesti per soddisfare le specifiche aziendali, rilevamento dei rischi e ottimizzazione delle prestazioni del database.
I principali tipi di test non funzionali sono:
- Test di carico
La funzione principale dell'esecuzione dei test di carico è convalidare l'impatto sulle prestazioni della maggior parte delle transazioni in esecuzione nel database. In questo test, un tester è tenuto a verificare le seguenti condizioni −
- Qual è il tempo di risposta richiesto per l'esecuzione di transazioni per più utenti ubicati in remoto?
- Qual è il tempo impiegato dal database per recuperare i record specifici?
- Test di stress
Il test di stress è un processo di test che viene eseguito per identificare il punto di interruzione del sistema. Pertanto, in questo test, un'applicazione viene caricata fino al punto in cui il sistema si guasta. Questo punto è noto come punto di interruzione del sistema di database. Gli strumenti di stress test comunemente usati sono LoadRunner e WinRunner .
Vediamo ora quali sono le varie fasi coinvolte nel test del database.
Fasi di test del database
Il test del database non è un processo noioso e include varie fasi del ciclo di vita del test del database in conformità con i processi di test.
Le fasi chiave del test del database sono:
- Impostare i prerequisiti di test
- Esegui i test
- Verifica lo stato del test
- Convalida risultati
- Consolida e pubblica il rapporto
Ora che sei a conoscenza di cos'è il test del database e come eseguirlo, vorrei ora gettare un po' di luce sui vari strumenti utilizzati principalmente per il test del database.
Strumenti di test del database
Ci sono numerosi strumenti sul mercato utilizzati per generare i dati di test, gestirli e infine eseguire test di database come test di carico e test di regressione, ecc. Di seguito ho elencato un alcuni degli strumenti più preferiti:
Categoria | Strumenti |
Strumenti per la sicurezza dei dati |
|
Strumenti di test del carico |
|
Strumenti generatore di dati di prova |
|
Strumento di gestione dei dati di test |
|
Strumenti di unit test |
|
Quindi si trattava di test del database. Con questo vorrei concludere questo articolo. Spero che questo articolo ti abbia aiutato ad aggiungere valore alle tue conoscenze. Per ulteriori informazioni su SQL o database, puoi fare riferimento al nostro elenco di letture completo qui:Databases Edureka .
Se desideri ricevere una formazione strutturata su MySQL, dai un'occhiata al nostro Formazione per la certificazione DBA MySQL che viene fornito con una formazione dal vivo con istruttore e un'esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in modo approfondito MySQL e a raggiungere la padronanza dell'argomento.
Hai una domanda per noi? Si prega di menzionarlo nella sezione commenti di ”Test del database ” e ti ricontatterò.