Tutorial Pengujian Basis Data

โšก Ringkasan Cerdas

Pengujian basis data memvalidasi skema, tabel, pemicu, dan prosedur tersimpan di balik setiap aplikasi modern, memastikan integritas dan konsistensi data. Artikel ini menjelaskan pengujian basis data struktural, fungsional, dan non-fungsional beserta alat-alatnya, kesalahan umum, dan praktik terbaik yang telah terbukti.

  • ๏ธ Prinsip Utama: Pengujian basis data memvalidasi bagian belakang (backend) yang menyimpan data penting bisnis โ€” data yang tidak pernah dilihat pengguna tetapi selalu diandalkan.
  • ๐ŸŽฏ Fokus Cakupan: Pengujian struktural memeriksa skema, kunci, indeks, prosedur tersimpan, dan pemicu; pengujian fungsional memeriksa integritas dan keamanan data; pengujian non-fungsional memeriksa beban dan tekanan.
  • ๐Ÿ“Š Wawasan Kinerja: Pengujian beban dan stres mengukur risiko dan mengungkapkan perangkat keras minimum yang dibutuhkan untuk memenuhi harapan pemangku kepentingan terkait waktu respons.
  • ๏ธ Strategi Peralatan: Gabungkan alat pengujian yang memahami SQL, rangkaian pengujian kinerja seperti LoadRunner dan JMeter, dan kerangka kerja unit seperti DBUnit untuk cakupan berlapis.
  • ๐Ÿ’ก Praktek terbaik: Validasi setiap persyaratan terhadap basis data melalui tracSiapkan kasus uji yang memadai, dan cadangkan data sebelum skenario yang merusak seperti uji stres.

Pengujian Basis Data

Pengujian basis data โ€” terkadang disebut pengujian backend atau data โ€” adalah hal yang menjaga agar bagian tak terlihat dari setiap aplikasi tetap jujur. Tutorial ini membahas apa yang dicakupnya, mengapa hal itu penting, tiga kategori pengujian inti, kesalahan umum, dan praktik terbaik yang membedakan rangkaian pengujian yang solid dari yang kurang andal.

Apa itu Pengujian Basis Data?

Pengujian Basis Data Pengujian basis data adalah jenis pengujian perangkat lunak yang memvalidasi skema, tabel, pemicu, prosedur tersimpan, dan objek lain dari basis data yang sedang diuji. Pengujian ini juga memverifikasi integritas, konsistensi, dan keamanan data. Pengujian basis data seringkali melibatkan penulisan kueri kompleks untuk menguji beban atau stres basis data dan mengukur responsivitasnya.

Gambaran umum Pengujian Basis Data

Mengapa Pengujian Basis Data Penting?

Pengujian basis data sangat penting dalam pengujian perangkat lunak Karena hal itu memastikan bahwa nilai yang disimpan dan diambil dari basis data adalah valid. Pengujian basis data yang kuat mencegah kehilangan data, menampung transaksi yang dibatalkan, dan memblokir akses tidak sah ke informasi. Karena basis data adalah jantung dari setiap aplikasi bisnis, penguji harus mahir dalam SQL.

Sebagian besar tim berfokus pada GUI karena merupakan bagian aplikasi yang paling terlihat. Informasi di balik GUI sama pentingnya, dan memvalidasinya adalah tugas pengujian basis data. Pertimbangkan aplikasi perbankan di mana pengguna melakukan transaksi. Dari perspektif pengujian basis data, hal-hal berikut harus dipenuhi:

  1. Aplikasi menyimpan setiap transaksi di dalam basis data dan menampilkannya dengan benar kepada pengguna.
  2. Tidak ada informasi yang hilang selama operasi.
  3. Tidak ada operasi yang sebagian selesai atau dibatalkan yang disimpan.
  4. Tidak ada individu yang tidak berwenang yang dapat mengakses informasi pengguna.

Memastikan setiap invariant tersebut adalah tujuan dari validasi basis data dan pengujian data.

Perbedaan antara Pengujian Antarmuka Pengguna dan Pengujian Data

Pengujian Antarmuka Pengguna vs Pengujian Data

Pengujian Antarmuka PenggunaPengujian Basis Data/Data
Juga dikenal sebagai pengujian Antarmuka Pengguna Grafis (GUI) atau pengujian front-end.Juga dikenal sebagai pengujian backend atau pengujian data.
Berkaitan dengan elemen-elemen yang terlihat dan diinteraksi oleh pengguna โ€” formulir, presentasi, grafik, menu, dan laporan (dibangun dengan VB, VB.NET, V).C++, Delphi, dan alat front-end serupa).Hal-hal yang perlu diperhatikan tersembunyi dari pengguna โ€” proses internal dan penyimpanan seperti mesin DBMS (Oracle, SQLServer, MySQL).
Mencakup validasi kotak teks, menu tarik-turun, kalender, tombol, navigasi halaman, tampilan gambar, dan tampilan keseluruhan.Mencakup validasi skema, tabel, kolom, kunci dan indeks, prosedur tersimpan, pemicu, dan konfigurasi server basis data.
Penguji membutuhkan pengetahuan tentang domain bisnis serta keakraban dengan alat pengembangan dan kerangka kerja otomatisasi.Penguji tersebut membutuhkan latar belakang yang kuat dalam server basis data dan Bahasa Kueri Terstruktur (SQL).

Jenis Pengujian Basis Data

Jenis Pengujian Basis Data

Pengujian basis data terbagi menjadi tiga kategori utama. Masing-masing memverifikasi lapisan yang berbeda dari tumpukan basis data.

  1. Pengujian Struktural
  2. Pengujian Fungsional
  3. Pengujian Non-fungsional

Pengujian Basis Data Struktural

Pengujian Basis Data Struktural Memvalidasi elemen-elemen di dalam repositori data yang digunakan untuk penyimpanan tetapi tidak dimanipulasi secara langsung oleh pengguna akhir. Validasi server basis data merupakan bagian dari pengujian struktural. Pelaksanaan yang sukses membutuhkan keterampilan SQL yang kuat.

Apa itu Pengujian Skema?

Pengujian Skema memvalidasi format skema yang terkait dengan basis data dan memverifikasi bahwa peta tersebutping tabel, tampilan, dan kolomnya sesuai dengan peta.ping yang diharapkan oleh antarmuka pengguna. Tujuannya adalah untuk memastikan pemetaan skema.ping Konsistensi antara front-end dan back-end sangat penting. Pengujian skema juga disebut... petaping pengujian.

Poin-poin penting untuk pengujian skema:

  1. Validasi setiap format skema yang terkait dengan basis data. Petakanping Format pada tingkat tabel seringkali berbeda dengan format pada tingkat antarmuka pengguna.
  2. Verifikasi keberadaan tabel, tampilan, atau kolom yang belum dipetakan.
  3. Pastikan bahwa basis data heterogen di lingkungan tersebut tetap konsisten dengan peta aplikasi secara keseluruhan.ping.

Alat-alat yang berguna untuk memvalidasi skema basis data:

  • DBUnit terintegrasi dengan Ant โ€” sangat cocok untuk petaping pengujian.
  • SQL Server Memungkinkan penguji untuk memeriksa skema dengan menulis kueri sederhana alih-alih kode.

Sebagai contoh, jika tim pengembang mengubah atau menghapus sebuah tabel, penguji akan memastikan bahwa setiap stored procedure dan view yang merujuk pada tabel tersebut kompatibel dengan perubahan tersebut. Contoh lain: ketika membandingkan perbedaan skema antara dua basis data, kueri sederhana terhadap katalog sistem dapat menyelesaikan pekerjaan dengan cepat.

Tabel Database, Pengujian Kolom

  1. Pastikan bahwa kolom dan field basis data backend sesuai dengan data yang ada di frontend.
  2. Validasi panjang dan konvensi penamaan bidang dan kolom basis data terhadap persyaratan.
  3. Mendeteksi tabel dan kolom yang tidak digunakan atau tidak dipetakan.
  4. Pastikan tipe data dan panjang kolom pada bagian back-end kompatibel dengan kolom formulir pada bagian front-end.
  5. Konfirmasikan bahwa kolom-kolom dalam basis data menerima input pengguna yang dibutuhkan sesuai dengan spesifikasi persyaratan bisnis.

Pengujian Kunci dan Indeks

  1. Pastikan bahwa yang dibutuhkan kunci utama ke kunci asing Terdapat batasan pada tabel-tabel yang diperlukan.
  2. Konfirmasikan bahwa referensi kunci asing mengarah ke catatan yang valid.
  3. Periksa apakah tipe data kunci utama sesuai dengan tipe data kunci asing yang bersesuaian di tabel terkait.
  4. Konfirmasikan bahwa konvensi penamaan untuk kunci dan indeks mengikuti standar proyek.
  5. Validasi ukuran dan panjang bidang yang diindeks.
  6. Pastikan bahwa yang dibutuhkan berkerumun ke indeks non-kluster dibuat pada tabel yang ditentukan oleh persyaratan.

Pengujian Prosedur Tersimpan

  1. Konfirmasikan bahwa tim pengembang telah mengikuti konvensi pengkodean, penanganan pengecualian, dan penanganan kesalahan yang diperlukan untuk setiap stored procedure di setiap modul.
  2. Pastikan bahwa semua kondisi dan perulangan dijalankan dengan data masukan yang diberikan selama pengujian.
  3. Konfirmasikan bahwa operasi TRIM diterapkan setiap kali data diambil dari tabel yang dibutuhkan.
  4. Jalankan setiap stored procedure secara manual dan verifikasi hasilnya sesuai dengan yang diharapkan.
  5. Konfirmasikan bahwa eksekusi manual memperbarui kolom tabel yang mendasarinya sesuai dengan kebutuhan aplikasi yang sedang diuji.
  6. Pastikan bahwa eksekusi stored procedure secara implisit memanggil trigger yang diperlukan.
  7. Mendeteksi prosedur tersimpan yang tidak digunakan.
  8. Validasi perilaku untuk input NULL pada tingkat basis data.
  9. Konfirmasikan bahwa setiap stored procedure dan function berjalan dengan sukses ketika database yang diuji kosong.
  10. Validasi integrasi ujung-ke-ujung modul stored procedure terhadap persyaratan aplikasi.

Alat-alat yang berguna untuk menguji stored procedure meliputi: LINQ dan Tes SP utilitas

Pengujian Pemicu

  1. Pastikan bahwa konvensi pengkodean yang diperlukan telah diikuti selama pengembangan pemicu.
  2. Konfirmasikan bahwa pemicu diaktifkan pada transaksi DML yang dimaksud dan hanya pada transaksi tersebut.
  3. Pastikan pemicu memperbarui data dengan benar setelah diaktifkan.
  4. Validasi fungsionalitas pemicu Update, Insert, dan Delete yang dibutuhkan dalam aplikasi yang sedang diuji.

Validasi Server Basis Data

Validasi Server Basis Data

  1. Verifikasi konfigurasi server basis data terhadap persyaratan bisnis.
  2. Pastikan bahwa pengguna hanya diizinkan untuk melakukan tindakan yang diizinkan oleh aplikasi.
  3. Pastikan bahwa server basis data mampu menangani beban transaksi pengguna bersamaan maksimum yang ditentukan dalam persyaratan.

Pengujian Basis Data Fungsional

Pengujian Basis Data Fungsional Memvalidasi persyaratan fungsional basis data dari perspektif pengguna akhir. Tujuannya adalah untuk memastikan bahwa transaksi dan operasi yang dipicu oleh pengguna akhir berperilaku sesuai harapan di tingkat basis data.

Kondisi dasar yang perlu diverifikasi selama validasi basis data:

  • Apakah setiap kolom wajib diisi atau menerima nilai NULL.
  • Apakah setiap kolom menyediakan panjang yang cukup untuk data yang diharapkan.
  • Apakah kolom-kolom yang secara semantik serupa menggunakan nama yang sama di seluruh tabel.
  • Apakah terdapat kolom terhitung dalam basis data, dan rumus apa yang diterapkan.

Validasi ini berjalan dua arah. Penguji melakukan operasi pada tingkat basis data dan memverifikasinya pada antarmuka pengguna, kemudian melakukan operasi pada antarmuka pengguna dan memverifikasinya pada tingkat basis data.

Memeriksa integritas dan konsistensi data

  1. Pastikan data tersusun secara logis.
  2. Konfirmasikan bahwa data yang tersimpan sesuai dengan persyaratan bisnis.
  3. Mendeteksi data yang tidak perlu dalam aplikasi yang sedang diuji.
  4. Verifikasi bahwa data yang diperbarui dari antarmuka pengguna masuk dengan benar ke dalam basis data.
  5. Konfirmasikan operasi TRIM pada data sebelum penyisipan.
  6. Verifikasi bahwa setiap transaksi sesuai dengan spesifikasi bisnis dan menghasilkan hasil yang diharapkan.
  7. Konfirmasikan keberhasilan commit ketika transaksi selesai.
  8. Konfirmasikan rollback yang benar ketika transaksi gagal.
  9. Konfirmasikan rollback yang benar dalam transaksi yang mencakup basis data yang berbeda.
  10. Pastikan bahwa setiap transaksi mengikuti prosedur desain yang didefinisikan dalam persyaratan sistem.

Login dan Keamanan Pengguna

  1. Pastikan aplikasi memblokir upaya login dengan: (a) nama pengguna tidak valid + kata sandi valid, (b) nama pengguna valid + kata sandi tidak valid, dan (c) nama pengguna tidak valid + kata sandi tidak valid.
  2. Konfirmasikan bahwa setiap pengguna hanya dapat melakukan operasi yang ditentukan oleh peran mereka.
  3. Pastikan bahwa data sensitif terlindungi dari akses tanpa izin.
  4. Konfirmasikan bahwa peran pengguna yang berbeda ada dengan kumpulan izin yang berbeda.
  5. Pastikan setiap pengguna memiliki tingkat akses yang ditentukan dalam persyaratan bisnis.
  6. Pastikan bahwa data sensitif โ€” kata sandi, nomor kartu kredit, identitas pribadi โ€” dienkripsi saat disimpan dan tidak pernah disimpan dalam bentuk teks biasa. Semua akun harus menggunakan kata sandi yang kompleks dan sulit ditebak.

Pengujian Non-fungsional

Pengujian non-fungsional dalam konteks basis data mencakup pengujian beban, stress testing, pengujian keamanan, pengujian kegunaan, dan pengujian kompatibilitasPengujian beban dan pengujian stres โ€” keduanya merupakan bentuk pengujian kinerja โ€” memiliki dua tujuan spesifik:

  • Kuantifikasi risiko: Mengukur risiko membantu para pemangku kepentingan memastikan waktu respons sistem pada tingkat beban yang ditentukan. Ini adalah tujuan utama dari setiap jaminan kualitas upaya. Pengujian beban tidak mengurangi risiko secara langsung; melainkan, ia mengungkap risiko dan menciptakan dorongan untuk perbaikan.
  • Persyaratan perangkat keras minimum: Pengujian kinerja mengidentifikasi infrastruktur minimum yang diperlukan untuk memenuhi ekspektasi kinerja yang dinyatakan, memungkinkan tim untuk menghindari penyediaan perangkat keras yang berlebihan dan peningkatan biaya kepemilikan.

Pengujian beban

Tujuan setiap uji beban harus dipahami dan didokumentasikan dengan jelas. Konfigurasi berikut wajib untuk... pengujian beban:

  1. Sertakan transaksi pengguna yang paling sering dieksekusi, karena kinerja transaksi tersebut memengaruhi setiap transaksi lainnya.
  2. Sertakan setidaknya satu transaksi non-pengeditan untuk membedakan kinerja baca dari kinerja tulis.
  3. Sertakan transaksi yang mendorong tujuan bisnis inti โ€” kegagalan di sini memiliki dampak terbesar.
  4. Sertakan setidaknya satu transaksi pengeditan untuk membedakan kinerja penulisan dari kinerja pembacaan.
  5. Ukur waktu respons di bawah beban pengguna virtual maksimum yang diproyeksikan.
  6. Ukur latensi pengambilan data dalam skala besar.

Alat pengujian beban yang umum meliputi: LoadRunner Profesional, WinRunner, dan Apache JMeter.

Apa itu Pengujian Stres Basis Data?

Pengujian beban basis data Pengujian beban (stress testing) memberikan beban berat pada basis data hingga terjadi kegagalan. Hal ini mengidentifikasi titik kerusakan sistem. Pengujian beban membutuhkan perencanaan yang cermat untuk menghindari kehabisan sumber daya pada infrastruktur bersama. Pengujian beban juga disebut pengujian penyiksaan or pengujian kelelahanLihat cakupan yang lebih luas tutorial pengujian stres untuk latar belakang. Alat-alat umum meliputi: LoadRunner Profesional ke JMeter.

Alat Pengujian Basis Data Terbaik (2026)

Alat yang tepat bergantung pada lapisan tumpukan basis data mana yang Anda uji. Tabel di bawah ini memasangkan kategori umum dengan opsi yang paling dikenal.

KategoriAlat Bantuterbaik Untuk
Pengujian unitDBUnit, tSQLtPengujian skema dan prosedur tersimpan yang dapat diulang terintegrasi dengan Ant atau pipeline build.
Beban & teganganLoadRunner Profesional, Apache JMeterSimulasi pengguna virtual bervolume tinggi terhadap beban kerja tingkat produksi.
Perbandingan dataRedgate SQL Data Compare, Apache DBUtilsMemverifikasi bahwa kedua basis data menyimpan data yang identik setelah migrasi atau ETL.
Pembuatan data tiruanMockaroo, DatatectMenghasilkan kumpulan data uji realistis yang menghormati integritas referensial.
Manajemen skemaLiquibase, FlywayMigrasi yang dikontrol versi dan pengujian pengembalian (rollback) di berbagai lingkungan.
Editor SQL / validasi ad-hocDBeaver, Azure Data Studio, SSMSPembuatan kueri interaktif selama pengujian basis data eksploratif.

Pasangkan setidaknya satu alat dari kategori beban dengan satu alat dari kategori unit untuk mencakup risiko kinerja dan regresi.

Masalah yang paling umum terjadi selama pengujian database

IsuSolusi yang disarankan
Diperlukan biaya tambahan yang signifikan untuk menentukan status transaksi basis data.Rencanakan waktu dan ketergantungan sejak awal agar tidak muncul ambiguitas status transaksi selama eksekusi.
Data uji baru harus dirancang setelah membersihkan data uji lama.Pertahankan strategi pembuatan data uji dan prosedur pembaruan yang terdokumentasi sebelum setiap siklus.
Diperlukan generator SQL untuk mengubah validator SQL sehingga kueri sesuai dengan kasus uji yang dibutuhkan.Perlakukan pemeliharaan SQL sebagai bagian utama dari keseluruhan proses. strategi pengujian, bukan sebagai pekerjaan ad-hoc.
Persyaratan di atas dapat membuat proses penyiapan menjadi mahal dan memakan waktu.Seimbangkan kedalaman pengujian dengan jadwal dengan membuat tingkatan cakupan: otomatisasi mendalam untuk area berisiko tinggi, pemeriksaan ringan di tempat lain.

Mitos dan Kesalahpahaman tentang Pengujian Basis Data

Mitos versus realitas pengujian basis data

MitosKenyataan
Pengujian basis data membutuhkan keahlian mendalam dan terlalu melelahkan untuk dibenarkan.Pengujian basis data yang efektif menghasilkan stabilitas fungsional jangka panjang. Upaya ini akan terbayar berkali-kali lipat dalam bentuk pengurangan waktu respons insiden.
Pengujian basis data menciptakan hambatan kerja tambahan.Hal ini mengungkap cacat tersembunyi sejak dini dan meningkatkan kualitas aplikasi secara keseluruhan, menghilangkan hambatan alih-alih menciptakannya.
Pengujian basis data memperlambat proses pengembangan.Investasi dalam pengujian basis data mempercepat pengembangan selanjutnya dengan mendeteksi cacat skema dan integritas sebelum menyebar.
Pengujian basis data sangat mahal.Basis data (dan SQLPengujian merupakan investasi jangka panjang dalam stabilitas aplikasi dan perlindungan terhadap kegagalan produksi yang mahal.

Praktik Terbaik

  • Validasi semua data โ€” metadata dan data fungsional โ€” terhadap spesifikasi persyaratan, termasuk pemetaannya.ping aturan.
  • Revlihat setiap set data uji diproduksi oleh atau bersama tim pengembang sebelum mengandalkannya.
  • Validasi data keluaran menggunakan prosedur manual dan otomatis.
  • Terapkan grafik sebab-akibat, partisi kesetaraan, dan analisis nilai batas saat menghasilkan kondisi data uji.
  • Validasi aturan integritas referensial di seluruh tabel basis data yang dibutuhkan.
  • Gunakan nilai default yang telah ditentukan saat memeriksa konsistensi basis data, dan pastikan bahwa peristiwa log dicatat untuk setiap peristiwa login yang diperlukan.
  • Konfirmasikan bahwa tugas terjadwal berjalan tepat waktu dan menghasilkan keluaran yang diharapkan.
  • Cadangkan basis data sesuai jadwal yang telah ditentukan, dan verifikasi jalur pemulihan setidaknya setiap tiga bulan sekali.

Lihat juga โ€” Pertanyaan & Jawaban Wawancara Pengujian Basis Data.

Pertanyaan Umum Demo Slot

Pengujian basis data memvalidasi basis data operasional yang sedang berjalan โ€” skema, transaksi, dan integritas. Pengujian ETL Memvalidasi pergerakan data antara sistem sumber dan target, memeriksa kebenaran transformasi, kelengkapan, dan jumlah dalam alur kerja gudang data.

Ya. Asisten AI modern membaca DDL dan data sampel untuk mengusulkan pengujian unit untuk prosedur tersimpan, pengujian batas untuk kolom, dan pemeriksaan integritas referensial. Tinjauan manusia masih diperlukan untuk menegakkan aturan bisnis dan memprioritaskan cakupan yang mempertimbangkan risiko.

Hanya setelah dilakukan masking atau anonimisasi. Data produksi mentah membuat tim terpapar risiko privasi dan regulasi berdasarkan GDPR, HIPAA, atau PCI-DSS. Gunakan masking deterministik agar integritas referensial tetap terjaga di seluruh tabel.

Kategori yang sama berlaku dengan pemeriksaan yang disesuaikan: validasi skema berfokus pada bentuk dokumen atau keluarga kolom, pengujian integritas mencakup konsistensi bertahap, dan pengujian beban menekankan penyeimbangan shard. MongoDB, Cassandra, dan DynamoDB Semua pihak mendapat manfaat dari suite yang telah disesuaikan ini.

Tidak. AI mempercepat pembuatan kueri, pembuatan pengujian, dan deteksi anomali, tetapi penguji manusia masih bertanggung jawab atas prioritas risiko, interpretasi peraturan, dan pengujian eksploratif โ€” pekerjaan yang sarat dengan penilaian yang didorong oleh keahlian domain dan yang ditingkatkan oleh AI, bukan digantikan.

Ringkaslah postingan ini dengan: