Pengujian Basis Data - Panduan Cepat
Pengujian basis data meliputi melakukan validitas data, pengujian integritas data, pemeriksaan kinerja yang berkaitan dengan basis data dan pengujian prosedur, pemicu dan fungsi dalam basis data.
Contoh
Pertimbangkan aplikasi yang menangkap detail transaksi sehari-hari untuk pengguna dan menyimpan detail tersebut di database. Dari sudut pandang pengujian database, pemeriksaan berikut harus dilakukan -
Informasi transaksional dari aplikasi harus disimpan dalam database dan harus memberikan informasi yang benar kepada pengguna.
Informasi tidak boleh hilang saat dimuat ke database.
Hanya transaksi yang sudah selesai yang harus disimpan dan semua operasi yang tidak lengkap harus dibatalkan oleh aplikasi.
Otorisasi akses ke database harus dipertahankan. Tidak ada akses yang tidak disetujui atau tidak sah ke informasi pengguna yang harus diberikan.
Mengapa Anda Perlu Melakukan Pengujian Database?
Ada beberapa alasan mengapa pengujian database dilakukan. Ada kebutuhan untuk melakukan pemeriksaan integritas data, validasi dan konsistensi data pada database karena sistem backend bertanggung jawab untuk menyimpan data dan diakses untuk berbagai tujuan.
Diberikan di bawah ini adalah beberapa alasan umum untuk pengujian Database -
Untuk memudahkan kerumitan panggilan ke backend database, pengembang meningkatkan penggunaan View dan Stored Prosedur.
Ini Stored prosedur dan Viewsberisi tugas-tugas penting seperti memasukkan detail pelanggan (nama, informasi kontak, dll.) dan data penjualan. Tugas-tugas ini perlu diuji di beberapa tingkatan.
Black-box testingdilakukan di front-end itu penting, tetapi menyulitkan untuk mengisolasi masalah. Pengujian di sistem backend meningkatkan ketahanan data. Itulah mengapa pengujian database dilakukan pada sistem back end.
Dalam database, data berasal dari beberapa aplikasi dan ada kemungkinan data berbahaya atau salah disimpan di database. Oleh karena itu, perlu dilakukan pengecekan komponen database secara berkala. Selain itu, integritas dan konsistensi data harus diperiksa secara teratur.
Pengujian Database Vs Pengujian Front-End
Pengujian database berbeda dari pengujian UI front-end. Tabel berikut menyoroti perbedaan utama -
Pengujian Basis Data | Pengujian UI |
---|---|
Pengujian database dikenal sebagai validasi data dan pengujian integritas atau pengujian back-end. |
Pengujian UI atau pengujian front-end juga disebut pengujian Aplikasi atau pengujian GUI. |
Pengujian database melibatkan pengujian komponen back-end, yang tidak terlihat oleh pengguna. Ini termasuk komponen database dan sistem DBMS seperti My SQL, Oracle. |
Pengujian UI melibatkan pemeriksaan fungsionalitas aplikasi dan komponennya seperti formulir, grafik, menu, laporan, dll. Komponen ini dibuat menggunakan alat pengembangan front-end seperti VB.net, C #, Delphi, dll. |
Pengujian database melibatkan pemeriksaan prosedur tersimpan, tampilan, skema dalam database, tabel, indeks, kunci, pemicu, validasi data, dan pemeriksaan konsistensi data. |
Pengujian UI melibatkan pemeriksaan fungsionalitas aplikasi, tombol, formulir dan bidang, kalender dan gambar, navigasi dari satu halaman ke halaman lain, dan keseluruhan fungsionalitas aplikasi. |
Untuk melakukan pengujian DB, penguji membutuhkan pengetahuan menyeluruh tentang konsep database - seperti prosedur dan fungsi, tampilan, indeks, kunci, dan SQL langsung yang baik. |
Untuk melakukan pengujian UI, penguji membutuhkan pemahaman yang baik tentang persyaratan bisnis, pengetahuan fungsional aplikasi, pengkodean, dll. |
Data berasal dari berbagai sumber data yang heterogen melalui aplikasi web, aplikasi Intranet, dan berbagai aplikasi lainnya. |
Data dimasukkan secara manual ke dalam aplikasi. Ini melibatkan pengujian fungsional aplikasi front-end. |
Berdasarkan fungsi dan struktur database, pengujian DB dapat dikategorikan menjadi tiga kategori -
Structural Database Testing - Ini berkaitan dengan pengujian tabel dan kolom, pengujian skema, prosedur tersimpan dan pengujian tampilan, memeriksa pemicu, dll.
Functional Testing- Ini melibatkan pemeriksaan fungsionalitas database dari sudut pandang pengguna. Jenis pengujian Fungsional yang paling umum adalah pengujian kotak putih dan kotak hitam.
Nonfunctional Testing - Ini melibatkan pengujian beban, pengujian risiko dalam database, pengujian stres, persyaratan sistem minimum, dan berkaitan dengan kinerja database.
Pengujian Basis Data Struktural
Pengujian basis data struktural melibatkan verifikasi komponen basis data tersebut, yang tidak diekspos ke pengguna akhir. Ini melibatkan semua komponen repositori, yang digunakan untuk menyimpan data dan tidak diubah oleh pengguna akhir. Administrator database dengan perintah yang baik atas prosedur tersimpan SQL dan konsep lain biasanya melakukan pengujian ini.
Dibahas adalah komponen umum yang diuji sehubungan dengan Pengujian Struktural -
Pengujian Skema / Pemetaan
Ini melibatkan validasi objek aplikasi front-end dengan pemetaan objek database.
Dalam Pengujian Skema -
Kadang-kadang terjadi bahwa objek aplikasi pengguna akhir tidak dipetakan dengan benar atau kompatibel dengan objek database. Oleh karena itu, pemeriksaan validasi berbagai format skema yang terkait dengan database diperlukan.
Diperlukan untuk menemukan objek yang tidak dipetakan dalam database, seperti tabel, tampilan, kolom, dll. Diperlukan.
Ada berbagai alat di pasar yang dapat digunakan untuk melakukan pemetaan objek dalam skema.
Example - Di Microsoft SQL Server, penguji dapat menulis kueri sederhana untuk memeriksa dan memvalidasi skema di database.
Jika penguji ingin membuat perubahan pada struktur tabel, dia harus memastikan bahwa semua stored prosedur yang memiliki tabel tersebut kompatibel dengan perubahan ini.
Prosedur Tersimpan dan Pengujian Tampilan
Dalam pengujian ini, penguji memastikan bahwa eksekusi manual dari prosedur tersimpan dan tampilan menghasilkan hasil yang diperlukan.
Penguji memastikan -
Jika memungkinkan pemicu yang diperlukan untuk dieksekusi seperti yang diharapkan.
Jika tim pengembangan telah mencakup semua loop dan kondisi dengan meneruskan masukan ke aplikasi dalam prosedur.
Jika ada prosedur tersimpan yang tidak terpakai dalam database.
Operasi TRIM diterapkan dengan benar ketika data diambil dari tabel yang diperlukan dalam database.
Validasi integrasi keseluruhan dari modul prosedur yang tersimpan sesuai dengan persyaratan aplikasi yang diuji.
Mekanisme pengecualian dan penanganan kesalahan diikuti.
Alat paling umum yang digunakan untuk melakukan pengujian prosedur tersimpan adalah LINQ, SP Test tool, dll.
Pengujian Pemicu
Dalam pengujian pemicu, penguji perlu memastikan hal-hal berikut -
Apakah konvensi pengkodean diikuti selama fase pengkodean pemicu.
Lihat pemicu yang dieksekusi memenuhi ketentuan yang diperlukan.
Apakah pemicu memperbarui data dengan benar, setelah dieksekusi.
Validasi Update / Insert / Delete memicu aplikasi fungsionalitas wrt yang sedang diuji.
Tabel dan pengujian Kolom
Area utama yang tercakup dalam pengujian ini adalah -
Memvalidasi tipe data dalam database ke nilai bidang di aplikasi front-end.
Memvalidasi panjang bidang data dalam database dengan panjang tipe data dalam aplikasi.
Memeriksa apakah ada tabel atau kolom yang belum dipetakan dalam database dari objek bidang aplikasi.
Konvensi penamaan tabel dan kolom database diverifikasi, apakah sesuai dengan kebutuhan bisnis atau tidak.
Memvalidasi Kunci dan Indeks dalam database, misalnya, kunci utama dan asing dalam tabel ditentukan sesuai kebutuhan.
Periksa apakah kunci utama dan kunci asingnya sama di dua tabel.
Periksa karakteristik Unique dan NOT NULL dari kunci dipertahankan.
Panjang dan tipe data dari kunci dan indeks dipertahankan sesuai kebutuhan.
Pemeriksaan Server Database
Pemeriksaan Server Database melibatkan verifikasi -
Jika server database dapat menangani jumlah transaksi yang diharapkan sesuai kebutuhan bisnis.
Jika detail konfigurasi server database memenuhi persyaratan bisnis.
Jika otorisasi pengguna dipertahankan sesuai kebutuhan.
Pengujian Fungsional
Pengujian fungsional dilakukan dengan mengingat sudut pandang pengguna akhir; apakah transaksi dan operasi yang diperlukan yang dijalankan oleh pengguna akhir memenuhi spesifikasi bisnis.
Pengujian Kotak Hitam
Pengujian Black Box melibatkan verifikasi integrasi database untuk memeriksa fungsionalitas. Kasus uji sederhana dan digunakan untuk memverifikasi data yang masuk dan data keluar dari fungsi.
Berbagai teknik seperti teknik grafik sebab-akibat, partisi kesetaraan, dan analisis nilai batas digunakan untuk menguji fungsionalitas database.
Nya advantages adalah sebagai berikut -
- Ini cukup sederhana dan dilakukan pada tahap awal perkembangan.
- Biaya pengembangan kasus uji lebih murah dibandingkan dengan pengujian kotak putih.
Kerugiannya adalah sebagai berikut -
- Beberapa kesalahan tidak dapat dideteksi
- Tidak diketahui berapa banyak program yang perlu diuji.
Pengujian Kotak Putih
White Box Testing berkaitan dengan struktur internal database dan detail spesifikasinya disembunyikan dari pengguna. Ini melibatkan pengujian pemicu database dan tampilan logis, yang akan mendukung refactoring database.
Ia melakukan pengujian modul fungsi database, pemicu, pandangan, kueri SQL, dll. Jenis pengujian ini memvalidasi tabel database, model data, skema database, dll. Ia memeriksa aturan integritas Referensial. Ini memilih nilai tabel default untuk memeriksa konsistensi database.
Teknik yang paling umum digunakan untuk melakukan pengujian kotak putih adalah cakupan kondisi, cakupan keputusan, cakupan pernyataan, dll.
Kesalahan pengkodean dapat dideteksi dalam pengujian kotak putih, sehingga bug internal dalam database dapat dihilangkan. Batasan pengujian white-box adalah bahwa pernyataan SQL tidak tercakup.
Pengujian Nonfungsional
Pengujian nonfungsional melibatkan pelaksanaan pengujian beban, pengujian stres, pemeriksaan persyaratan sistem minimum untuk memenuhi spesifikasi bisnis, penemuan risiko dan pengoptimalan kinerja database.
Pengujian Beban
Target utama pengujian beban adalah untuk memeriksa apakah sebagian besar transaksi yang berjalan berdampak pada kinerja database.
Dalam pengujian beban, penguji memeriksa -
- Waktu respons untuk menjalankan transaksi untuk beberapa pengguna jarak jauh.
- Waktu yang dibutuhkan oleh database untuk mengambil record tertentu.
Examples of load testing in different testing types -
- Menjalankan transaksi yang paling sering digunakan secara berulang untuk melihat kinerja sistem database.
- Mendownload serangkaian file besar dari internet.
- Menjalankan banyak aplikasi di komputer atau server secara bersamaan.
Pengujian Stres
Pengujian tegangan dilakukan untuk mengidentifikasi breakpoint sistem. Dalam pengujian ini, aplikasi dimuat sedemikian rupa sehingga sistem gagal pada satu titik. Titik ini disebutbreakpoint sistem database.
Menentukan keadaan transaksi basis data melibatkan banyak upaya. Perencanaan yang tepat diperlukan untuk menghindari masalah waktu dan biaya.
Alat uji stres yang paling umum digunakan adalah LoadRunner dan WinRunner.
Mari kita ambil examplePengujian Stres. Aplikasi CRM dapat mengambil beban pengguna maksimum 50.000 pengguna secara bersamaan. Misalkan Anda meningkatkan beban menjadi 51000 dan membuat beberapa transaksi seperti memperbarui catatan atau menambahkan entri. Segera setelah Anda melakukan transaksi, aplikasi dapat melakukan sinkronisasi dengan sistem database. Jadi tes selanjutnya adalah melakukan dengan beban pengguna 52000. Terkadang, Stress Testing juga disebutFatigue Testing.
Proses untuk melakukan pengujian database mirip dengan pengujian aplikasi lain. Pengujian DB dapat dijelaskan dengan proses utama yang diberikan di bawah ini.
- Atur lingkungan
- Jalankan tes
- Periksa hasil tesnya
- Validasi sesuai dengan hasil yang diharapkan
- Laporkan temuan tersebut kepada masing-masing pemangku kepentingan
Berbagai pernyataan SQL digunakan untuk mengembangkan kasus Uji. Pernyataan SQL yang paling umum, yang digunakan untuk melakukan pengujian DB, adalahSelectpernyataan. Selain itu, berbagai pernyataan DDL, DML, DCL juga dapat digunakan.
Example - Buat, Sisipkan, Pilih, Perbarui, dll.
Tahapan Pengujian Database
Pengujian DB bukanlah proses yang membosankan dan mencakup berbagai tahapan dalam siklus hidup pengujian database sesuai dengan proses pengujian.
Tahapan utama dalam pengujian database adalah -
- Memeriksa keadaan awal
- Uji coba
- Validasi hasil sesuai hasil yang diharapkan
- Menghasilkan hasil
First stagedalam Pengujian DB adalah untuk memeriksa keadaan awal database sebelum memulai proses pengujian. Kemudian perilaku database diuji untuk kasus uji yang ditentukan. Sesuai dengan hasil yang diperoleh, kasus uji disesuaikan.
Untuk pengujian database yang berhasil, alur kerja yang diberikan di bawah ini dijalankan oleh setiap pengujian.
Cleaning up the database - Jika ada data yang dapat diuji dalam database, itu harus dikosongkan.
Set up Fixture - Ini melibatkan memasukkan data ke dalam database dan memeriksa status database saat ini.
Perform test, verify results and generate results- Tes dijalankan dan hasilnya diverifikasi. Jika output sesuai hasil yang diharapkan, langkah selanjutnya adalah menghasilkan hasil sesuai kebutuhan. Jika tidak, pengujian diulangi untuk menemukan bug dalam database.
Bab ini menjelaskan teknik paling umum yang digunakan untuk melakukan Pengujian Database.
Pengujian Skema Database
Seperti disebutkan sebelumnya, ini melibatkan pengujian setiap objek di Skema.
Memverifikasi Database dan perangkat
- Memverifikasi nama database
- Memverifikasi perangkat data, perangkat log, dan perangkat dump
- Memverifikasi apakah ruang yang dialokasikan cukup untuk setiap database
- Memverifikasi pengaturan opsi database
Tabel, kolom, pemeriksaan aturan tipe kolom
Verifikasi item yang diberikan di bawah ini untuk mengetahui perbedaan antara pengaturan aktual dan yang diterapkan.
Nama semua tabel di database
Nama kolom untuk setiap tabel
Jenis kolom untuk setiap tabel
NULL nilai diperiksa atau tidak
Apakah default terikat ke kolom tabel yang benar
Definisi aturan untuk mengoreksi nama tabel dan hak akses
Kunci dan Indeks
Verifikasi Kunci dan indeks di setiap tabel -
Kunci utama untuk setiap tabel
Kunci asing untuk setiap tabel
Tipe data antara kolom kunci asing dan kolom di indeks tabel lain, unik berkerumun atau tidak berkerumun atau tidak unik
Tes Prosedur Tersimpan
Ini melibatkan pemeriksaan apakah prosedur tersimpan didefinisikan dan hasil keluaran dibandingkan. Dalam tes Prosedur Tersimpan, poin-poin berikut diperiksa -
Nama prosedur yang disimpan
Nama parameter, jenis parameter, dll.
Output- Apakah output berisi banyak record. Tidak ada baris yang terpengaruh atau hanya beberapa record yang diekstraksi.
Apa fungsi Stored Procedure dan apa yang seharusnya tidak dilakukan oleh Stored Procedure?
Meneruskan kueri masukan sampel untuk memeriksa apakah prosedur tersimpan mengekstrak data yang benar.
Stored Procedure Parameters- Panggil prosedur yang tersimpan dengan data batas dan dengan data yang valid. Buat setiap parameter tidak valid satu kali dan jalankan prosedur.
Return values- Periksa nilai yang dikembalikan oleh prosedur tersimpan. Jika terjadi kegagalan, bukan nol harus dikembalikan.
Error messages check- Lakukan perubahan sedemikian rupa sehingga prosedur yang disimpan gagal dan menghasilkan setiap pesan kesalahan setidaknya sekali. Periksa skenario pengecualian apa pun ketika tidak ada pesan kesalahan yang telah ditentukan sebelumnya.
Tes Pemicu
Dalam uji Pemicu, penguji harus melakukan tugas-tugas berikut -
- Pastikan nama pemicu sudah benar.
- Validasi pemicu jika dibuat untuk kolom tabel tertentu.
- Validasi pembaruan pemicu.
- Perbarui catatan dengan data yang valid.
- Perbarui catatan dengan data tidak valid dan tutupi setiap kesalahan pemicu.
- Perbarui rekaman saat masih direferensikan oleh baris di tabel lain.
- Pastikan pengembalian transaksi ketika terjadi kegagalan.
- Cari tahu setiap kasus di mana pemicu tidak seharusnya membatalkan transaksi.
Skrip Pengaturan Server
Dua jenis tes harus dilakukan -
- Menyiapkan database dari awal, dan
- Untuk mengatur database yang sudah ada.
Tes Integrasi SQL Server
Tes integrasi harus dilakukan setelah Anda selesai dengan pengujian komponen.
Prosedur yang disimpan harus dipanggil secara intensif untuk memilih, menyisipkan, memperbarui, dan menghapus rekaman dalam tabel yang berbeda untuk menemukan konflik dan ketidakcocokan.
Setiap konflik antara skema dan pemicu.
Setiap konflik antara prosedur dan skema yang tersimpan.
Setiap konflik antara prosedur tersimpan dan pemicu.
Metode Pengujian Fungsional
Pengujian fungsional dapat dilakukan dengan membagi database menjadi modul sesuai fungsionalitas. Fungsinya adalah dari dua jenis berikut -
Type 1- Dalam pengujian Tipe 1, cari tahu fitur-fitur proyek. Untuk setiap fitur utama, cari tahu skema, pemicu, dan prosedur tersimpan yang bertanggung jawab untuk mengimplementasikan fungsi itu dan memasukkannya ke dalam grup fungsional. Kemudian uji setiap kelompok bersama-sama.
Type 2- Dalam pengujian Tipe 2, batas grup fungsional di ujung belakang tidak jelas. Anda dapat memeriksa aliran data dan melihat di mana Anda dapat memeriksa data. Mulai dari ujung depan.
Proses berikut berlangsung -
Ketika sebuah layanan memiliki permintaan atau menyimpan data, beberapa prosedur tersimpan akan dipanggil.
Prosedur akan memperbarui beberapa tabel.
Prosedur yang tersimpan tersebut akan menjadi tempat untuk memulai pengujian dan tabel tersebut akan menjadi tempat untuk memeriksa hasil pengujian.
Pengujian Stres
Stress Testing melibatkan mendapatkan daftar fungsi database utama dan prosedur tersimpan yang sesuai. Ikuti langkah-langkah yang diberikan di bawah ini untuk Stress Testing -
Tulis skrip pengujian untuk mencoba fungsi tersebut dan setiap fungsi harus diperiksa setidaknya sekali dalam satu siklus penuh.
Lakukan tes script berulang kali untuk jangka waktu tertentu.
Memverifikasi file log untuk memeriksa kebuntuan, kegagalan memori, kerusakan data, dll.
Pengujian Tolok Ukur
Jika database Anda tidak memiliki masalah data atau bug, kinerja sistem dapat diperiksa. Kinerja sistem yang buruk dapat ditemukan dalam pengujian benchmark dengan memeriksa parameter yang diberikan di bawah ini -
- Performa tingkat sistem
- Identifikasi fungsi / fitur yang paling mungkin digunakan
- Waktu - waktu maksimum, waktu minimum dan waktu rata-rata untuk menjalankan fungsi
- Volume akses
Menguji Database melalui Front-end
Bug back-end terkadang juga dapat ditemukan dengan melakukan pengujian front-end. Anda dapat mengikuti langkah-langkah sederhana yang diberikan di bawah ini untuk mendeteksi bug dengan pengujian front-end.
Tulis kueri dari front-end dan keluarkan pencarian.
Ambil catatan yang ada, ubah nilainya di beberapa bidang, dan simpan catatan tersebut. (Ini melibatkan pernyataan UPDATE atau memperbarui prosedur tersimpan dan pemicu pembaruan.)
Sisipkan item menu baru di jendela front-end. Isi informasi dan simpan catatan. (Ini melibatkan pernyataan INSERT atau penyisipan disimpan prosedur dan pemicu penghapusan.)
Ambil rekaman yang ada, klik tombol HAPUS atau HAPUS, dan konfirmasi penghapusan. (Ini melibatkan pernyataan DELETE atau penghapusan prosedur tersimpan dan pemicu penghapusan.)
Ulangi kasus uji ini dengan data yang tidak valid dan lihat bagaimana database merespons.
Dalam bab ini, kita akan melihat beberapa skenario pengujian database umum sehubungan dengan berbagai metode pengujian.
Pengujian Database Terstruktur
Skenario database umum sehubungan dengan Pengujian Database Terstruktur diberikan di bawah ini -
Memverifikasi nama database, memverifikasi perangkat data, perangkat log dan perangkat dump, memverifikasi apakah cukup ruang yang dialokasikan untuk setiap database dan memverifikasi pengaturan opsi database.
Nama semua tabel dalam database, nama kolom untuk setiap tabel, tipe kolom untuk setiap tabel, pemeriksaan nilai null atau tidak. Verifikasi Kunci dan indeks di setiap tabel: Kunci utama untuk setiap tabel, kunci asing untuk setiap tabel.
Tipe data antara kolom kunci asing dan kolom di indeks tabel lain, unik berkerumun atau tidak berkerumun atau tidak unik.
Pengujian Basis Data Fungsional
Skenario Uji Database Umum sehubungan dengan Functional Database Testing adalah -
Menemukan skema, pemicu, dan prosedur tersimpan yang bertanggung jawab untuk mengimplementasikan fungsi itu dan membuatnya menjadi grup fungsional dan kemudian setiap grup dapat diuji bersama.
Periksa aliran data dan lihat di mana Anda dapat memeriksa data. Mulai dari ujung depan.
Pengujian Basis Data Non-Fungsional
Skenario Uji Database Umum sehubungan dengan Non-Functional Database Testing adalah -
Tulis skrip pengujian untuk mencoba fungsi utama dan setiap fungsi harus diperiksa setidaknya sekali dalam satu siklus penuh.
Lakukan tes script berulang kali untuk jangka waktu tertentu.
Memverifikasi file log untuk memeriksa kebuntuan, kegagalan memori, kerusakan data, dll.
Tulis pertanyaan dari front end dan lakukan pencarian. Ambil catatan yang ada, ubah nilai di beberapa bidang dan simpan catatan. (Ini melibatkan pernyataan UPDATE atau memperbarui prosedur yang tersimpan, pemicu pembaruan.)
Sisipkan item menu baru di jendela front-end. Isi informasi dan simpan catatan. (Ini melibatkan pernyataan INSERT atau penyisipan disimpan prosedur, pemicu penghapusan.)
Ambil rekaman yang ada, klik tombol HAPUS atau HAPUS, dan konfirmasi penghapusan. (Ini melibatkan pernyataan DELETE atau penghapusan prosedur yang tersimpan, pemicu penghapusan.)
Ulangi kasus uji ini dengan data yang tidak valid dan lihat bagaimana database merespons.
Schemas, tables, stored procedures, dan Triggersadalah objek utama database. Kami telah berbagi tipe pengujian DB dan skenario pengujian untuk objek basis data ini.
Skema
Skema database mendefinisikan struktur sistem database dalam format yang didukung oleh sistem manajemen database. Skema mengacu pada bagaimana database terstruktur (terdiri dari tabel database dalam kasus Database Relasional).
Skema database adalah sekumpulan rumus yang disebut batasan integritas yang dikenakan pada database. Batasan integritas ini memastikan kompatibilitas antara bagian-bagian skema.
Dalam database relasional, skema terdiri dari tabel, kolom, tampilan, indeks, paket, prosedur, fungsi, pemicu, jenis, tampilan terwujud, sinonim, link database, dan elemen lainnya.
Skema umumnya disimpan dalam kamus data. Meskipun skema didefinisikan dalam bahasa database teks, istilah ini sering digunakan untuk merujuk pada penggambaran grafis dari struktur database. Dengan kata lain, skema adalah struktur database yang mendefinisikan objek-objek dalam database.
Jenis skema umum yang digunakan di gudang data adalah -
- Skema Bintang
- Skema Kepingan Salju
- Skema Galaxy
Tabel di Database
Dalam database relasional, tabel digunakan untuk mengatur informasi menjadi baris dan kolom.
Example - Tabel Pelanggan berisi informasi seperti id pelanggan, alamat, nomor telepon, dan sebagainya sebagai rangkaian kolom.
Setiap bagian data adalah bidang di tabel. Kolom terdiri dari semua entri dalam satu bidang, seperti nomor telepon semua pelanggan. Bidang diatur sebagai catatan, yang merupakan kumpulan informasi lengkap (seperti kumpulan informasi tentang pelanggan tertentu), yang masing-masing terdiri dari satu baris.
Prosedur Tersimpan
Prosedur tersimpan adalah serangkaian pernyataan SQL yang disimpan dalam database dalam bentuk terkompilasi dan beberapa program dapat membagikannya. Penggunaan prosedur tersimpan dapat membantu dalam menjaga integritas data, akses kontrol data, dan meningkatkan produktivitas.
Pemicu
Pemicu database adalah kode yang dijalankan sebagai respons terhadap peristiwa tertentu pada tabel atau tampilan tertentu dalam database. Pemicu ini sebagian besar digunakan untuk menjaga integritas informasi di database.
Integritas Data penting dalam database. Ini mencakup validasi data sebelum penyisipan, pembaruan, dan penghapusan. Pemicu harus ada untuk memvalidasi rekaman tabel referensi.
Untuk memeriksa Integritas Data, Anda perlu melakukan operasi berikut -
Anda perlu memeriksa kolom utama di setiap tabel dan memverifikasi apakah ada data yang salah. (Karakter di bidang nama, persentase negatif, dll.)
Temukan data yang tidak konsisten dan masukkan ke dalam tabel yang relevan dan lihat apakah ada kegagalan yang terjadi.
Masukkan data anak sebelum memasukkan data induknya. Cobalah untuk menghapus record yang masih direferensikan oleh data di tabel lain.
Jika data dalam tabel diperbarui, periksa apakah data relevan lainnya juga diperbarui. Anda perlu memastikan bahwa server atau database yang direplikasi selaras dan berisi informasi yang konsisten.
Pemetaan data dalam database adalah salah satu konsep kunci yang perlu divalidasi oleh setiap penguji. Biasanya penguji harus memverifikasi pemetaan bidang ujung depan antarmuka pengguna dengan bidang basis data ujung belakang yang sesuai.
Informasi ini diberikan dalam spesifikasi kebutuhan perangkat lunak atau spesifikasi kebutuhan bisnis dokumen SRS / BRS. Jika pemetaan tidak tersedia, maka Anda perlu memeriksa bagian pengkodean.
Ketika Anda mengambil tindakan apa pun di aplikasi front end, ada tindakan CRUD terkait yang dipanggil, dan penguji harus memeriksa apakah setiap tindakan yang dipanggil berhasil atau tidak.
Aspek Utama Pemetaan Data
Diberikan di bawah ini adalah aspek utama dari Pemetaan Data -
Untuk memeriksa bidang di UI / Bentuk ujung depan dan dipetakan secara konsisten dengan tabel DB yang sesuai. Informasi pemetaan ini didefinisikan dalam dokumen persyaratan seperti yang disebutkan di atas.
Untuk setiap tindakan yang dilakukan di bagian depan aplikasi, tindakan CRUD 'Buat, Ambil, Perbarui, dan hapus' yang sesuai akan dimulai di bagian belakang.
Seorang penguji harus memeriksa apakah tindakan yang benar dipanggil dan tindakan yang dipanggil itu sendiri berhasil atau tidak.
Langkah-langkah Pengujian Pemetaan Data
Diberikan di bawah ini adalah langkah-langkah yang diikuti untuk Pengujian Pemetaan Data -
Step 1 - Pertama, periksa kesalahan sintaks di setiap skrip.
Step 2 - Selanjutnya dilakukan pengecekan pemetaan tabel, pemetaan kolom, dan pemetaan tipe data.
Step 3 - Verifikasi pemetaan data pencarian.
Step 4 - Jalankan setiap skrip jika catatan tidak ada di tabel tujuan.
Step 5 - Jalankan setiap skrip jika record sudah ada di tabel tujuan.
Aplikasi dengan waktu respons yang lebih banyak dan kinerja yang buruk dapat menyebabkan masalah besar. Pengujian Beban Database digunakan untuk menemukan masalah kinerja apa pun sebelum Anda menerapkan aplikasi database untuk pengguna akhir.
Pengujian Beban Database membantu Anda merancang aplikasi database untuk kinerja, keandalan, dan skalabilitas. Pengujian Beban aplikasi Database melibatkan pengujian kinerja dan skalabilitas aplikasi Database Anda dengan beban pengguna yang bervariasi.
Pengujian Beban Database melibatkan simulasi beban pengguna di kehidupan nyata untuk aplikasi Database target. Ini membantu Anda menentukan bagaimana aplikasi Database Anda berperilaku ketika beberapa pengguna melakukannya secara bersamaan.
Pengujian Beban
Target utama Pengujian Beban adalah untuk memeriksa apakah sebagian besar transaksi yang berjalan berdampak pada kinerja database. Dalam pengujian beban, Anda perlu memeriksa aspek-aspek berikut -
Waktu respon untuk mengeksekusi transaksi untuk beberapa pengguna jarak jauh harus diperiksa.
Dengan transaksi normal, Anda harus menyertakan satu transaksi yang dapat diedit untuk memeriksa kinerja database untuk jenis transaksi pf ini.
Dengan transaksi normal, Anda harus menyertakan satu transaksi non-pengeditan untuk memeriksa kinerja database untuk jenis transaksi ini.
Waktu yang dibutuhkan oleh database untuk mengambil record tertentu harus diperiksa.
Pengujian Stres
Pengujian tegangan dilakukan untuk mengidentifikasi sistem breakpoint. Di sini aplikasi dimuat sedemikian rupa sehingga sistem gagal pada satu titik. Titik ini disebut breakpoint dari sistem database. Tes stres juga dikenal sebagaiFatigue Testing.
Menentukan keadaan transaksi basis data melibatkan banyak upaya. Perencanaan yang tepat diperlukan untuk menghindari masalah berbasis waktu dan biaya.
Alat uji stres yang paling umum adalah LoadRunner dan WinRunner.
Ada berbagai alat yang disediakan oleh vendor yang dapat digunakan untuk menghasilkan data Uji, untuk mengelola data Uji, dan melakukan pengujian basis data seperti Pengujian Beban dan Pengujian Regresi.
Beberapa alat umum yang digunakan diberikan di bawah ini.
Sr Tidak | Kategori & Deskripsi | Contoh |
---|---|---|
1 | Load Testing Tools Alat-alat ini digunakan untuk menempatkan beban penggunaan yang tinggi pada database Anda, yang memungkinkan untuk menentukan apakah lanskap sistem Anda akan sesuai dengan kebutuhan bisnis Anda. |
Kinerja Web Tampilan Rad Air raksa |
2 | Data Security Tools Alat-alat ini digunakan untuk mengimplementasikan kepatuhan dan standar sesuai dengan peraturan keamanan informasi. |
Privasi Data Optimal IBM |
3 | Test Data generator tools Penguji menggunakan alat ini untuk menghasilkan data pengujian untuk sistem database. Ini sebagian besar diperlukan ketika Anda memiliki sejumlah besar data dan Anda memerlukan sampel untuk melakukan Pengujian DB. Ini biasanya digunakan untuk pengujian Beban dan Tekanan. |
Pabrik Data Generator Data DTM Data Turbo |
4 | Test Data Management Tool Alat-alat ini digunakan untuk mempertahankan kontrol versi untuk data pengujian. Anda harus menentukan hasil yang diharapkan dan kemudian membandingkannya dengan hasil tes yang sebenarnya. |
Manajemen Data Pengujian IBM Optim |
5 | Tools to perform Unit Testing Alat-alat ini digunakan untuk melakukan pengujian regresi pada database Anda. |
SQLUnit TSQLUnit DBFit DBUnit |
Bagian terpenting dari pertumbuhan organisasi adalah datanya. Jika terjadi kegagalan sistem, ada kebutuhan untuk memulihkan data. Pencadangan adalah salinan persis dari database, yang membantu Anda memulihkan data jika ada kehilangan data.
Pertimbangkan sebuah perusahaan keuangan yang memiliki data yang terkait dengan pelanggannya seperti nomor A / C, nama pelanggan, kredit dan debit, durasi, dll. Bagaimana organisasi seperti itu menghadapi tekanan kehilangan informasi penting jika terjadi kegagalan data?
Inilah alasan Anda membuat cadangan data sehingga jika terjadi kegagalan disk, pengontrol disk, dll. Anda dapat mengandalkan cadangan untuk memulihkannya ke database.
Jenis Pencadangan Data
Ada dua jenis cadangan yang dapat digunakan -
Physical Backups - Pencadangan fisik termasuk pencadangan menggunakan alat pencadangan pihak ketiga seperti Veritas Net Back, IBM Tivoli Manager, atau pencadangan manajer pengguna menggunakan utilitas OS.
Logical Backups - Cadangan logis dari basis data termasuk mengambil cadangan objek logis seperti tabel, indeks, prosedur, dll.
Example - Salah satu alat yang biasa digunakan untuk melakukan backup data adalah Oracle Recovery Manager (RMAN) itu adalah utilitas Oracle untuk mengambil cadangan database.
RMAN terdiri dari dua komponen -
Target database untuk mana cadangan diperlukan.
RMAN klien digunakan untuk menjalankan perintah untuk mengambil cadangan data.
BACKUP VALIDATEdigunakan untuk menguji apakah Anda dapat membuat cadangan file database yang valid. Ini memastikan -
- Jika cadangan tersedia untuk objek fisik atau logis dari database.
- Jika cadangan reguler disiapkan untuk data yang tak ternilai.
- Jika alat pencadangan memenuhi persyaratan pencadangan organisasi.
Database recovery testingdigunakan untuk memastikan bahwa database dipulihkan. Pengujian pemulihan memungkinkan Anda untuk mengetahui apakah aplikasi berjalan dengan benar dan memeriksa pengambilan data tak ternilai yang akan hilang jika metode pemulihan Anda tidak disiapkan dengan benar.
Anda juga memeriksa apakah beberapa proses penting berjalan lancar untuk memastikan bahwa pemulihan data akan melewati fase pengujian dengan lancar.
Anda dapat melakukan pemeriksaan berikut untuk pemulihan database -
Kesalahan atau kesalahan apa pun dalam perangkat lunak cadangan dan Anda harus menyelesaikan masalah ini pada tahap sebelumnya.
Anda perlu melakukan pengujian pemulihan sehingga Anda tahu apa yang harus dilakukan jika terjadi situasi darurat.
Anda perlu memeriksa kebutuhan pengujian pemulihan sehingga Anda dapat merencanakan strategi pemulihan yang efektif.
Anda juga harus tahu bagaimana Anda dapat memulihkan dokumen.
Anda perlu menjalankan tes pemulihan di fase awal proyek. Ini memungkinkan Anda untuk menghapus dan membuang setiap jenis kesalahan dari sistem. Berikut adalah daftar dari beberapa poin penting, yang harus dipertimbangkan pada saat pengujian -
Rentang waktu saat terjadi perubahan atau modifikasi pada sistem database.
Jangka waktu pelaksanaan rencana pemulihan Anda.
Sensitivitas data dalam sistem database. Semakin penting datanya, semakin rutin Anda perlu menguji perangkat lunak.
Langkah Umum dalam Pengujian Pencadangan dan Pemulihan Database
Dalam pengujian pemulihan database, Anda perlu menjalankan pengujian di lingkungan sebenarnya untuk memeriksa apakah sistem atau data benar-benar dapat dipulihkan jika terjadi bencana dan peristiwa tak terduga lainnya di lingkungan bisnis.
Diberikan di bawah ini adalah tindakan umum yang dilakukan dalam Pengujian Pemulihan Database -
- Pengujian sistem database
- Pengujian file SQL
- Pengujian file parsial
- Pengujian backup data
- Pengujian alat Cadangan
- Menguji cadangan log
Pengujian keamanan basis data dilakukan untuk menemukan celah-celah dalam mekanisme keamanan dan juga menemukan kerentanan atau kelemahan sistem basis data.
Sasaran utama dari pengujian keamanan database adalah untuk mengetahui kerentanan dalam sistem dan untuk menentukan apakah data dan sumber dayanya dilindungi dari penyusup potensial. Pengujian keamanan menentukan cara untuk mengidentifikasi potensi kerentanan secara efektif, bila dilakukan secara teratur.
Diberikan di bawah ini adalah tujuan utama melakukan pengujian keamanan database -
- Authentication
- Authorization
- Confidentiality
- Availability
- Integrity
- Resilience
Jenis Ancaman pada Sistem Database
Injeksi SQL
Ini adalah jenis serangan paling umum dalam sistem basis data di mana pernyataan SQL berbahaya dimasukkan ke dalam sistem basis data dan dijalankan untuk mendapatkan informasi penting dari sistem basis data. Serangan ini memanfaatkan celah dalam implementasi aplikasi pengguna. Untuk mencegah hal ini, bidang masukan pengguna harus ditangani dengan hati-hati.
Elevasi Hak Istimewa dalam Database
Dalam serangan ini, pengguna telah memiliki beberapa akses dalam sistem basis data dan dia hanya mencoba untuk meningkatkan akses ini ke tingkat yang lebih tinggi sehingga dia dapat melakukan beberapa aktivitas yang tidak sah dalam sistem basis data.
Kegagalan layanan
Dalam jenis serangan ini, penyerang membuat sistem database atau sumber daya aplikasi tidak tersedia untuk pengguna yang sah. Aplikasi juga dapat diserang dengan cara yang membuat aplikasi, dan terkadang seluruh mesin, tidak dapat digunakan.
Akses tidak sah ke data
Jenis serangan lainnya adalah mendapatkan akses tidak sah ke data dalam aplikasi atau sistem database. Akses tidak sah termasuk -
- Akses tidak sah ke data melalui aplikasi berbasis pengguna
- Akses tidak sah dengan memantau akses orang lain
- Akses tidak sah ke informasi otentikasi klien yang dapat digunakan kembali
Spoofing Identitas
Dalam Identity Spoofing, peretas menggunakan kredensial pengguna atau perangkat untuk meluncurkan serangan terhadap host jaringan, mencuri data, atau melewati kontrol akses ke sistem database. Mencegah serangan ini membutuhkan infrastruktur TI dan mitigasi tingkat jaringan.
Manipulasi data
Dalam serangan manipulasi data, seorang hacker mengubah data untuk mendapatkan keuntungan atau merusak citra pemilik database.
Teknik Pengujian Keamanan Basis Data
Pengujian Penetrasi
Tes penetrasi adalah serangan terhadap sistem komputer dengan tujuan menemukan celah keamanan, yang berpotensi mendapatkan akses ke sana, fungsionalitas, dan datanya.
Penemuan Resiko
Risk Finding adalah proses menilai dan memutuskan risiko yang terkait dengan jenis kerugian dan kemungkinan terjadinya kerentanan. Ini ditentukan dalam organisasi melalui berbagai wawancara, diskusi dan analisis.
Tes Injeksi SQL
Ini melibatkan pemeriksaan input pengguna di bidang aplikasi. Misalnya, memasukkan karakter khusus seperti ',' atau ';' di kotak teks mana pun di aplikasi pengguna seharusnya tidak diizinkan. Ketika terjadi kesalahan database, itu berarti input pengguna dimasukkan ke dalam beberapa query, yang kemudian dieksekusi oleh aplikasi. Dalam kasus seperti itu, aplikasi rentan terhadap injeksi SQL.
Serangan ini merupakan ancaman besar bagi data karena penyerang bisa mendapatkan akses ke informasi penting dari database server. Untuk memeriksa titik masuk injeksi SQL ke dalam aplikasi web Anda, cari tahu kode dari basis kode tempat kueri MySQL langsung dijalankan pada database dengan menerima beberapa masukan pengguna.
Pengujian Injeksi SQL dapat dilakukan untuk Tanda Kurung, Koma, dan Kutipan.
Pembobolan Kata Sandi
Ini adalah pemeriksaan terpenting saat melakukan pengujian sistem database. Untuk mengakses informasi penting, peretas dapat menggunakan alat peretas kata sandi atau dapat menebak nama pengguna / kata sandi umum. Kata sandi umum ini dengan mudah tersedia di internet dan juga alat peretas kata sandi tersedia secara bebas.
Oleh karena itu, perlu untuk memeriksa pada saat pengujian apakah kebijakan kata sandi dipertahankan dalam sistem. Dalam kasus aplikasi perbankan dan keuangan, ada kebutuhan untuk menetapkan kebijakan sandi yang ketat pada semua sistem basis data informasi penting.
Audit Keamanan Sistem Basis Data
Audit keamanan adalah proses mengevaluasi kebijakan keamanan perusahaan pada interval waktu yang teratur untuk menentukan apakah standar yang diperlukan diikuti atau tidak. Berbagai standar keamanan dapat diikuti sesuai kebutuhan bisnis untuk menentukan kebijakan keamanan dan kemudian penilaian kebijakan yang ditetapkan terhadap standar tersebut dapat dilakukan.
Contoh standar keamanan yang paling umum adalah ISO 27001, BS15999, dll.
Alat Pengujian Keamanan Basis Data
Ada berbagai alat pengujian sistem yang tersedia di pasar, yang dapat digunakan untuk menguji OS dan pemeriksaan aplikasi. Beberapa alat yang paling umum dibahas di bawah ini.
Proxy Serangan Zed
Ini adalah alat pengujian penetrasi untuk menemukan kerentanan dalam aplikasi web. Ini dirancang untuk digunakan oleh orang-orang dengan berbagai pengalaman keamanan dan karenanya sangat ideal untuk pengembang dan penguji fungsional yang baru mengenal pengujian penetrasi. Biasanya digunakan untuk Windows, Linux, Mac OS.
Paros
Semua data HTTP dan HTTPS antara server dan klien, termasuk cookie dan bidang formulir, dapat disadap dan dimodifikasi menggunakan pemindai ini. Digunakan untuk Cross-platform, Java JRE / JDK 1.4.2 atau lebih tinggi.
Perangkat Insinyur Sosial
Ini adalah alat open source dan elemen manusia diserang daripada elemen sistem. Ini memungkinkan Anda untuk mengirim email, applet java, dll. Yang berisi kode serangan. Ini lebih disukai untuk Linux, Apple Mac OS X dan Microsoft Windows.
Ikan cakalang
Alat ini digunakan untuk memindai situs mereka dari kerentanan. Laporan yang dihasilkan oleh alat ini dimaksudkan sebagai dasar untuk penilaian keamanan aplikasi web profesional. Ini lebih disukai untuk Linux, FreeBSD, MacOS X, dan Windows.
Vega
Ini adalah alat keamanan web multiplatform sumber terbuka yang digunakan untuk menemukan contoh injeksi SQL, skrip lintas situs (XSS), dan kerentanan lainnya dalam aplikasi web. Ini lebih disukai untuk Java, Linux, dan Windows.
Wapiti
Wapiti adalah perangkat open source dan berbasis web yang memindai halaman web aplikasi web dan memeriksa skrip dan formulir yang dapat memasukkan data. Itu dibangun dengan Python dan dapat mendeteksi kesalahan penanganan File, database, XSS, injeksi LDAP dan CRLF, deteksi eksekusi Perintah.
Web Scarab
Itu ditulis dalam Java dan digunakan untuk menganalisis aplikasi yang berkomunikasi melalui protokol HTTP / HTTPS. Alat ini dirancang terutama untuk pengembang yang dapat menulis kode sendiri. Alat ini tidak bergantung pada OS.
Untuk melakukan pengujian database dengan sukses, penguji harus mengumpulkan persyaratan dari semua sumber, seperti persyaratan teknis dan fungsional. Ada kemungkinan bahwa beberapa persyaratan berada pada level tinggi, sehingga ada kebutuhan untuk memecah persyaratan tersebut menjadi bagian-bagian kecil. Menguji database adalah tugas yang kompleks dan penguji menghadapi banyak tantangan saat melakukan pengujian ini. Tantangan pengujian database yang paling umum adalah -
Cakupan pengujian terlalu besar
Seorang penguji perlu mengidentifikasi item pengujian dalam pengujian database, jika tidak, dia mungkin tidak memiliki pemahaman yang jelas tentang apa yang akan dia uji dan apa yang tidak akan dia uji. Oleh karena itu, jika persyaratannya jelas, Anda mungkin membuang banyak waktu untuk menguji objek yang tidak penting di database.
Ketika Anda memiliki daftar objek untuk diuji, selanjutnya adalah memperkirakan upaya yang diperlukan untuk merancang tes dan menjalankan tes untuk setiap item tes. Bergantung pada desain dan ukuran datanya, beberapa pengujian database mungkin memerlukan waktu lama untuk dijalankan.
Karena ukuran database terlalu besar, menjadi tantangan besar untuk mengetahui objek yang harus diuji dan yang harus ditinggalkan.
Database pengujian yang diperkecil
Biasanya penguji diberikan salinan database pengembangan untuk diuji. Database tersebut hanya memiliki sedikit data, yang cukup untuk menjalankan aplikasi. Sehingga perlu dilakukan pengujian pengembangan, pementasan dan sekaligus sistem database produksi.
Perubahan struktur database
Ini adalah salah satu tantangan umum dalam pengujian DB. Terkadang, Anda mendesain atau menjalankan pengujian, dan struktur database telah diubah pada saat itu. Ini penting bahwa Anda harus mengetahui perubahan yang dibuat ke database selama pengujian.
Setelah struktur database berubah, Anda harus menganalisis dampak perubahan dan memodifikasi pengujian. Selain itu, jika beberapa pengguna menggunakan database pengujian, Anda tidak akan yakin tentang hasil pengujian sehingga Anda harus memastikan bahwa database pengujian hanya digunakan untuk tujuan pengujian.
Tantangan lain dalam pengujian DB adalah Anda menjalankan beberapa pengujian secara bersamaan. Anda harus menjalankan satu pengujian pada satu waktu setidaknya untuk pengujian kinerja. Anda tidak ingin database Anda melakukan banyak tugas dan kinerja di bawah pelaporan.
Rencana pengujian yang kompleks
Struktur database biasanya kompleks dan memiliki data yang besar, jadi ada kemungkinan Anda menjalankan pengujian yang tidak lengkap atau sama berulang kali. Jadi ada kebutuhan untuk membuat rencana pengujian dan melanjutkannya serta memeriksa kemajuannya secara teratur.
Pemahaman yang baik tentang SQL
Untuk menguji database, Anda harus memiliki pengetahuan yang baik tentang kueri SQL dan alat manajemen database yang diperlukan.
Pengujian basis data meliputi melakukan validitas data, pengujian integritas data, pemeriksaan kinerja terkait basis data dan pengujian Prosedur, pemicu dan fungsi pada basis data.
Ada beberapa alasan mengapa pengujian database dilakukan. Ada kebutuhan untuk melakukan pemeriksaan integritas data, validasi dan konsistensi data pada database karena sistem backend bertanggung jawab untuk menyimpan data dan diakses untuk berbagai tujuan.
Beberapa alasan umum mengapa seseorang perlu melakukan pengujian Database adalah sebagai berikut -
Untuk memudahkan kerumitan panggilan ke backend database, pengembang meningkatkan penggunaan View dan Stored Prosedur.
Ini Stored prosedur dan Viewsberisi tugas-tugas penting seperti memasukkan detail pelanggan (nama, informasi kontak, dll.) dan data penjualan. Tugas-tugas ini perlu diuji di beberapa tingkatan.
Pengujian black box yang dilakukan di front-end itu penting, tetapi menyulitkan untuk mengisolasi masalahnya. Pengujian di sistem backend meningkatkan ketahanan data. Itulah mengapa pengujian database dilakukan pada sistem back end.
Dalam database, data berasal dari beberapa aplikasi dan ada kemungkinan data berbahaya atau salah disimpan di database. Oleh karena itu, perlu dilakukan pengecekan komponen database secara berkala. Selain itu, integritas dan konsistensi data harus diperiksa secara teratur.
Langkah-langkah yang perlu Anda ikuti saat melakukan pengujian database adalah sebagai berikut -
- Data yang ada di database harus diverifikasi.
- Verifikasi apakah batasan dipertahankan.
- Kinerja prosedur dan pelaksanaan pemicu harus diperiksa.
- Roll back dan komit transaksi harus diperiksa.
Berdasarkan fungsi dan struktur database, pengujian DB dapat dikategorikan ke dalam kategori berikut -
Structural Database testing - Ini berkaitan dengan pengujian tabel dan kolom, pengujian skema, prosedur tersimpan dan pengujian tampilan, memeriksa pemicu, dll.
Functional Testing- Ini melibatkan pemeriksaan fungsionalitas database dari sudut pandang pengguna. Jenis pengujian Fungsional yang paling umum adalah pengujian kotak putih dan kotak hitam.
Nonfunctional Testing - Ini melibatkan pengujian beban, pengujian risiko dalam database, pengujian stres, persyaratan sistem minimum, dan menangani kinerja database.
Alat paling umum yang digunakan untuk melakukan pengujian prosedur tersimpan adalah LINQ, Alat Uji SP, dll.
Gabungan digunakan untuk menghubungkan dua atau lebih tabel dengan cara yang logis. Jenis gabungan yang umum meliputi: Gabungan dalam, Gabungan non-ekuivalen, Gabungan luar, Gabungan mandiri, dan Gabungan silang.
Anda dapat menggabungkan satu tabel ke tabel itu sendiri. Dalam kasus ini, Anda menggunakan tabel yang sama dua kali.
Step 1 - Hubungkan ke database
db_connect(query1 DRIVER {drivername};SERVER server_name;UID uidname;
PWD password;DBQ database_name );
Step 2 - Jalankan kueri database -
db_excecute_query (write the required query that is to execute); Specify the appropriate condition
Step 3 - Putuskan koneksi database dengan menggunakan
db_disconnect(query);
Menggunakan pos pemeriksaan database Output, opsi kueri manual SQL harus dipilih. Di sini, kueri pemilihan dapat ditulis.
Pertama, periksa persyaratan prosedur tersimpan. Langkah selanjutnya adalah memeriksa apakah indeks, gabungan, penghapusan, pembaruan sudah benar dibandingkan dengan tabel yang disebutkan dalam prosedur tersimpan.
Selanjutnya, lakukan tugas berikut -
Validasi nama prosedur panggilan, parameter panggilan dan respons yang diharapkan untuk set parameter input yang berbeda.
Jalankan prosedur dengan TOAD atau MySQL atau Query Analyzer.
Jalankan kembali prosedur yang tersedia dengan mengirimkan parameter yang berbeda, dan periksa hasilnya terhadap nilai yang diharapkan.
Menyimpulkan prosesnya, otomatiskan pengujian dengan WinRunner.
Penguji harus memanggil prosedur yang tersimpan dalam database menggunakan perintah EXEC. Jika ada parameter yang diperlukan, mereka harus diteruskan. Nilai parameter yang berbeda harus diteruskan untuk mengonfirmasi apakah prosedur tersimpan dijalankan atau tidak. Saat memanggil perintah ini, ia harus memeriksa dan memverifikasi sifat dan perilaku database.
Example - Jika prosedur tersimpan ditulis untuk mengisi beberapa tabel, nilai tabel harus diperiksa.
Kami memiliki tiga jenis pernyataan SQL -
- Bahasa Manipulasi Data (DML)
- Bahasa Definisi Data (DDL)
- Bahasa Kontrol Data (DCL)
Pernyataan DDL digunakan untuk menentukan struktur atau skema database. Beberapa contoh -
CREATE - untuk membuat objek dalam database
ALTER - mengubah struktur database
DROP - Hapus objek dari database
Operator digunakan untuk menentukan kondisi dalam pernyataan SQL dan berfungsi sebagai konjungsi untuk beberapa kondisi dalam sebuah pernyataan.
- Operator Aritmatika
- Perbandingan / Operator Relasional
- Operator Logis
- Atur Operator
- Operator biasanya meniadakan kondisi
Union digunakan untuk menggabungkan hasil dari dua atau lebih pernyataan Select. Namun itu akan menghilangkan baris duplikat. Union adalah operator yang ditetapkan.
Uniondigunakan untuk menggabungkan hasil dari dua atau lebih pernyataan Select. Namun itu akan menghilangkan baris duplikat
Union All Operasi mirip dengan Union, tetapi juga menampilkan baris duplikat.
Pemicu digunakan untuk menjaga Integritas database. Untuk memeriksa Pemicu diaktifkan atau tidak, Anda dapat memeriksa log audit.
Pemicu tidak dapat dijalankan sesuai permintaan. Mereka dipanggil ketika tindakan terkait (menyisipkan, menghapus & memperbarui) terjadi pada tabel di mana mereka didefinisikan. Pemicu digunakan untuk menerapkan aturan bisnis, audit, dan juga untuk pemeriksaan integritas referensial.
Pertama, dapatkan persyaratan fungsional. Kemudian, pahami struktur tabel, Gabungan, Kursor dan Pemicu, Prosedur tersimpan yang digunakan, dan parameter lainnya. Selanjutnya, Anda dapat menulis kasus uji dengan nilai berbeda sebagai masukan untuk objek ini.
Pengujian DB melibatkan pengujian komponen back-end yang tidak terlihat oleh pengguna. Ini mencakup komponen database dan sistem DBMS seperti MySQL dan Oracle.
Pengujian front-end melibatkan pemeriksaan fungsionalitas aplikasi dan komponennya seperti formulir, grafik, menu, laporan, dll. Komponen ini dibuat menggunakan alat pengembangan front-end seperti VB.net, C #, Delphi, dll.
Proses untuk melakukan pengujian database mirip dengan pengujian aplikasi lain. Pengujian DB dapat dijelaskan dengan proses utama berikut -
- Menyiapkan lingkungan
- Jalankan tes
- Periksa hasil tesnya
- Memvalidasi sesuai dengan hasil yang diharapkan
- Laporkan temuan tersebut kepada masing-masing pemangku kepentingan
Berbagai pernyataan SQL digunakan untuk mengembangkan kasus Uji. Pernyataan SQL yang paling umum digunakan untuk melakukan pengujian DB adalah pernyataan pilih. Selain berbagai pernyataan DDL, DML, DCL ini juga dapat digunakan.
Example - Buat, Sisipkan, Pilih, Perbarui, dll.
Tampilan adalah tabel yang sebenarnya tidak ada dalam dirinya sendiri tetapi berasal dari satu atau beberapa tabel dasar. Dengan kata lain, tidak ada file tersimpan yang mewakili tampilan secara langsung, melainkan definisi tampilan disimpan dalam kamus data.
Pertumbuhan dan restrukturisasi tabel dasar tidak tercermin dalam tampilan. Dengan demikian tampilan dapat mengisolasi pengguna dari perubahan dalam database. Karenanya menjelaskan independensi data logis.
Ini menentukan tampilan pengguna dan pemetaan mereka ke skema konseptual.
Ini adalah proses menguraikan tabel menjadi beberapa tabel tanpa kehilangan informasi apa pun. Normalisasi dilakukan untuk mencapai tujuan berikut -
- Untuk meminimalkan redundansi.
- Untuk meminimalkan penyisipan, penghapusan dan pembaruan anomali.
Pengindeksan adalah teknik untuk menentukan seberapa cepat data tertentu dapat ditemukan. Ini digunakan untuk optimasi kinerja kueri. Pengindeksan dapat dari jenis berikut -
- Pengindeksan gaya penelusuran biner
- Pengindeksan B-Tree
- Pengindeksan daftar terbalik
- Tabel residen memori
- Pengindeksan tabel
SQL adalah bahasa Kueri Terstruktur yang dirancang khusus untuk operasi akses data pada struktur database relasional yang dinormalisasi.
Perbedaan utama antara SQL dan bahasa pemrograman konvensional lainnya adalah bahwa pernyataan SQL menentukan operasi data apa yang harus dilakukan daripada bagaimana melakukannya.
Prosedur tersimpan digunakan untuk melakukan operasi yang ditentukan pengguna. Prosedur tersimpan dapat memiliki sekumpulan pernyataan SQL majemuk. Prosedur tersimpan menjalankan perintah SQL dan mengembalikan hasilnya ke klien.
PL / SQL menggunakan kursor untuk semua pernyataan akses informasi database. Bahasa mendukung penggunaan dua jenis kursor - implisit dan eksplisit.
Cold Backup- Cold back dikenal sebagai pencadangan file database, ulangi log, dan file kontrol saat instans dimatikan. Ini adalah salinan file, biasanya dari disk langsung ke tape. Anda harus menutup instance untuk menjamin salinan yang konsisten.
Jika pencadangan dingin dilakukan, satu-satunya pilihan yang tersedia jika terjadi kehilangan file data adalah memulihkan semua file dari cadangan terbaru. Semua perubahan yang dilakukan setelah cadangan terakhir hilang.
Hot Backup- Beberapa database tidak dapat dimatikan saat membuat salinan cadangan file, jadi cadangan dingin bukanlah pilihan yang tersedia. Untuk jenis database ini kami menggunakan backup panas.
Subkueri SQL adalah alat untuk menanyakan dua tabel atau lebih pada waktu yang sama. Subquery itu sendiri adalah pernyataan SQL SELECT yang terkandung dalam klausa WHERE dari pernyataan SQL SELECT lainnya, dan dipisahkan dengan diapit dalam tanda kurung. Beberapa subkueri memiliki struktur gabungan SQL yang setara, tetapi subkueri terkait tidak dapat diduplikasi dengan gabungan
Dalam kasus seperti itu, Anda perlu menguji aspek-aspek berikut -
- Dependensi multinilai
- Dependensi fungsional
- Kunci kandidat
- Kunci utama
- Kunci asing
Anda dapat membuka database dan menjalankan kueri SQL yang relevan. Di WinRunner, Anda dapat menggunakan fungsi pos pemeriksaan database. Jika aplikasi menyediakan fungsi tampilan, maka Anda dapat memverifikasi hal yang sama dari ujung depan.
Pengujian berbasis data didefinisikan sebagai proses pengujian otomatisasi di mana aplikasi akan diuji dengan beberapa data pengujian. Ini sederhana dan mudah daripada menguji ulang di mana penguji hanya duduk di depan sistem dan memasukkan nilai input baru yang berbeda secara manual dari antarmuka front-end.
Setelah Anda menjalankan kasus uji dan menemukan cacat yang telah terdeteksi dan diperbaiki. Eksekusi ulang pengujian yang sama dengan nilai input berbeda untuk memastikan cacat asli telah berhasil dihilangkan disebut Pengujian ulang.
Pengujian ulang juga disebut Pengujian Berdasarkan Data dengan sedikit perbedaan -
Retesting - Ini adalah proses pengujian manual sedangkan pengujian aplikasi dilakukan dengan seluruh kumpulan data baru.
Data-driven Testing- Ini adalah proses pengujian Otomasi di mana aplikasi akan diuji dengan beberapa data uji. Ini sederhana dan mudah daripada menguji ulang di mana penguji hanya duduk di depan sistem dan memasukkan nilai input baru yang berbeda secara manual dari antarmuka front-end.
Ada empat jenis pengujian berdasarkan data -
- Pengiriman data uji dinamis melalui keyboard
- Pengujian Berdasarkan Data melalui file datar .txt, .doc
- Pengujian Berdasarkan Data melalui objek front-end
- Tes Berdasarkan Data melalui lembar excel
Pengujian kinerja adalah teknik pengujian perangkat lunak untuk menentukan bagaimana kinerja sistem dalam hal kecepatan, sensitivitas, dan stabilitas di bawah beban kerja yang berat.
Poin utama berikut harus dipertimbangkan saat melakukan pengujian pemulihan database -
Rentang waktu saat terjadi perubahan atau modifikasi pada sistem database.
Jangka waktu pelaksanaan rencana pemulihan Anda.
Sensitivitas data dalam sistem database. Semakin penting datanya, semakin rutin Anda perlu menguji perangkat lunak.
Alat berikut digunakan untuk menghasilkan data uji -
- Pabrik Data
- Generator Data DTM
- Data Turbo
Ada dua jenis cadangan yang dapat digunakan -
Physical Backups- backup fisik termasuk mengambil kembali menggunakan 3 rd alat cadangan pihak seperti Veritas kembali bersih, IBM Tivoli Manager atau pengguna backup manager menggunakan OS utilitas.
Logical Backups - Cadangan logis dari basis data termasuk mengambil cadangan objek logis seperti tabel, indeks, prosedur, dll.
Alat umum untuk mengambil cadangan data adalah Oracle Recovery Manager (RMAN) yang merupakan utilitas Oracle untuk membuat cadangan database.
Tindakan berikut ini dilakukan dalam pengujian pemulihan database -
- Pengujian sistem database
- Pengujian file SQL
- Pengujian file parsial
- Pengujian backup data
- Pengujian alat Cadangan
- Menguji cadangan log
Pengujian keamanan database dilakukan untuk menemukan lubang loop pada mekanisme keamanan dan juga menemukan kerentanan atau kelemahan sistem database.
Pengujian keamanan database dilakukan untuk memeriksa aspek-aspek berikut -
- Authentication
- Authorization
- Confidentiality
- Availability
- Integrity
- Resilience
Ancaman SQL Injection adalah jenis serangan paling umum dalam sistem database di mana pernyataan SQL berbahaya dimasukkan ke dalam sistem database dan dieksekusi untuk mendapatkan informasi penting dari sistem database. Serangan ini memanfaatkan celah dalam implementasi aplikasi pengguna. Untuk mencegah field input pengguna ini harus ditangani dengan hati-hati.
Alat berikut dapat digunakan untuk melakukan pengujian keamanan basis data: Zed Attack Proxy, Paros, Social Engineer Toolkit, Skipfish, Vega, Wapiti, dan Web Scarab.
Tantangan umum yang dihadapi seseorang saat melakukan pengujian database adalah sebagai berikut -
- Cakupan pengujian terlalu besar
- Database pengujian yang diperkecil
- Perubahan struktur database
- Rencana Uji Kompleks
- Pemahaman yang baik tentang SQL