White Box Testing

White Box Testing adalah teknik pengujian software yang berfokus pada struktur internal atau desain sistem.

Software Engineering

Mau Belajar

Software Engineering

GRATIS?

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!

IKUT KURSUS GRATIS

Mau Belajar

Software Engineering

GRATIS?

Apa itu White Box Testing?

Definisi White Box Testing
Definisi White Box Testing

Untuk menguji apakah sebuah software berhasil atau tidak, maka dilakukan pengujian yaitu black box testing dan white box testing.

White box testing adalah salah satu teknik pengujian software yang berfokus pada komponen di dalam software seperti desain, struktur coding-an, dan cara kerja software dari awal hingga akhir. 

Sedangkan black box testing hanya melakukan penilaian fungsionalitas software. Dalam artian, black box testing hanya menguji apakah sistem mengeluarkan output yang sesuai dengan input, tanpa melihat struktur internal atau desain sistem. 

Tujuan dari white box testing adalah untuk mengetahui alur pengiriman data dari input hingga output, kegunaan, dan keamanan software

Pada white box testing, kode yang digunakan untuk membuat software bisa dilihat oleh penguji. Karena itu, white box testing disebut juga dengan clear box testing, open box testing, code-based testing, atau structural testing.

White box testing harus dilakukan oleh profesional yang memahami kode dengan baik. Setelah itu, tester harus menulis beberapa kode untuk dimasukan dalam uji kasus (test case) dan menjalankannya.

Teknik-teknik White Box Testing

Ada beberapa tipe white box testing, dan setiap jenisnya memiliki teknik pengujian yang berbeda. 

Di antara teknik white box testing, berikut tiga teknik yang paling utama:

#1 Statement Coverage

Dalam bahasa pemrograman, pernyataan (statement) adalah baris kode atau instruksi agar komputer dapat memahami dan bertindak sesuai kode tersebut. 

Statement coverage berfungsi menguji setiap kemungkinan pernyataan tersebut setidaknya sekali untuk menemukan kode yang salah. 

Namun sebelumnya, pernyataan harus dikompilasi dan diubah menjadi kode objek terlebih dahulu, dan melakukan tindakan saat software dijalankan. 

#2 Branch Coverage

Branch dalam pemrograman seperti pernyataan IF (IF statement) dengan dua opsi jawaban, yaitu BENAR dan SALAH. 

Teknik ini memeriksa apakah setiap cabang atau jalur dijalankan setidaknya sekali selama software digunakan. 

#3 Path Coverage

Path coverage merupakan teknik pengujian komprehensif di mana seluruh kemungkinan jalur dalam program diuji untuk memeriksa jalur mana saja yang dilewati pada status awal program dijalankan, status menengah, dan status akhir.

Teknik path coverage lebih menyeluruh dibandingkan dengan branch coverage, sehingga teknik ini umumnya digunakan untuk menguji program yang kompleks.

Teknik white box testing lain yang sering digunakan antara lain:

  • Basis Path Testing: Menguji setiap kemungkinan jalur independen.
  • Loop Testing: Pengujian berulang dengan tiga strategi berbeda, yaitu single loop, concatenated loop, dan nested loop.
  • Compound Condition Coverage: Menguji setiap kondisi dengan beberapa jalur dan kombinasi jalur yang berbeda.

Contoh White Box Testing

Untuk melakukan white box testing dengan teknik path coverage, tester harus menggambar diagram (flowchart) kontrol kode untuk melihat kemungkinan jalur yang akan dilewati saat program dijalankan. 

Contoh kode dan jalurnya bisa dilihat pada gambar di bawah ini:

Contoh White Box Testing

Maka berdasarkan diagram di atas, kemungkinan jalur yang dilewati antara lain:

  • 1, 2 
  • 1, 3, 4, 5, 6, 8 
  • 1, 3, 4, 5, 6, 7
  • 1, 3, 4, 7, 6, 8, dan sebagainya

Karena ada banyaknya jalur yang dihasilkan, maka kemungkinan terdapat jalur yang tidak efisien, berulang, atau salah. 

Dengan melakukan teknik path coverage, kode yang menghasilkan jalur yang tak efisien akan dimodifikasi. 

FAQ (Frequently Asked Question)

Apa saja kelebihan dan kekurangan white box testing?

White box testing menguji seluruh komponen dalam suatu program atau aplikasi, sehingga memiliki keuntungan sebagai berikut:

  • Dapat menemukan bug atau error yang tersembunyi, termasuk kesalahan pada tipografi dan sintaks. 
  • Otomatisasi dan optimasi kode menjadi mudah. 
  • Pengujian bisa dilakukan pada tahap awal tanpa perlu antarmuka seperti pada black box testing.
  • Mengoptimalkan kesalahan penghapusan kode dan membantu dalam menghapus baris kode tambahan.

Namun, white box testing juga memiliki kekurangan antara lain:

  • Pengujian sangat rumit, butuh waktu yang lama, dan biayanya sangat mahal. 
  • Tester harus memiliki pemahaman programming dan coding yang mendalam. 
  • Ada kemungkinan tester terlalu fokus pada cara kerja internal software dan melewatkan masalah eksternal.
  • Ada kemungkinan tester memiliki pandangan yang bias terhadap software karena mereka terbiasa dengan cara kerja internalnya, sehingga kesalahan dalam produksi bisa lebih banyak. 
  • Desain ulang dan penulisan ulang kode memerlukan test case untuk bisa ditulis lagi. 
  • Fungsionalitas yang hilang tidak dapat dideteksi saat kode diuji.

Kata kunci lainnya

Mulai karirmu dalam

Software Engineering

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!
ikut kursus gratis
Daftar Isi