Apa itu Pengujian Domain dalam Pengujian Perangkat Lunak? (dengan Contoh)

Daftar Isi:

Anonim

Apa itu Pengujian Domain?

Pengujian Domain adalah proses Pengujian Perangkat Lunak di mana aplikasi diuji dengan memberikan jumlah masukan minimum dan mengevaluasi keluaran yang sesuai. Tujuan utama dari pengujian Domain adalah untuk memeriksa apakah aplikasi perangkat lunak menerima masukan dalam kisaran yang dapat diterima dan memberikan keluaran yang diperlukan.

Ini adalah teknik Pengujian Fungsional di mana keluaran dari suatu sistem diuji dengan jumlah masukan minimal untuk memastikan bahwa sistem tidak menerima nilai masukan yang tidak valid dan di luar jangkauan. Ini adalah salah satu metode Pengujian Kotak Putih yang paling penting. Ini juga memverifikasi bahwa sistem tidak boleh menerima input, kondisi, dan indeks di luar kisaran yang ditentukan atau valid.

Pengujian domain berbeda untuk setiap domain tertentu sehingga Anda perlu memiliki pengetahuan khusus domain untuk menguji sistem perangkat lunak.

Dalam tutorial ini, Anda akan belajar-

  • Praktik Pengujian Domain yang Lebih Sederhana
  • Strategi Pengujian Domain
  • Contoh Pengujian Domain
  • Struktur Pengujian Domain

Praktik Pengujian Domain yang Lebih Sederhana

Dalam pengujian domain, kami membagi domain menjadi sub-domain (kelas kesetaraan) dan kemudian menguji menggunakan nilai dari setiap subdomain. Misal, jika sebuah website (domain) sudah diberikan untuk pengujian, kami akan membagi website tersebut menjadi bagian-bagian kecil (subdomain) untuk memudahkan pengujian.

Domain mungkin melibatkan pengujian salah satu variabel masukan atau kombinasi variabel masukan.

Praktisi sering mempelajari kasus paling sederhana dari pengujian domain kurang dari dua nama lain, "pengujian batas" dan "analisis kelas ekivalen."

Pengujian batas - Analisis nilai batas (BVA) didasarkan pada pengujian di batas antar partisi. Kami akan menguji nilai input yang valid dan tidak valid di partisi / kelas.

Pengujian Kelas Kesetaraan - Ide di balik teknik ini adalah untuk membagi (yaitu untuk mempartisi) sekumpulan kondisi pengujian menjadi kelompok atau himpunan yang dapat dianggap sama (yaitu sistem harus menanganinya secara ekuivalen), sehingga 'partisi ekivalen'.

Formulir yang disederhanakan itu berlaku untuk pengujian Domain -

  1. Hanya untuk pengujian variabel input
  2. Hanya saat diuji di tingkat sistem
  3. Hanya saat diuji satu per satu
  4. Hanya jika diuji dengan cara yang sangat dangkal

Ini dapat disederhanakan seperti di bawah ini:

Variabel Kelas Kesetaraan Kelas yang Valid Kelas Kesetaraan Kelas Tidak Valid Batasan & Kasus Khusus Catatan
X 0-100 0
100
<0 -1
> 100 101

Penjelasan:

  1. Jika bidang menerima rentang dari 0-100, bidang tidak boleh menerima -1 dan 101 karena merupakan entri yang tidak valid dan di luar batas.
  2. Bidang harus menerima nilai seperti 0,100 dan angka apa pun di antaranya.

Membangun meja seperti ini (dalam praktiknya)

  1. Untuk membangun analisis kelas kesetaraan dari waktu ke waktu, masukkan informasi ke dalam spreadsheet. Mulailah dengan membuat daftar variabel. Tambahkan informasi tentang mereka saat Anda mendapatkannya.
  2. Tabel pada akhirnya harus berisi semua variabel. Artinya, semua variabel masukan, semua variabel keluaran, dan variabel perantara apa pun yang dapat Anda amati.
  3. Dalam praktiknya, sebagian besar tabel yang saya lihat tidak lengkap. Yang terbaik terlihat mencantumkan semua variabel dan menambahkan detail untuk variabel kritis.

Strategi Pengujian Domain

Saat menguji domain, Anda perlu mempertimbangkan hal-hal berikut,

  1. Domain apa yang kami uji?
  2. Bagaimana cara mengelompokkan nilai ke dalam kelas?
  3. Nilai kelas mana yang akan diuji?
  4. Bagaimana cara menentukan hasilnya?

Domain apa yang kami uji?

Setiap domain yang kami uji memiliki beberapa fungsi masukan dan fungsi keluaran. Akan ada beberapa variabel masukan yang akan dimasukkan, dan keluaran yang sesuai harus diverifikasi.

Contoh Pengujian Domain

  1. Pertimbangkan skenario pengujian input tunggal:

C = a + b, di mana a dan b adalah variabel masukan dan C adalah variabel keluaran.

Di sini, dalam contoh di atas, tidak diperlukan klasifikasi atau kombinasi variabel.

  1. Pertimbangkan beberapa masukan dan skenario keluaran yang sesuai di bawah ini:

Pertimbangkan pameran permainan untuk Anak-anak, 6 kompetisi ditata, dan tiket harus diberikan sesuai dengan usia dan masukan jenis kelamin. Tiket adalah salah satu modul yang akan diuji untuk seluruh fungsionalitas pameran Games.

Berdasarkan skenario, kami mendapat enam skenario berdasarkan usia dan kompetisi:

  1. Usia> 5 dan <10 tahun, Cowok harus berpartisipasi dalam Mendongeng.
  2. Usia> 5 dan <10 tahun, gadis harus berpartisipasi dalam Lomba Menggambar.
  3. Usia> 10 dan <15, Cowok harus berpartisipasi dalam Kuis.
  4. Usia> 10 dan <15 tahun, perempuan harus berpartisipasi dalam penulisan Esai.
  5. Usia <5 tahun, baik laki-laki maupun perempuan harus berpartisipasi dalam Kompetisi Sajak.
  6. Usia> 15 tahun, baik laki-laki maupun perempuan harus mengikuti kompetisi Puisi.

Di sini masukannya adalah Umur dan Jenis Kelamin dan karenanya tiket untuk kompetisi akan dikeluarkan. Partisi kasus input atau hanya pengelompokan nilai masuk ke dalam gambar.

Bagaimana cara mengelompokkan nilai ke dalam kelas?

Mempartisi beberapa nilai berarti membaginya menjadi subset yang tidak tumpang tindih.

Seperti yang kita bahas sebelumnya, ada dua jenis partisi:

  1. Partisi kesetaraan - Partisi kesetaraan adalah teknik pengujian perangkat lunak yang membagi data masukan dari unit perangkat lunak menjadi beberapa partisi data yang setara dari mana kasus uji dapat diturunkan. Pada prinsipnya, kasus uji dirancang untuk mencakup setiap partisi setidaknya satu kali.
  2. Analisis nilai batas - Analisis nilai batas adalah teknik pengujian perangkat lunak di mana pengujian dirancang untuk menyertakan perwakilan nilai batas dalam suatu rentang. Ide datang dari batas .

Untuk contoh di atas, kami mempartisi nilai menjadi subset atau subset. Kami membagi usia ke dalam kelas-kelas di bawah ini:

  1. Kelas 1: Anak-anak dengan kelompok usia 5 hingga 10 tahun
  2. Kelas 2: Anak-anak dengan kelompok usia kurang dari 5 tahun
  3. Kelas 3: Anak-anak dengan kelompok usia 10 hingga 15 tahun
  4. Kelas 4: Anak-anak dengan kelompok usia lebih dari 15 tahun.

Nilai kelas mana yang akan diuji?

Nilai yang diambil untuk pengujian haruslah Nilai batas:

  1. Batasan adalah perwakilan dari kelas kesetaraan tempat kami mengambil sampel. Mereka lebih mungkin mengekspos kesalahan daripada anggota kelas lainnya, jadi mereka adalah perwakilan yang lebih baik.
  2. Representasi terbaik dari kelas kesetaraan adalah nilai di antara rentang tersebut.

Untuk contoh di atas kami memiliki kelas-kelas berikut untuk diuji:

Misalnya untuk skenario # 1:

  1. Kelas 1: Anak-anak dengan kelompok usia 5 hingga 10 (Usia> 5 dan <= 10)

Nilai batas:

  1. Nilai harus Sama dengan atau kurang dari 10. Oleh karena itu, usia 10 tahun harus dimasukkan dalam kelas ini.
  2. Nilai harus lebih besar dari 5. Oleh karena itu, usia 5 tahun tidak boleh dimasukkan dalam kelas ini.
  3. Nilai harus Sama dengan atau kurang dari 10. Oleh karena itu, usia 11 tahun tidak boleh dimasukkan dalam kelas ini.
  4. Nilai harus lebih besar dari 5. Oleh karena itu, usia 6 tahun harus dimasukkan dalam kelas ini.

Nilai partisi kesetaraan:

Partisi ekivalen dirujuk ketika seseorang harus menguji hanya satu kondisi dari setiap partisi. Dalam hal ini, kami berasumsi bahwa jika satu kondisi dalam sebuah partisi berfungsi, maka semua kondisi tersebut harus berfungsi. Dengan cara yang sama, jika satu kondisi di partisi itu tidak berfungsi maka kami berasumsi bahwa tidak ada kondisi lain yang akan berfungsi. Sebagai contoh,

(Usia> 5 dan <= 10)

Karena nilai dari 6 hingga 10 adalah nilai yang valid, salah satu nilai antara 6,7,8,9 dan 10 harus diambil. Karenanya usia yang dipilih "8" adalah usia masukan yang valid untuk kelompok usia antara (Usia> 5 dan <= 10). Partisi semacam ini disebut sebagai partisi kesetaraan.

Skenario Nilai batas yang harus diambil Nilai partisi kesetaraan
Laki-laki - Usia> 5 dan <= 10 Input usia = 6 Input usia = 5 Input usia = 11 Input usia = 10 Umur masukan = 8
Gadis - Usia> 5 dan <= 10 Input usia = 6 Input usia = 5 Input usia = 11 Input usia = 10 Umur masukan = 8
Laki-laki - Usia> 10 dan <= 15 Input usia = 11 Input usia = 10 Input usia = 15 Input usia = 16 Usia masukan = 13
Gadis - Usia> 10 dan <= 15 Input usia = 11 Input usia = 10 Input usia = 15 Input usia = 16 Usia masukan = 13
Usia <= 5 Input usia = 4 Input usia = 5 Usia masukan = 3
Umur> 15 Input usia = 15 Input usia = 16 Usia masukan = 25

Bagaimana kita menentukan apakah program lulus atau gagal dalam ujian?

Meneruskan fungsionalitas tidak hanya bergantung pada hasil dari skenario di atas. Masukan yang diberikan dan keluaran yang diharapkan akan memberi kita hasil dan ini membutuhkan pengetahuan domain.

Menentukan hasil contoh:

Oleh karena itu, jika semua kasus uji di atas lulus, domain penerbit tiket dalam kompetisi lolos. Jika tidak, domain gagal.

Struktur Pengujian Domain

Biasanya, penguji mengikuti langkah-langkah di bawah ini dalam pengujian domain. Ini dapat disesuaikan / dilewati sesuai dengan kebutuhan pengujian kami.

  • Identifikasi variabel yang berpotensi menarik.
  • Identifikasi variabel yang dapat Anda analisis sekarang dan urutkan (terkecil ke terbesar dan sebaliknya).
  • Membuat dan mengidentifikasi nilai batas dan kelas kesetaraan seperti di atas.
  • Identifikasi dimensi sekunder dan analisis masing-masing dengan cara klasik. (Dalam contoh di atas, Jenis Kelamin adalah dimensi sekunder).
  • Identifikasi dan uji variabel yang menyimpan hasil (variabel keluaran).
  • Evaluasi bagaimana program menggunakan nilai variabel ini.
  • Identifikasi variabel tambahan yang berpotensi terkait untuk pengujian kombinasi.
  • Bayangkan risiko yang tidak selalu memetakan ke dimensi yang jelas.
  • Identifikasi dan buat daftar variabel yang tidak dianalisis. Kumpulkan informasi untuk analisis selanjutnya.
  • Rangkum analisis Anda dengan tabel risiko / kesetaraan.

Ringkasan:

Pengujian domain, seperti yang dijelaskan di atas, membutuhkan pengetahuan dalam memberikan masukan yang tepat untuk mencapai keluaran yang diinginkan. Jadi, ini hanya mungkin untuk menggunakannya untuk potongan kode yang kecil.