Pengujian Database - Pertanyaan Wawancara

Pengujian database meliputi melakukan validitas data, pengujian integritas data, pemeriksaan kinerja terkait database dan pengujian Prosedur, pemicu dan fungsi dalam 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.

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 proses, 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 biasa 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 gabungan. Prosedur tersimpan mengeksekusi 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 front-end.

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 yang 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 sistem bekerja dalam hal kecepatan, sensitivitas, dan stabilitas di bawah beban kerja yang berat.

Poin-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 yang paling umum dalam sistem database di mana pernyataan SQL berbahaya dimasukkan ke dalam sistem database dan dijalankan 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 database: 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