Tutorial Pengujian Basis Data (Data).
Apa itu Pengujian Basis Data?
Pengujian Basis Data adalah jenis pengujian perangkat lunak yang memeriksa skema, tabel, pemicu, dll. dari Basis Data yang diuji. Pengujian ini juga memeriksa integritas dan konsistensi data. Pengujian ini dapat melibatkan pembuatan kueri kompleks untuk melakukan uji beban/stres pada Basis Data dan memeriksa responsivitasnya.
Mengapa Pengujian Basis Data Penting?
Pengujian Basis Data itu penting in pengujian perangkat lunak karena memastikan nilai data dan informasi yang diterima dan disimpan ke dalam database valid atau tidak. Pengujian basis data membantu menyelamatkan kehilangan data, menyimpan data transaksi yang dibatalkan, dan tidak ada akses tidak sah ke informasi. Basis data penting untuk aplikasi perangkat lunak apa pun sehingga penguji harus memiliki pengetahuan yang baik tentang SQL untuk pengujian basis data.
GUI biasanya diberi penekanan paling besar oleh anggota tim pengujian dan pengembangan karena Antarmuka Pengguna Grafis merupakan bagian aplikasi yang paling terlihat. Namun yang juga penting adalah memvalidasi informasi yang menjadi jantung aplikasi alias DATABASE.
Mari kita pertimbangkan sebuah aplikasi Perbankan di mana pengguna melakukan transaksi. Dari sudut pandang Pengujian Basis Data atau Pengujian DB, berikut ini adalah hal-hal penting:
- Aplikasi menyimpan informasi transaksi dalam database aplikasi dan menampilkannya dengan benar kepada pengguna.
- Tidak ada informasi yang hilang dalam proses tersebut.
- Tidak ada informasi operasi yang dilakukan sebagian atau dibatalkan yang disimpan oleh aplikasi.
- Tidak ada individu yang tidak berwenang diperbolehkan mengakses informasi pengguna.
Untuk memastikan semua tujuan di atas, kita perlu menggunakan validasi data atau pengujian data.
Perbedaan antara Pengujian Antarmuka Pengguna dan Pengujian Data
Pengujian Antarmuka Pengguna | Pengujian Basis Data atau Data |
---|---|
Jenis pengujian ini juga dikenal sebagai pengujian Antarmuka Pengguna Grafis atau Pengujian Front-end. | Jenis pengujian ini juga dikenal sebagai Pengujian Backend atau pengujian data. |
Jenis pengujian ini terutama berkaitan dengan semua item yang dapat diuji yang terbuka bagi pengguna untuk penayangan dan interaksi seperti Formulir, Presentasi, Grafik, Menu, dan Laporan, dll. (dibuat melalui VB, VB.net, VC++, Delphi – Alat Front-end) | Jenis pengujian ini terutama berhubungan dengan semua item yang dapat diuji yang umumnya disembunyikan dari pengguna untuk dilihat. Ini termasuk proses internal dan sejenisnya penyimpanan Assembly, DBMS suka Oracle, SQL Server, MYSQL, dll. |
Jenis pengujian ini termasuk memvalidasi
|
Jenis pengujian ini melibatkan validasi:
|
Penguji harus memiliki pengetahuan menyeluruh tentang persyaratan bisnis serta penggunaan alat pengembangan dan penggunaan kerangka kerja dan alat otomasi. | Untuk dapat melakukan pengujian backend, penguji harus memiliki latar belakang yang kuat dalam konsep server basis data dan Bahasa Kueri Terstruktur. |
Jenis Pengujian Basis Data
3 jenis Pengujian Basis Data adalah
Dalam tutorial Pengujian Basis Data ini, kita akan melihat setiap tipe dan subtipenya satu per satu.
Pengujian Basis Data Struktural
Pengujian Basis Data Struktural adalah teknik pengujian basis data yang memvalidasi semua elemen di dalam penyimpanan data yang terutama digunakan untuk penyimpanan data dan tidak boleh dimanipulasi secara langsung oleh pengguna akhir. Validasi server database juga merupakan pertimbangan penting dalam pengujian database struktural. Penyelesaian pengujian ini yang berhasil memerlukan penguasaan dalam kueri SQL.
Apa itu Pengujian Skema?
Pengujian Skema dalam pengujian basis data memvalidasi berbagai format skema yang terkait dengan basis data dan memverifikasi apakah format pemetaan tabel/tampilan/kolom kompatibel dengan format pemetaan antarmuka pengguna. Tujuan utama pengujian skema adalah untuk memastikan pemetaan skema antara front-end dan back-end serupa. Oleh karena itu, ini juga disebut sebagai pengujian pemetaan.
Mari kita bahas pos pemeriksaan terpenting untuk pengujian skema.
- Validasi berbagai format skema yang terkait dengan database. Seringkali format pemetaan tabel mungkin tidak kompatibel dengan format pemetaan yang ada di tingkat antarmuka pengguna aplikasi.
- Ada kebutuhan untuk verifikasi jika tabel/tampilan/kolom belum dipetakan.
- Ada juga kebutuhan untuk memverifikasi apakah basis data heterogen dalam suatu lingkungan konsisten dengan pemetaan aplikasi keseluruhan.
Mari kita lihat juga beberapa alat Pengujian Basis Data yang menarik untuk memvalidasi skema basis data.
- DBUnit yang terintegrasi dengan Ant sangat cocok untuk pengujian pemetaan.
- SQL Server memungkinkan penguji untuk dapat memeriksa dan menanyakan skema Database dengan menulis kueri sederhana dan bukan melalui kode.
Misalnya, jika pengembang ingin mengubah struktur tabel atau menghapusnya, penguji ingin memastikan bahwa semua Prosedur Tersimpan dan Tampilan yang menggunakan tabel tersebut kompatibel dengan perubahan tertentu. Contoh lainnya adalah jika penguji ingin memeriksa perubahan skema antara 2 database, mereka dapat melakukannya dengan menggunakan kueri sederhana.
Tabel Database, Pengujian Kolom
Mari kita lihat berbagai pemeriksaan untuk pengujian database dan kolom.
- Apakah pemetaan kolom dan kolom database di backend kompatibel dengan pemetaan di front-end?
- Validasi panjang dan konvensi penamaan bidang dan kolom database sebagaimana ditentukan oleh persyaratan.
- Validasi keberadaan tabel/kolom database yang tidak digunakan/belum dipetakan.
- Validasi kompatibilitas
- tipe data
- panjang lapangan
kolom database back-end dengan kolom yang ada di front-end aplikasi.
- Apakah bidang database memungkinkan pengguna untuk memberikan input pengguna yang diinginkan seperti yang disyaratkan oleh dokumen spesifikasi kebutuhan bisnis.
Pengujian kunci dan indeks
Pemeriksaan penting untuk kunci dan indeks –
- Periksa apakah diperlukan
- Kunci utama
- Kunci asing
batasan telah dibuat pada tabel yang diperlukan.
- Periksa apakah referensi untuk kunci asing valid.
- Periksa apakah tipe data kunci utama dan kunci asing terkait sama di kedua tabel.
- Periksa apakah konvensi penamaan yang diperlukan telah diikuti untuk semua kunci dan indeks.
- Periksa ukuran dan panjang bidang dan indeks yang diperlukan.
- Apakah diperlukan
- Clusterindeks ed
- Tidak Clusterindeks ed
telah dibuat pada tabel yang diperlukan seperti yang ditentukan oleh persyaratan bisnis.
Pengujian Prosedur Tersimpan
Tes penting untuk memeriksa prosedur tersimpan adalah:
- Apakah tim pengembangan benar-benar mengadopsi konvensi standar pengkodean yang diperlukan, dan B) penanganan pengecualian dan kesalahan. Untuk semua prosedur tersimpan untuk semua modul untuk aplikasi yang diuji.
- Apakah tim pengembangan telah mencakup semua kondisi/loop dengan menerapkan data masukan yang diperlukan ke aplikasi yang diuji?
- Apakah tim pengembang menerapkan operasi TRIM dengan benar setiap kali data diambil dari tabel yang diperlukan dalam Basis Data?
- Apakah eksekusi Prosedur Tersimpan secara manual memberikan hasil yang dibutuhkan pengguna akhir?
- Apakah eksekusi manual Prosedur Tersimpan memastikan bidang tabel diperbarui sesuai kebutuhan aplikasi yang diuji?
- Apakah eksekusi Prosedur Tersimpan memungkinkan pemanggilan pemicu yang diperlukan secara implisit?
- Validasi keberadaan prosedur tersimpan yang tidak digunakan.
- Validasi kondisi Allow Null yang dapat dilakukan pada level database.
- Validasi fakta bahwa semua Prosedur dan Fungsi Tersimpan telah berhasil dijalankan ketika Database yang diuji kosong.
- Validasi integrasi keseluruhan modul prosedur tersimpan sesuai dengan persyaratan aplikasi yang diuji.
Beberapa alat Pengujian Basis Data yang berguna untuk menguji prosedur tersimpan adalah LINQ, alat Uji SP, dll.
Pengujian Pemicu
- Apakah konvensi pengkodean yang diperlukan telah diikuti selama fase pengkodean Pemicu?
- Periksa apakah pemicu yang dijalankan untuk masing-masing transaksi DML telah memenuhi ketentuan yang diperlukan.
- Apakah pemicu memperbarui data dengan benar setelah dieksekusi?
- Validasi fungsi pemicu Pembaruan/Sisipkan/Hapus yang diperlukan dalam ranah aplikasi yang sedang diuji.
Validasi Server Basis Data
- Periksa konfigurasi server database seperti yang ditentukan oleh persyaratan bisnis.
- Periksa otorisasi pengguna yang diperlukan untuk melakukan hanya tingkat tindakan yang diperlukan oleh aplikasi.
- Periksa apakah server database mampu memenuhi kebutuhan jumlah maksimum transaksi pengguna yang diperbolehkan sebagaimana ditentukan oleh spesifikasi kebutuhan bisnis.
Pengujian Basis Data Fungsional
Pengujian Basis Data Fungsional adalah jenis pengujian basis data yang digunakan untuk memvalidasi persyaratan fungsional basis data dari sudut pandang pengguna akhir. Tujuan utama pengujian basis data fungsional adalah untuk menguji apakah transaksi dan operasi yang dilakukan oleh pengguna akhir yang terkait dengan basis data berfungsi seperti yang diharapkan atau tidak.
Berikut ini adalah kondisi dasar yang perlu diperhatikan untuk validasi basis data.
- Apakah kolom tersebut wajib diisi sembari memperbolehkan nilai NULL pada kolom tersebut?
- Apakah panjang masing-masing bidang sudah mencukupi ukurannya?
- Apakah semua bidang serupa memiliki nama yang sama di seluruh tabel?
- Apakah ada bidang terhitung yang ada di Database?
Proses khusus ini adalah validasi pemetaan bidang dari sudut pandang pengguna akhir. Dalam skenario khusus ini, penguji akan melakukan operasi pada tingkat basis data dan kemudian akan menavigasi ke item antarmuka pengguna yang relevan untuk mengamati dan memvalidasi apakah validasi bidang yang tepat telah dilakukan atau belum.
Kondisi sebaliknya, di mana operasi pertama dilakukan oleh penguji di antarmuka pengguna, dan kemudian hal yang sama divalidasi dari bagian belakang juga harus dilakukan.
Memeriksa integritas dan konsistensi data
Pemeriksaan berikut ini penting
- Apakah datanya terorganisir dengan baik secara logis?
- Apakah data yang disimpan dalam tabel sudah benar dan sesuai kebutuhan bisnis?
- Apakah ada data yang tidak diperlukan pada aplikasi yang diuji?
- Apakah data telah disimpan sesuai dengan kebutuhan sehubungan dengan data yang telah diperbarui dari antarmuka pengguna?
- Apakah operasi TRIM dilakukan pada data sebelum memasukkan data ke dalam Basis Data yang diuji?
- Apakah transaksi telah dilakukan sesuai spesifikasi kebutuhan bisnis dan apakah hasilnya benar atau tidak?
- Apakah data telah dikomit dengan benar jika transaksi berhasil dijalankan?
- Apakah data telah berhasil di-rollback jika transaksi belum berhasil dieksekusi oleh pengguna akhir?
- Apakah data telah dikembalikan jika transaksi belum berhasil dieksekusi dan beberapa basis data heterogen telah terlibat dalam transaksi yang dimaksud?
- Apakah semua transaksi telah dijalankan dengan menggunakan prosedur desain yang diperlukan sebagaimana ditentukan oleh persyaratan bisnis sistem?
Login dan Keamanan Pengguna
Validasi login dan kredensial keamanan pengguna perlu mempertimbangkan hal-hal berikut.
- Apakah aplikasi menghalangi pengguna untuk melanjutkan lebih jauh dalam aplikasi jika terjadi a
- nama pengguna tidak valid tetapi kata sandi valid
- nama pengguna yang valid tetapi kata sandi tidak valid.
- nama pengguna tidak valid dan kata sandi tidak valid.
- Apakah pengguna hanya diperbolehkan melakukan operasi spesifik yang ditetapkan oleh persyaratan bisnis?
- Apakah data diamankan dari akses yang tidak sah?
- Apakah ada peran pengguna berbeda yang dibuat dengan izin berbeda?
- Apakah semua pengguna memiliki tingkat akses yang diperlukan pada Database tertentu seperti yang disyaratkan oleh spesifikasi bisnis?
- Pastikan data sensitif seperti kata sandi, nomor kartu kredit dienkripsi dan tidak disimpan sebagai teks biasa di Basis Data. Sebaiknya pastikan semua akun memiliki kata sandi yang rumit dan tidak mudah ditebak.
Pengujian non-fungsional
Pengujian non-fungsional dalam konteks pengujian basis data dapat dikategorikan ke dalam berbagai kategori sesuai kebutuhan bisnis. Ini bisa berupa pengujian beban, Pengujian Stres, Pengujian Keamanan, Kegunaan Pengujian, dan Pengujian Kompatibilitas, dan seterusnya. Pengujian beban, serta pengujian stres, yang dapat dikelompokkan dalam keseluruhan Pengujian Kinerja memiliki dua tujuan spesifik dalam hal peran pengujian non-fungsional.
Kuantifikasi risiko– Kuantifikasi risiko membantu pemangku kepentingan untuk memastikan berbagai persyaratan waktu respons sistem pada tingkat beban yang diperlukan. Ini adalah maksud awal dari semua hal jaminan kualitas tugas. Kita perlu mencatat bahwa pengujian beban tidak memitigasi risiko secara langsung, namun melalui proses identifikasi risiko dan kuantifikasi risiko, memberikan peluang perbaikan dan dorongan untuk remediasi yang akan memitigasi risiko.
Persyaratan peralatan sistem minimum– Konfigurasi sistem minimum yang akan memungkinkan sistem memenuhi harapan kinerja yang dinyatakan secara formal oleh para pemangku kepentingan. Sehingga perangkat keras, perangkat lunak, dan biaya kepemilikan yang terkait dapat diminimalkan. Persyaratan khusus ini dapat dikategorikan sebagai persyaratan pengoptimalan bisnis secara keseluruhan.
Pengujian beban
Tujuan dari setiap pengujian beban harus dipahami dan didokumentasikan dengan jelas. Jenis konfigurasi berikut adalah suatu keharusan untuk pengujian beban.
- Transaksi pengguna yang paling sering digunakan berpotensi berdampak pada kinerja semua transaksi lainnya jika tidak efisien.
- Setidaknya satu transaksi pengguna non-penyuntingan harus disertakan dalam rangkaian pengujian akhir, sehingga kinerja transaksi tersebut dapat dibedakan dari transaksi lain yang lebih rumit.
- Transaksi yang lebih penting yang memfasilitasi tujuan inti sistem harus dimasukkan, karena kegagalan dalam beban transaksi ini, menurut definisi, memiliki dampak yang paling besar.
- Setidaknya satu transaksi yang dapat diedit harus disertakan prestasi transaksi tersebut dapat dibedakan dengan transaksi lainnya.
- Waktu respons optimal di bawah sejumlah besar pengguna virtual untuk semua persyaratan prospektif.
- Waktu efektif untuk mengambil berbagai catatan.
Alat pengujian beban yang penting adalah LoadRunner Profesional, menangkan pelari dan JMeter.
Apa itu Pengujian Stres Basis Data?
Pengujian Stres Basis Data adalah metode pengujian yang digunakan untuk menguji sistem database dengan beban berat sehingga gagal di beberapa titik. Ini membantu dalam mengidentifikasi titik kerusakan sistem basis data. Hal ini memerlukan perencanaan dan upaya yang tepat untuk menghindari penggunaan sumber daya yang berlebihan. Data stress testing juga dikenal sebagai pengujian menyiksa atau pengujian kelelahan.
Alat pengujian stres yang penting adalah LoadRunner Profesional dan JMeter.
Masalah yang paling umum terjadi selama pengujian database
A significant amount of overhead could be involved to determine the state of the database transactions
Larutan: Perencanaan dan pengaturan waktu proses secara keseluruhan harus diatur sehingga tidak ada masalah berbasis waktu dan biaya yang muncul.
New test data have to be designed after cleaning up of the old test data.
Larutan: Rencana dan metodologi sebelumnya untuk pembuatan data pengujian harus sudah ada.
An SQL generator is required to transform SQL validators in order to ensure the SQL queries are apt for handling the required database test cases.
Larutan: Pemeliharaan kueri SQL dan pembaruan berkelanjutannya merupakan bagian penting dari keseluruhan proses pengujian yang harus menjadi bagian dari keseluruhan strategi pengujian.
The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.
Larutan: Harus ada keseimbangan yang baik antara kualitas dan durasi jadwal proyek secara keseluruhan.
Mitos atau Kesalahpahaman terkait Pengujian Basis Data
Database Testing requires plenty of expertise and it is a very tedious job
Realitas: Pengujian Basis Data yang efektif dan efisien dalam Pengujian Perangkat Lunak memberikan stabilitas fungsional jangka panjang untuk keseluruhan aplikasi sehingga perlu kerja keras di belakangnya.
Database testing adds extra work bottleneck
Realitas: Sebaliknya, pengujian basis data menambah nilai lebih pada keseluruhan pekerjaan dengan menemukan masalah tersembunyi dan dengan demikian secara proaktif membantu meningkatkan aplikasi secara keseluruhan.
Database testing slows down the overall development process
Realitas: Sejumlah besar pengujian basis data membantu peningkatan kualitas aplikasi basis data secara keseluruhan.
Database testing could be excessively costly
Realitas: Setiap pengeluaran untuk pengujian database adalah investasi jangka panjang yang mengarah pada stabilitas dan ketahanan aplikasi jangka panjang. Demikian pengeluaran untuk Pengujian Basis Data atau SQL Pengujian diperlukan.
Praktik Terbaik
- Semua data termasuk metadata serta data fungsional perlu divalidasi sesuai pemetaannya dengan dokumen spesifikasi kebutuhan.
- Verifikasi data uji yang telah dibuat oleh / dikonsultasikan dengan tim pengembangan perlu divalidasi.
- Validasi data keluaran dengan menggunakan prosedur manual dan otomatisasi.
- Penerapan berbagai teknik seperti teknik grafik sebab akibat, teknik partisi ekuivalen, dan teknik analisis nilai batas untuk menghasilkan kondisi data uji yang diperlukan.
- Aturan validasi integritas referensial untuk tabel database yang diperlukan juga perlu divalidasi.
- Pemilihan nilai tabel default untuk validasi konsistensi database merupakan konsep yang sangat penting Apakah log event telah berhasil ditambahkan dalam Database untuk semua event login yang diperlukan
- Apakah pekerjaan yang dijadwalkan dilaksanakan tepat waktu?
- Ambil cadangan Database tepat waktu.
Juga Periksa- Pertanyaan & Jawaban Wawancara Pengujian Basis Data