Apa itu Gray Box Pengujian? Teknik, Contoh

โšก Ringkasan Cerdas

Abu-abu Box Pengujian memeriksa sebuah aplikasi dengan pengetahuan parsial tentang struktur internalnya, menggabungkan tampilan yang berhadapan dengan pengguna dari pengujian kotak hitam dengan wawasan arsitektur yang cukup untuk menjelaskan mengapa kegagalan terjadi, bukan hanya sekadar bahwa kegagalan itu terjadi.

  • ๐Ÿ” Tingkat pengetahuan: Struktur internal sebagian diketahui, berbeda dengan pengujian white box yang sepenuhnya diketahui dan pengujian black box yang tidak diketahui.
  • ๐Ÿงช Empat teknik: Pengujian matriks, pengujian regresi, pengujian larik ortogonal, dan pengujian pola membentuk perangkat inti.
  • ๐Ÿชœ Sepuluh langkah: Identifikasi input, output, dan jalur utama, kemudian uraikan sistem menjadi subfungsi dan verifikasi setiap subfungsi tersebut.
  • ๐Ÿ”— Paling cocok: Pengujian integrasi, pengujian penetrasi, alur kerja berbasis basis data, layanan web, dan konfigurasi API.tracts.
  • ๏ธ Kompromi: Visibilitas parsial mengurangi upaya yang dibutuhkan, namun juga membatasi seberapa dalam setiap jalur kode dapat dianalisis. traced.
  • ๐Ÿ“‹ Prasyarat: Dokumentasi desain yang akurat sangat penting, karena skema atau spesifikasi yang usang secara diam-diam membatalkan desain pengujian.

Abu-abu Box Pengujian yang menggabungkan pengetahuan internal parsial dengan desain pengujian yang berorientasi pada pengguna.

Apa itu Gray Box Pengujian?

Abu-abu Box pengujian (juga dieja Gray) Box Pengujian (Grey Testing) adalah teknik pengujian perangkat lunak yang menguji produk atau aplikasi perangkat lunak dengan pengetahuan parsial tentang struktur internal aplikasi tersebut. Tujuan dari Grey Testing adalah untuk menguji produk atau aplikasi perangkat lunak dengan pengetahuan parsial tentang struktur internal aplikasi tersebut. Box Pengujian bertujuan untuk mencari dan mengidentifikasi cacat yang disebabkan oleh struktur kode yang tidak tepat atau penggunaan aplikasi yang tidak benar.

Dalam proses ini, kesalahan spesifik konteks yang terkait dengan sistem web biasanya diidentifikasi. Teknik ini meningkatkan cakupan tes dengan memusatkan perhatian pada semua lapisan dari suatu sistem yang kompleks, bukan hanya pada salah satunya.

Abu-abu Box Pengujian adalah metode pengujian perangkat lunak yang menggabungkan Putih Box pengujian ke Black Box pengujianPerbedaan antara ketiganya terletak pada seberapa banyak struktur internal yang dapat dilihat oleh penguji:

  • Dalam putih Box Pengujian struktur internal (kode) sudah diketahui.
  • Hitam Box Pengujian struktur internal (kode) tidak diketahui.
  • Di Abu-abu Box Pengujian struktur internal (kode) sebagian sudah diketahui.

Diagram di bawah ini menempatkan ketiga metode tersebut pada skala visibilitas yang sama.

Abu-abu Box Pengujian yang ditunjukkan antara Putih Box dan hitam Box pengujian pada skala visibilitas kode internal

In rekayasa Perangkat Lunak, Abu-abu Box Pengujian memberikan kemampuan untuk menguji kedua sisi aplikasi, lapisan presentasi serta kode di baliknya. Hal ini terutama berguna dalam tes integrasi ke pengujian penetrasi.

Contoh warna abu-abu Box Pengujian: Saat menguji fitur situs web seperti tautan atau tautan yatim, jika penguji menemukan masalah dengan tautan tersebut, perubahan dapat langsung dilakukan pada kode HTML dan diperiksa secara real-time.

Mengapa Abu-abu? Box pengujian

Abu-abu Box Pengujian dilakukan karena alasan-alasan berikut:

  • Ini memberikan manfaat gabungan dari pengujian kotak hitam dan pengujian kotak putih.
  • Hal ini menggabungkan masukan dari pengembang serta penguji dan meningkatkan kualitas produk secara keseluruhan.
  • Hal ini mengurangi biaya tambahan dari proses panjang pengujian tipe fungsional dan non-fungsional.
  • Hal ini memberi pengembang cukup waktu luang untuk memperbaiki kesalahan.
  • Pengujian dilakukan dari sudut pandang pengguna, bukan dari sudut pandang perancang.
  • Kegagalan dapat dijelaskan, bukan hanya dilaporkan, karena penguji dapat melihat lapisan tempat kegagalan itu terjadi.

Abu-abu Box Pengujian vs Hitam Box vs Putih Box pengujian

Ketiga metode tersebut bukanlah alternatif yang bersaing, melainkan tiga tingkatan akses, dan masing-masing menjawab jenis pertanyaan yang berbeda. Dengan membandingkannya secara berdampingan, pilihan menjadi lebih konkret.

Dasar Black Box pengujian Abu-abu Box pengujian Putih Box pengujian
Pengetahuan tentang struktur internal None Sebagian Penuh
Dilakukan oleh Penguji dan pengguna akhir Penguji, dan pengembang yang bekerja dengan penguji. Pengembang dan insinyur pengujian
Dasar desain pengujian Persyaratan dan spesifikasi Archikuliah, algoritma, struktur data dan antarmuka Kode sumber dan alur kontrol
Tingkat tipikal Pengujian sistem dan penerimaan Pengujian integrasi, penetrasi, dan layanan web. Pengujian unit dan komponen
Cakupan diukur sebagai Cakupan persyaratan Cakupan antarmuka, data, dan jalur. Cakupan pernyataan, cabang, dan jalur.
Keterbatasan utama Penyebab kegagalan tetap tersembunyi. Kedalaman dibatasi oleh akses yang diberikan. Mahal, dan bisa saja tidak memenuhi persyaratan yang dibutuhkan.

Sebagian besar tim menggunakan ketiganya secara menyeluruh siklus hidup pengujian perangkat lunak, dan lapisan kotak abu-abu adalah tempat di mana cacat yang berada di antara antarmuka pengguna dan penyimpanan data biasanya terdeteksi.

Abu-abu Box Strategi Pengujian

Untuk memerankan Grey Box Dalam pengujian, penguji tidak perlu memiliki akses ke kode sumber. Sebuah pengujian dirancang berdasarkan pengetahuan tentang algoritma, arsitektur, keadaan internal, atau deskripsi tingkat tinggi lainnya tentang perilaku program.

Untuk memerankan Grey Box Pengujian:

  • Metode ini menerapkan teknik sederhana dari pengujian kotak hitam.
  • Metode ini didasarkan pada pembuatan kasus uji yang didorong oleh kebutuhan, sehingga semua kondisi telah ditetapkan sebelum program diuji dengan metode pernyataan.

Teknik yang digunakan untuk warna abu-abu Box Pengujiannya adalah:

  • Pengujian Matriks: Teknik ini melibatkan pendefinisian semua variabel yang ada dalam program, beserta risiko yang ditimbulkan oleh masing-masing variabel, sehingga variabel yang tidak digunakan dan berisiko tinggi dapat terlihat.
  • Pengujian Regresi: Memeriksa apakah perubahan pada versi sebelumnya telah menyebabkan kemunduran pada aspek lain dari program di versi baru. Hal ini dilakukan dengan strategi seperti menguji ulang semuanya, menguji ulang kasus penggunaan yang berisiko, dan menguji ulang di dalam firewall.
  • Pengujian Array Ortogonal atau OAT: memberikan cakupan kode maksimum dengan jumlah kasus uji minimum.
  • Pengujian Pola: dilakukan pada data historis dari kerusakan sistem sebelumnya. Tidak seperti pengujian kotak hitam, Grey Box Pengujian menelusuri kode dan menentukan mengapa kegagalan terjadi.

Abu-abu Box metodologi biasanya menggunakan otomatis alat pengujian perangkat lunak untuk melakukan pengujian. Stub dan driver modul dibuat agar penguji tidak perlu membuat kode secara manual.

Langkah-langkah untuk melakukan Grey Box Pengujiannya adalah:

  • Langkah 1: Identifikasi input.
  • Langkah 2: Identifikasi outputnya.
  • Langkah 3: Identifikasi jalur utama.
  • Langkah 4: Identifikasi subfungsi.
  • Langkah 5: Mengembangkan input untuk subfungsi.
  • Langkah 6: Mengembangkan output untuk subfungsi.
  • Langkah 7: Jalankan kasus uji untuk subfungsi.
  • Langkah 8: Verifikasi hasil yang benar untuk subfungsi.
  • Langkah 9: Ulangi langkah 4 hingga 8 untuk subfungsi lainnya.
  • Langkah 10: Ulangi langkah 7 dan 8 untuk subfungsi lainnya.

Kasus uji untuk Grey Box Pengujian dapat mencakup masalah GUI, keamanan, basis data, peramban, dan sistem operasi, di antara lainnya. Setiap kasus yang dihasilkan tetap memerlukan prosedur standar. Kasus cobaan atribut, karena kasus yang tidak dapat direproduksi dari deskripsinya sendiri tidak banyak berguna selama regresi.

Di mana Abu-abu Box Pengujian Digunakan

Teknik ini cocok digunakan di tempat-tempat di mana cacat hanya dapat didiagnosis dengan melihat dua lapisan sekaligus. Skenario berikut adalah yang paling sering menerapkan teknik ini:

  • Alur kerja berbasis basis data: Suatu tindakan dilakukan melalui antarmuka pengguna, dan baris-baris yang dihasilkan kemudian langsung diperiksa untuk memastikan bahwa nilai, tipe, dan relasi telah disimpan sesuai yang diinginkan.
  • Layanan web dan API: Permintaan dikirim dan status respons, header, serta payload diperiksa terhadap konfigurasi yang dipublikasikan.tract, yang merupakan bentuk sehari-hari dari Pengujian API.
  • Titik integrasi: Pesan yang melintasi batas antara dua modul diperiksa sementara kedua modul diperlakukan sebagai sistem yang sedang berjalan, bukan sebagai file sumber.
  • Penilaian keamanan: Seorang penguji penetrasi yang diberi akun pengguna biasa dan gambaran umum arsitektur akan mereplikasi posisi orang dalam, yang merupakan model keterlibatan grey box standar.
  • Aplikasi web dan GUI: Tautan rusak, halaman yatim piatu, penanganan sesi, dan validasi sisi klien semuanya diperiksa dengan visibilitas parsial dari markup dan alur permintaan.

Secara keseluruhan, biaya kerusakan sistem berkurang karena masalah terdeteksi dan dijelaskan sebelum diteruskan ke tahap selanjutnya. pengujian sistem atau produksi.

Abu-abu Box Pengujian Peralatan

Tidak ada alat yang mampu menandingi Grey. Box Pengujian secara terpisah. Yang dibutuhkan kategori ini adalah kombinasi dari penggerak antarmuka, alat inspeksi untuk lapisan di bawahnya, dan cara untuk membuat skrip keduanya secara bersamaan.

  • Klien API dan layanan web seperti Postman ke SoapUI, digunakan untuk mengeluarkan permintaan dan menegaskan kode status dan isi respons.
  • Klien basis data dan alat kueri SQL, digunakan untuk memverifikasi status yang dipertahankan setelah tindakan antarmuka.
  • Alat pengembang browser dan proxy HTTP seperti Burp SuiteDigunakan untuk memeriksa dan memodifikasi permintaan selama sesi yang berorientasi pada keamanan.
  • Kerangka kerja otomatisasi UI seperti Selenium, digunakan untuk menggerakkan lapisan presentasi di dalam sebuah pengujian otomasi pada.
  • Alat pencatatan dan pemantauan, digunakan untuk mengkorelasikan kegagalan yang diamati dengan apa yang dicatat aplikasi secara internal pada saat itu.

Pilihan tersebut kurang penting dibandingkan dengan pemasangan kabel: kecuali jika driver antarmuka dan langkah inspeksi berjalan dalam alur skrip yang sama, hasilnya adalah dua pemeriksaan manual terpisah daripada satu pengujian kotak abu-abu.

Abu-abu Box Tantangan Pengujian

Visibilitas parsial menimbulkan masalah yang tidak dimiliki oleh kedua metode murni, dan berikut adalah masalah yang paling sering dihadapi oleh tim:

  • Ketika suatu komponen yang sedang diuji mengalami kegagalan, hal itu dapat menghentikan operasi yang sedang berlangsung dan membiarkan sisa rangkaian proses tidak dieksekusi.
  • Suatu pengujian dapat berjalan sepenuhnya meskipun isi hasilnya salah, sehingga langkah verifikasi harus memeriksa nilai, bukan penyelesaiannya.
  • Cakupan jalur kode penuh tidak dapat dicapai, karena penguji tidak pernah melihat setiap cabang yang akan dijangkau oleh pengujian white box.
  • Dokumentasi desain yang menjadi dasar pengujian mungkin sudah usang, dan skema atau spesifikasi antarmuka yang ketinggalan zaman secara diam-diam membatalkan desain pengujian tersebut.
  • Penguji membutuhkan pemahaman domain dan kedalaman teknis, yang merupakan profil keterampilan yang lebih sempit untuk direkrut.
  • Terdistribusi dan sangat abstracArsitektur yang rumit menyulitkan untuk mengaitkan kegagalan yang diamati dengan komponen internal tertentu.

Keterbatasan ini menjadi alasan untuk memberikan pengobatan pada Grey. Box Pengujian sebagai salah satu lapisan di antara beberapa lapisan lainnya, bukan sebagai pengganti lapisan lainnya, yang merupakan poin yang ditegaskan dalam rangkaian yang lebih luas. teknik pengujian perangkat lunak ke jenis pengujian perangkat lunakIni sangat cocok diletakkan di sampingnya. pengujian fungsional dan pendekatan berbasis spesifikasi seperti pengujian berbasis model.

Pertanyaan Umum Demo Slot

Keduanya merujuk pada teknik yang sama. "Grey" adalah ejaan Inggris dan "gray" adalah ejaan Amerika, dan keduanya muncul secara bergantian dalam dokumentasi alat dan silabus sertifikasi. Tidak ada yang memiliki arti teknis yang berbeda.

Cukup untuk memahami detail internal tanpa harus membaca setiap baris: diagram arsitektur, model data, dan konfigurasi antarmuka.tracts dan akun hanya baca pada basis data pengujian. Akses penuh ke repositori mengubah latihan ini menjadi pengujian kotak putih.

Biasanya, seorang insinyur penguji dengan latar belakang pengembangan, atau seorang penguji yang dipasangkan dengan seorang pengembang untuk sesi tersebut. Pengujian keamanan dijalankan oleh penguji penetrasi yang diberi akun pengguna standar dan penjelasan singkat tentang arsitektur.

Terhadap antarmuka dan data, bukan pernyataan: setiap titik akhir dan kode status yang diuji, setiap tabel dan transisi status yang disentuh, setiap jalur integrasi yang dilalui. Persentase pernyataan dan cabang termasuk dalam pengukuran white box.

Sebuah stub berfungsi sebagai pengganti komponen yang dipanggil oleh modul yang sedang diuji; sebuah driver berfungsi sebagai pengganti komponen yang akan memanggilnya. Bersama-sama, keduanya memungkinkan subfungsi untuk dijalankan secara terisolasi sebelum sistem lengkapnya ada.

Ketika diperlukan penilaian independen dari perspektif pengguna, karena pengetahuan parsial akan membiaskan penguji ke arah jalur yang diharapkan. Pengujian penerimaan dan pekerjaan kegunaan tetap bersifat kotak hitam karena alasan itulah, dan kode yang kritis terhadap keselamatan masih membutuhkan analisis kotak putih penuh.

Pembelajaran mesin menggali riwayat cacat untuk langkah pengujian pola, memberi peringkat antarmuka berdasarkan risiko yang diprediksi sehingga akses terbatas dimanfaatkan dengan baik, dan mengelompokkan log untuk menghubungkan kegagalan yang diamati dengan komponen internal yang menyebabkannya.

Ya, untuk bagian-bagian yang berulang: pembuat permintaan, pernyataan respons, kueri verifikasi, stub, dan driver yang dirancang dari definisi antarmuka. Menentukan keadaan internal mana yang membuktikan perilaku tersebut benar tetap menjadi pertimbangan desain bagi insinyur.

Ringkaslah postingan ini dengan: