I progetti ETL sono progetti creati utilizzando uno strumento ETL (Extract - Transform - Load) come SSIS, PowerCenter, ecc.
In genere ciò comporta la lettura di dati da un'origine esterna, il caricamento in un database di staging, l'esecuzione di determinate trasformazioni e il caricamento in un database finale
Un semplice esempio potrebbe essere utilizzare SSIS per leggere i file excel forniti dagli insegnanti che utilizzano SSIS e caricarli in un database. Quindi scrivi stored procedure o più pacchetti SSIS per calcolare i voti di ogni studente e caricare i dati in un data mart \ warehouse
Quindi si creano stored procedure sul mart per generare output che viene utilizzato dagli strumenti di reporting (SSRS \ Excel \ etc) per generare visualizzazioni.
Sto cercando di capire come eseguire il TDD e il corretto test delle unità in questo scenario. I test per gli ETL si basano principalmente sull'assicurare che i dati caricati nelle corrispondenze delle tabelle di staging siano il giusto sottoinsieme dei dati dall'origine. Quindi implementare un test per questo 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 puliti
Esempio:
Sprint 1: la tabella dello studente contiene nome, età, grado
Crea dati di test per questa tabella e unit test 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 gender, i test case vengono invalidati poiché i dati sono stati modificati. E se non lo fai, non puoi creare casi di test che richiedono la colonna di genere