Proyek ETL adalah proyek yang dibuat menggunakan alat ETL (Extract - Transform - Load) seperti SSIS, PowerCenter, dll
Ini biasanya melibatkan membaca data dari sumber eksternal, memuatnya ke basis data pementasan, melakukan transformasi tertentu dan memuatnya ke basis data akhir
Contoh sederhana adalah menggunakan SSIS untuk membaca file excel yang disediakan oleh guru sekolah menggunakan SSIS dan memuatnya ke dalam database. Kemudian tulis prosedur tersimpan atau lebih banyak paket SSIS untuk menghitung nilai setiap siswa dan muat data itu ke dalam gudang data
Anda kemudian membangun prosedur tersimpan di atas mart untuk menghasilkan output yang digunakan oleh alat pelaporan (SSRS \ Excel \ dll) untuk menghasilkan visualisasi.
Saya mencoba memahami cara melakukan TDD dan pengujian unit yang tepat dalam skenario ini. Tes untuk ETL sebagian besar tentang memastikan data yang dimuat dalam tabel pementasan cocok dengan bagian yang tepat dari data dari sumber. Jadi menerapkan tes untuk itu mengarah pada penerapan versi mini ETL. Output dari laporan SP tergantung pada data dalam tabel itu sendiri, sehingga orang tidak dapat memiliki set data output yang stabil tanpa mimpi buruk pemeliharaan bahkan jika Anda membuat database yang berisi data tes scrubbed
Contoh:
Sprint 1: Tabel siswa berisi Nama, Usia, Kelas
Anda membuat data uji untuk tabel ini, dan tes unit berdasarkan itu
Sprint 2: Bidang gender ditambahkan ke tabel.
Sekarang, jika Anda me-refresh data di bidang siswa untuk mengisi atribut gender, kasus uji tidak valid karena data berubah. Dan jika tidak, Anda tidak dapat membuat kasus uji yang memerlukan kolom gender
sumber
Jawaban:
Apa yang telah saya lakukan di masa lalu adalah menggunakan Acceptance Test Driven Development . Kode ETL sering didistribusikan di berbagai tahap / bahasa dan teknologi DAN digabungkan secara ketat. Sebagian besar proses ETL bergantung pada urutan transformasi dalam pipa.
Risiko menggunakan unit test hanya dalam ETL adalah tidak akan mencakup integrasi. Urutan transformasi adalah bagian yang sama dengan transformasi aktual di banyak ETL. Jika saya menghabiskan sumber daya untuk membuat test suite otomatis saya akan memastikan itu mencakup urutannya juga.
Saya akan fokus pada TDD untuk setiap urutan transformasi yang unik atau setidaknya menyertakan tes ini dalam test suite yang lebih besar. Jika ada terlalu banyak kombinasi, Anda mungkin harus memilih dan memilih urutan mana yang akan diuji. Idenya adalah untuk memvalidasi pipa ETL untuk set data yang akan digunakan. Serta memastikan Anda memiliki cakupan pengujian pada semua kode Anda.
sumber
ETL dapat dilakukan dengan TDD dan menguji cukup mirip dengan sebagian besar proyek, yaitu
tulis tes yang gagal (merah) perbaiki kegagalan (hijau) buat kode performen & terpelihara (refactor)
Jadi untuk ETL itu mungkin:
sumber