I progetti ETL sono progetti creati utilizzando uno strumento ETL (Estrai - Trasforma - Carica) come SSIS, PowerCenter, ecc
Ciò comporta in genere la lettura di dati da un'origine esterna, il caricamento in un database di gestione temporanea, l'esecuzione di determinate trasformazioni e il caricamento in un database finale
Un semplice esempio potrebbe essere quello di utilizzare SSIS per leggere i file Excel forniti dagli insegnanti che usano SSIS e caricarli in un database. Quindi scrivere le procedure memorizzate o più pacchetti SSIS per calcolare i voti di ogni studente e caricare tali dati in un data mart \ warehouse
Quindi si creano procedure memorizzate sopra il mart per generare output che viene utilizzato dagli strumenti di reporting (SSRS \ Excel \ etc) per generare visualizzazioni.
Sto cercando di capire come eseguire TDD e test di unità adeguati in questo scenario. I test per ETL riguardano principalmente la garanzia che i dati caricati nelle corrispondenze delle tabelle di gestione temporanea siano il sottoinsieme corretto dei dati dall'origine. Quindi l'implementazione di un test porta all'implementazione di una versione mini dell'ETL. L'output degli SP del report dipende dai dati nelle tabelle stesse, quindi non è possibile avere un set stabile di dati di output senza un incubo di manutenzione anche se si crea un database contenente dati di test fregati
Esempio:
Sprint 1: la tabella Studenti contiene Nome, Età, Grado
Si creano dati di test per questa tabella e test unitari basati su quello
Sprint 2: un campo di genere viene aggiunto alla tabella.
Ora, se si aggiornano i dati nel campo Studente per popolare l'attributo di genere, i casi di test vengono invalidati dalla modifica dei dati. E se non lo fai, non puoi creare casi di test che richiedono la colonna del genere