Published on

Expert's Corner

Mengenal white box testing: Jenis dan 6 teknik yang digunakan

Nur Rosita Dewi

white-box-testing-adalah-EKRUT.jpg

White box testing adalah teknik untuk menguji perangkat lunak. Teknik ini juga sering disebut Clear box testing, Open box testing, Transparent box testing, Code-based testing, dan Glass box testing. Untuk mengetahui lebih lanjut mengenai pengertian dan penjelasan lengkap mengenai teknik white box testing, berikut penjelasannya. 

Baca juga: Apa itu wireframe? Inilah 3 elemen dan bedanya dengan mockup dan prototype!

Apa itu white box testing?

white box testing adalah - EKRUT
Melalui white box testing, kamu dapat memverifikasi cara kerja bagian dalam sistem software - EKRUT

Jika mengacu pada definisinya, white box testing adalah teknik pengujian untuk mengevaluasi kode dan struktur internal suatu program. Saat melakukan white box testing, kita akan melibatkan dan melihat struktur kode. Ketika mengetahui struktur internal suatu produk, pengujian dapat dilakukan untuk memastikan bahwa operasi internal dilakukan sesuai dengan spesifikasi. Dan semua komponen internal telah dijalankan dengan baik.

Struktur internal, desain, dan pengkodean perangkat lunak diuji untuk memverifikasi aliran input-output dan untuk meningkatkan desain, manfaat, serta manfaatnya. Di dalam white box testing, kode dapat dilihat oleh penguji sehingga sering juga disebut Clear box testing. White box testing adalah bagian penting dari proses build otomatis dalam pipeline pengembangan Continuous Integration (CI) atau Continuous Delivery (CD).

Pengujian kotak putih sering dirujuk dalam konteks Static Application Security Testing (SAST), sebuah pendekatan yang memeriksa kode sumber atau binary secara otomatis dan memberikan umpan balik tentang bug dan kemungkinan kerentanan. Melalui teknik white box testing, penguji dapat memeriksa dan memverifikasi cara kerja bagian dalam sistem software, seperti kode, infrastruktur, dan integrasinya dengan sistem eksternal.

Baca juga: Usability testing dan 9 langkah melakukannya

Kenapa perlu melakukan white box testing?

white box testing adalah - EKRUT
WBT dapat membantu kamu memastikan semua keputusan logis diverifikasi - EKRUT

Sekarang, kamu sudah mengetahui apa itu WBT, bukan? Lalu, sebenarnya apa fungsi white box testing? Berikut penjelasannya.

  • Memastikan semua jalur independen dalam modul telah dijalankan setidaknya sekali.
  • Untuk memastikan semua keputusan logis diverifikasi pada nilai benar dan salahnya.
  • Semua loop dieksekusi sesuai batasan dan dalam batasan operasionalnya validitas struktur data internal.

White box testing juga berguna untuk menemukan jenis bug berikut ini.

  • Kesalahan logika yang cenderung muncul saat kita merancang dan mengimplementasikan fungsi, kondisi, atau kontrol yang berada di luar program.
  • Kesalahan desain karena perbedaan antara alur logis program dan implementasi aktual.
  • Kesalahan tipografi dan pemeriksaan sintaks.

Intip langkah melakukan white box testing

white box testing adalah - ekrut
Identifikasi fitur yang ingin kamu tes - EKRUT

Tertarik untuk melakukan WBT? Berikut ini adalah beberapa langkah yang perlu kamu lakukan. 

  • Cari tahu program atau fitur yang ingin kamu tes.
  • Siapkan alur yang mungkin ada di dalam diagram alur.
  • Identifikasi semua jalur yang mungkin dari diagram alur. 
  • Tuliskan spesifikasi input, prosedur pengujian, kondisi pelaksanaan hingga hasil yang diharapkan untuk melihat setiap alur pada diagram alur.

Setelah beberapa langkah di atas, langkah terakhir adalah dengan mengeksekusi white box testing.  

Baca juga: Pengujian User Acceptance Test dalam desain produk

Jenis-jenis metode white box testing

Jenis-jenis metode white box testing
White box testing dapat dilakukan dengan berbagai metode atau teknik pengujian (Sumber: Pexels)

Dalam pengerjaannya, white box testing memiliki beberapa metode yang antara lain meliputi beberapa hal berikut ini,

1. Basis path

Metode white box testing yang pertama adalah basis path. Metode ini memungkinkan pengembang untuk memperoleh ukuran kompleksitas dari desain prosedural. Ukuran ini nantinya akan dijadikan panduan untuk pendefinisian rangkaian jalur dasar (basis path) eksekusi dan perancangan pengujian pada tiap jalur.

Secara umum, metode white box testing basis path didasarkan pada jalur dan struktur koneksi dari cabang tiap sistem beserta pengodean dan fungsi logikanya. Tujuan dari basis path adalah untuk menentukan jumlah jalur independen, sehingga jumlah kasus uji yang diperlukan dapat didefinisikan secara eksplisit untuk memaksimalkan cakupan pengujian. 

Metode white box testing jenis ini terdiri dari dua bentuk yaitu, zero path dan one path di mana keduanya dibedakan dari tingkat urgensi jalur pintas atau penghubung pada pemrosesan suatu sistem. Zero path merupakan jalur penghubung yang tidak penting atau tidak ada dalam sebuah sistem, sedangkan one path adalah sebaliknya.

2. Cyclomatic complexity

Contoh bagan concatenated testing atau pengujian bersambung dalam loop testing
Cyclomatic complexity merupakan salah salah satu metode white box testing yang dapat menganalisis jalur independen dalam sistem (Sumber: researchgate.net)

Kompleksitas siklomatik merupakan salah satu metode white box testing yang terdiri dari matriks perangkat lunak dan menyediakan pengukuran kuantitatif dari serangkaian kompleksitas logika sistem. Metode ini dapat mendefinisikan jumlah jalur independen yang lewat dalam program dalam satu set pertanyaan pemrosesan untuk memberikan nilai tinggi pada program tersebut.

Matriks yang dikembangkan oleh Thomas J. McCabe pada tahun 1976 ini umumnya didasarkan pada representasi aliran kontrol dari suatu program. Aliran kontrol ini menggambarkan sebuah program sebagai grafik yang terdiri dari node dan edges. Metode white box testing jenis ini dapat dihitung dengan grafik aliran kontrol yang berhubungan dengan fungsi, modul, atau kelas dalam sebuah program perangkat lunak.

3. Graph matrix

Graphs matrix merupakan matriks dua dimensi yang membantu penentuan himpunan basis. Metode white box testing jenis ini memiliki jumlah kolom dan jalur yang sama dengan simpul-simpul dalam grafik aliran. Umumnya, graphs matrix membedakan setiap node dengan edge lewat peletakan nilai “0” untuk jalur yang tidak ada koneksi dan “1” untuk jalur terkoneksi.

Matriks dari metode white box testing jenis ini berbentuk segi empat dengan jumlah node yang sama dengan jumlah baris dan kolomnya. Proses identifikasi baris dan kolom ini secara umum sama dengan identifikasi pada node, sehingga isi dari data utama adalah ada tidaknya hubungan antar node ini.

Baca juga: Cara menggunakan Google Analytics untuk temukan risiko software testing

6 Teknik white box testing

Statement coverage
Contoh bagan dan formula teknik white box testing Statement Coverage (Sumber: testingbrain.com)

Selain metode, white box testing juga dikerjakan dengan menggunakan beberapa teknik yang meliputi beberapa hal sebagai berikut,

1. Statement coverage

Statement coverage merupakan teknik white box testing yang melibatkan eksekusi semua pernyataan; setidaknya sekali; dalam kode sumber. Teknik white box testing ini berbentuk matriks yang digunakan untuk menghitung dan mengukur jumlah pernyataan dalam kode sumber yang telah dieksekusi. 

Rumus untuk menghitung statement coverage dalam white box testing
Rumus untuk menghitung statement coverage dalam white box testing (Sumber: guru99.com)

Penggunaan statement coverage dapat memungkinkan pengembang untuk memeriksa apa yang dilakukan dan diharapkan oleh kode sumber. Teknik ini juga dapat digunakan untuk memeriksa kualitas kode dan aliran jalur yang berbeda dalam sebuah program. Meski begitu, teknik statement coverage ini memiliki kelemahan yang membuat pengembang tidak dapat menguji adanya kondisi-kondisi palsu di dalam suatu program.

2. Branch coverage

Branch coverage
Contoh bagan teknik white box testing Branch Coverage (Sumber: javatpoint.com)

Teknik branch coverage dalam white box testing digunakan untuk menutupi semua cabang dari grafik aliran kontrol (control flow). Aksi ini mencakup semua hasil, baik benar maupun salah, dari setiap kondisi titik keputusan sistem, setidaknya sekali dari setiap titik. Teknik white box testing ini adalah teknik pengujian yang memastikan bahwa setiap cabang dari setiap titik keputusan sistem harus dieksekusi. Teknik branch coverage ini umumnya akan mengikuti titik keputusan (node) dan tepi cakupan (edges) untuk menemukan persentase program dan jalur eksekusi selama dilakukan eksekusi program.

3. Condition coverage

Condition coverage merupakan cakupan ekspresi untuk menguji dan mengevaluasi variabel atau sub-ekspresi dalam pernyataan kondisional. Tujuan dari teknik white box testing jenis ini adalah untuk memeriksa hasil individu pada setiap kondisi logis tertentu. Teknik ini menawarkan sensitivitas yang lebih baik terhadap aliran kontrol dalam suatu program. Meski begitu, teknik condition coverage tidak memberikan jaminan tentang cakupan keputusan yang penuh. Berikut ini adalah rumus formula yang dapat digunakan untuk menghitung condition coverage:

Formula teknik white box testing condition coverage
Formula teknik white box testing condition coverage (Sumber: guru99.com)

4. Multiple condition coverage

Sama halnya dengan teknik condition coverage, teknik Multiple Condition Coverage dalam white box testing merupakan matriks yang digunakan untuk mengeksekusi pernyataan dalam sistem suatu program. Dalam matriks ini semua pernyataan harus dieksekusi dan semua kombinasi nilai kebenaran dalam tiap keputusan harus terjadi setidaknya sekali untuk mencapai cakupan penuh. Teknik white box jenis ini terdiri dari jumlah blok pernyataan yang dieksekusi dan dikombinasi dengan jumlah total dalam program.

5. Basis path testing

Basis path testing
Contoh grafis basis path testing (Sumber: guru99.com)

Secara umum, teknik ini sama dengan metode testing basis path dalam white box testing yang telah dijelaskan sebelumnya. Teknik pengujian ini merupakan metode pengujian struktural yang melibatkan penggunaan kode sumber suatu program untuk menemukan setiap basis jalur yang dapat dieksekusi dalam waktu tertentu. Teknik ini secara mendasar dapat membantu pengembang untuk menentukan semua kesalahan yang terletak di dalam sepotong kode. Metode ini dirancang untuk melakukan eksekusi pada semua jalur terpilih melalui program komputer.

6. Loop testing

Loop testing merupakan teknik pengujian white box testing yang dilakukan untuk memvalidasi loop dalam struktur kontrol. Loop sendiri diartikan sebagai struktur atau rangkaian proses yang awal hingga ujungnya saling terhubung. Dalam pemrograman komputer, loop merupakan urutan instruksi yang terus-menerus diulang sampai suatu kondisi tetap tercapai.

Contoh simple loop testing dalam white box testing
Contoh simple loop testing dalam white box testing (Sumber: geeksforgeeks)

Setiap perangkat lunak yang dibentuk dari banyak algoritma umumnya dapat diterapkan loop testing. Hal ini dikarenakan teknik pengujian ini berkonsentrasi pada pemeriksaan validitas struktur dari algoritma sistem ini. Tujuan dari teknik white box testing ini adalah mengekspos bug yang mungkin ditemukan di setiap rangkaian program.

Contoh bagan concatenated testing atau pengujian bersambung dalam loop testing
Contoh bagan concatenated testing atau pengujian bersambung dalam loop testing (Sumber: geeksforgeeks.com)

Teknik ini dibedakan menjadi beberapa jenis seperti simple loop testing, nested loop testing, concatenated loop testing, dan unstructured loop testing.

Baca juga: Alasan pentingnya quality assurance bagi bisnis

Itulah pengertian, fungsi, dan beberapa teknik dari dari white box testing. Untuk mempraktikkannya tentunya akan cukup rumit dan kompleks, tapi ini akan sebanding dengan hasil yang kamu dapatkan, bukan?

Bagi kamu yang memiliki passion dan potensi di bidang pemrograman, tentunya hal semacam ini menarik buat kamu. Dan jika kamu ingin mulai berkarier di bidang pemrograman semacam ini, kamu bisa mendaftar lewat EKRUT untuk kemudian terhubung dengan berbagai perusahaan yang mencari kandidat tech savvy sepertimu. Silakan klik tautan di bawah ini untuk mulai mendaftar lewat EKRUT.

white box testing - EKRUT
Last update: 22 October 2021

Sumber: 

  • guru99.com
  • reqtest.com
  • softwaretestinghelp.com

Tags

Share

Apakah Kamu Sedang Mencari Pekerjaan?

    Already have an account? Login

    Artikel Terkait

    apa-itu-UX-Writer-EKRUT.jpg

    Careers

    Catat, cara menjadi UX Writer yang mumpuni

    Maria Yuniar

    16 August 2022
    5 min read
    H1_UIUX_Designer.jpg

    Careers

    UI/UX Designer: Pengertian, Tanggung Jawab, dan Skill yang Harus Dimilikinya

    Algonz D.B. Raharja

    16 August 2022
    7 min read
    rapid-application-development-adalah-EKRUT.jpg

    jobs

    Informasi lengkap Rapid Application Development dan tahapannya

    Nur Lella Junaedi

    16 August 2022
    5 min read

    Video