Untuk pembahasan kali ini kami akan mengulas mengenai White Box Testing yang dimana dalam hal ini meliputi pengertian, persyaratan, jenis, kelebihan, kekurangan, pengujian dan contoh, nah agar dapat lebih memahami dan dimengerti simak ulasan selengkapnya dibawah ini.
Pengertian White Box Testing
White Box Testing adalah salah satu cara untuk menguji suatu aplikasi atau software dengan cara melihat modul untuk dapat meneliti dan menganalisa kode dari program yang di buat ada yang salah atau tidak. Kalau modul yang telah dan sudah di hasilkan berupa output yang tidak sesuai dengan yang di harapkan maka akan di compile ulang dan di cek kembali kode-kode tersebut hingga mencapai sesuai denganyang di harapkan.
Kasus yang sering menggunakan white box testing akan di uji dengan beberapa tahapan yaitu
- Pengujian seluruh keputusan yang menggunakan logikal.
- Pengujian keseluruh loop yang ada sesuai batasan-batasannya.
- Pengujian pada struktur data yang sifatnya internal dan yang terjamin validitasnya.
Persyaratan dalam Pengujian White Box Testing
Berikut ini terdapat beberapa persyaratan dalam pengujian white box testing, terdiri atas:
- Medefinisikan semua alur logika
- Membangun kasus untuk digunakan dalam pengujian
- Mengevaluasi semua hasil pengujian
- Melakukan pengujian secara menyeluruh
Jenis-Jenis White Box Testing
Berikut ini terdapat beberapa jenis-jenis white box testing, terdiri atas:
Basis Path

Metode identifikasi yang berdasarkan pada jalur, struktur atauk oneksi yang ada dari suatu sistem ini biasa disebut juga sebagai branch testing, karena cabang-cabang dari kode atau fungsi logika diidentifikasi dan dites, atau disebut juga sebagai control-flow testing.
Ada 2 bentuk Basis path, yaitu:
- Zero Path: Jalur penghubung yang tidak penting atau jalur pintas yang ada pada suatu sistem.
- One Path: Jalur penghubung yang penting atau berupa proses pada suatu sistem.
Cyclomatic Complexity

Adalah pengukuran software yang memberikan pengukuran kuantitatif dari kompleksitas logika program.
Pada konteks metode basis path testing, nilai yang dihitung bagi cyclomatic complexity menentukan jumlah jalur-jalur yang independen dalam kumpulan basis suatu program dan memberikan jumlah tes minimal yang harus dilakukan untuk memastikan bahwa semua pernyataan telah dieksekusi sekurangnya satu kali.
Jalur independen adalah tiap jalur pada program yang memperlihatkan 1 kelompok baru dari pernyataan proses atau kondisi baru.
Baca juga: Pengertian Rekayasa Perangkat Lunak Lengkap
Graph Matrix

Adalah matrik berbentuk segi empat sama sisi, dimana jumlah baris dan kolom sama dengan jumlah node, dan identifikasi baris dan kolom sama dengan identifikasi node, serta isi data adalah keberadaan penghubung antar node (edges).
Beberapa properti yang dapat ditambahkan sebagai pembobotan pada koneksi antar node di dalam graph matrix, sebagai berikut:
- Kemungkinan jalur (Edge) akan dilalui / dieksekusi.
- Waktu proses yang diharapkan pada jalur selama proses transfer dilakukan.
- Memori yang dibutuhkan selama proses transfer dilakukan pada jalur.
- Sumberdaya (resources) yang dibutuhkan selama proses transfer dilakukan pada jalur.
Kelebihan dan Kekurangan White Box Testing
Berikut ini terdapat beberapa kelebihan dan kekurangan white box testing, terdiri atas:
1. Kelebihan White Box Testing
Terdiri atas:
- Kesalahan Logika
Menggunakan sintax ‘if’ dan sintax pengulangan. Dan langkah selanjutnya metode white box testing ini akan mencari dan mendeteksi segala kondisi yang di percaya tidak sesuai dan mencari kapan suatu proses perulangan di akhiri.
- Ketidaksesuaian Asumsi
Menampilkan dan memonitori beberapa asumsi yang di yakini tidak sesuai dengan yang di harapkan atau yang akan di wujudkan, untuk selanjutnya akan di analisa kembalai dan kemudian di perbaiki.
- Kesalahan Pengetikan
Mendeteksi dan mencarian bahasa-bahasa pemograman yang di anggap bersifat case sensitif.
2. Kelemahan White Box Testing
Pada perangkat lunak yang jenisnya besar, metode white box testing ini dianggap boros karena melibatkan banyak sumberdaya untuk melakukannya.
Pengujian White Box Testing
Pengujian ke white box testing adalah menguji yang di dasarkan kepada pengecekkan ke dalam detail rancangan, penggunaan yang di lakukan struktur control dari suatu desain pemograman untuk dapat membagi pengujian ke beberapa kasus pengujian. Dan di dapat bahwasanya white box testing menggungakan petunjuk untuk menghasilkan program yang di harapkan dan efisien.
Metode pengujian pada white box testing ini sering di lakukan untuk
- Memberikan dan membuat suatu jaminan bahwa seluruh jalur-jalur yang independen hanya menggunakan modul minimal satu kali.
- Keputusan yang sifatnya logis dapat di gunakan di semua kondisi true (benar) atau false (salah).
- Mengeksekusi seluruh perulangan yang ada ke pada batas nilai dan operasional di setiap situasi dan kondisi.
- Syarat yang di lakukan dalam menjalankan strategi white box testing
- Mendefinisikan tentang seluruh alur-alur logika yang ada.
- Membangun dan membuat suatu kasus yang akan di gunakan untuk tahap pengujian.
- Hasil pengujian yang telah di dapatkan akan di lakukan eveluasi kembali.
- Pengujian yang di lakukan haruslah secara menyeluruh.
Contoh White Box Testing
Berikut ini terdapat beberapa contoh white box testing, terdiri atas:
Contoh Testing White Box 1

Menggunakan grafikaliran ini, kita dapat menghitung jumlah jalur independen melalui kode. Kami melakukan ini dengan menggunakan metrik disebut nomor cyclomatic (McCabe, 1976), yang didasarkan pada teori grafik. Cara termudah untuk menghitung jumlah siklomatik adalah dengan menghitung jumlah conditional / predikat (diamond) dan tambahkan 1. Dalam contoh di atas, ada lima conditional. Oleh karenaitu, jumlah cyclomatic kami adalah 6, dan kami memiliki enam jalur independen melalui kode. Jadi kita sekarang dapat menghitungnya:
- 1-2-3-4-5-10 (properti yang dimiliki oleh orang lain, tidak mempunyai uang untuk sewa)
- 1-2-3-4-6-10 (properti yang dimiliki oleh orang lain, membayar sewa)
- 1-2-3-10 (properti yang dimiliki oleh pemain)
- 1-2-7-10 (properti yang tersedia, tidak memiliki cukup uang)
- 1-2-7-8-10 (properti yang tersedia, punya uang, tidak ingin membelinya)
- 1-2-7-8-9-10 (properti yang tersedia, punya uang, dan membelinya)
Kami ingin menulis kasus pengujian untuk memastikan bahwa setiap jalur yang akan diuji setidaknya sekali. Seperti dikatakan di atas, jumlah siklomatik adalah batas bawah pada jumlah kasus uji yang akan kita tulis. Uji kasus yang ditentukan dengan cara ini adalah yang kami gunakan dalam pengujian basis patch.
Baca juga: Pengertian Open Source
Contoh Pengujian White Box 2
Step 1: Contoh prosedur di bawah ini menunjukkan bagaimana laporan algoritma dipetakan ke node grafik, nomor di sebelah kiri.
public double calculate(int amount)
{
-1- double rushCharge = 0;
-1- if (nextday.equals(“yes”) )
{
-2- rushCharge = 14.50;
}
-3- double tax = amount * .0725;
-3- if (amount >= 1000)
{
-4- shipcharge = amount * .06 + rushCharge;
}
-5- else if (amount >= 200)
{
-6- shipcharge = amount * .08 + rushCharge;
}
-7- else if (amount >= 100)
{
-8- shipcharge = 13.25 + rushCharge;
}
-9- else if (amount >= 50)
{
-10- shipcharge = 9.95 + rushCharge;
}
-11- else if (amount >= 25)
{
-12- shipcharge = 7.25 + rushCharge;
}
else
{
-13- shipcharge = 5.25 + rushCharge;
}
-14- total = amount + tax + shipcharge;
-14- return total;
} //end calculate
Dibawah ini adalah flowchart dari contoh program diatas :

Step 2: Menentukan kompleksitas cyclomatic dari grafikaliran.
V(G) = E – N + 2
= 19 – 14 + 2
= 7
Keterangan:
E : Jumlah Busur atau Link
N : Jumlah Simpul
Ini menjelaskan bahwa batas ataspada ukuran basis set. Artinya, memberikan jumlah jalur independen yang perlu kita cari.
Step 3: Menentukandasarjalurindependen
Path 1: 1 – 2 – 3 – 5 – 7 – 9 – 11 – 13 – 14
Path 2: 1 – 3 – 4 – 14
Path 3: 1 – 3 – 5 – 6 – 14
Path 4: 1 – 3 – 5 – 7 – 8 – 14
Path 5: 1 – 3 – 5 – 7 – 9 – 10 – 14
Path 6: 1 – 3 – 5 – 7 – 9 – 11 – 12 – 14
Path 7: 1 – 3 – 5 – 7 – 9 – 11 – 13 – 14
Step 4: Menyiapkan test cases bahwa pelaksanaan kekuatan setiap jalur di set dasar.
path nextday amount expected result
1 yes 10 30.48
2 no 1500 ????.??
3 no 300 345.75
4 no 150 174.125
5 no 75 90.3875
6 no 30 39.425
7 no 10 15.975
Penyataan pengulangan statement di tengah-tengah blok diperlukan meskipun ada gambaran sampai akhir, Jika itu adalah simbol terminal tambahan.
Kembali dari ekspresi boolean diperlakukan jika ada pernyataan (statement).