White box testing atau pengujian kotak
putih adalah salah satu metode pengujian perangkat lunak. Metode pengujian ini
juga terkadang disebut juga glass box testing atau pengujian kotak kaca.
Berlainan dengan black box testing, white box testing ini justru menguji
perangkat lunak dari sisi internal tanpa memperhatikan fungsional seperti
antarmuka perangkat lunak itu sendiri.
Pengertian
White Box Testing
Jadi sebetulnya apa definisi dari white
box testing? Mudahnya, white box testing adalah pengujian perangkat lunak yang
menguji kode atau sisi internal programnya. Sisi fungsi, antarmuka, dan alurnya
justru tidak diuji. Hal ini tentunya amat berlawanan dengan Black Box testing
yang justru hanya menguji fungsi dari perangkat lunak tanpa memperhatikan
kodenya, sehingga kedua pengujian ini saling melengkapi satu sama lain.
Pengujian white box dilakukan dengan meramalkan cara kerja
perangkat lunak secara rinci, karenanya logical path (jalur logika) perangkat
lunak akan diuji dengan menyediakan test case yang akan menguji kumpulan
kondisi atau pengulangan secara spesifik. Secara sekilas dapat diambil
kesimpulan pengujian kotak putih merupakan petunjuk untuk mendapatkan program
yang benar secara 100%.
Kelebihan
dan Kekurangan White Box Testing
Pengujian kotak putih tentunya memiliki
kelebihan jika digunakan pada konteks yang tepat. Namun demikian pengujian ini
juga tidak akan efektif jika digunakan pada sikon yang tidak tepat. Berikut
adalah kelebihan dan kekurangan dari pengujian kotak putih.
Kelebihan
White box testing dapat dengan efektif
menemukan kesalahan logika, ketidaksesuaian asumsi, dan berbagai kesalahan
ketik yang terdapat pada kode perangkat lunak.
· Kesalahan
Logika
Misalnya
pada perangkat lunak digunakan sintaks “If “ dan pengulangan. White box testing
akan mendeteksi kondisi-kondisi yang tidak sesuai dan mendeteksi kapan proses
pengulangan akan berhenti. Dalam suatu kondisi pengulangan yang tidak berhenti
(teruama pengulangan while) dapat membuat perangkat lunak terus memakan
resource perangkat keras dan menyebabkan galat ke seluruh sistem.
· Ketidaksesuaian
Asumsi
Whitebox
testing dapat mendeteksi asumsi yang tidak sesuai dengan kenyataan, untuk
kemudian di analisa dan diperbaiki.
· Kesalahan
Ketik
Terutama
untuk mendeteksi bahasa pemrograman yang bersifat case sensitive, karena pada
lingkungan yang berbeda permasalahan ini biasanya diabaikan. Misalnya, pada
sistem operasi windows besar atau kecilnya huruf tidak dipermasalahkan,
sementara pada sistem operasi Linux akan menyebabkan galat jika besar kecil
huruf tidak sesuai.
White box testing juga memiliki kelebihan dapat diotomatisasi menggunakan berbagai perangkat lunak khusus (berbagai tools White box testing) seperti Parasoft Jtest, EclEmma, PyUnit, NUnit, dsb.
Kelemahan
Untuk perangkat lunak yang tergolong memiliki
skala sintaks dan script yang besar, white box testing dianggap sebagai
strategi yang tergolong boros. Hal itu karena akan melibatkan sumber daya yang
besar untuk melakukannya. Hal ini karena Whitebox testing akan melibatkan
penggunaan aplikasi berbayar khusus dan menggunakan staff ahli yang mampu
melakukan programming atau coding pula.
Teknik Pengujian White Box
Pengujian kotak putih (White-Box
Testing) didasarkan pada pemeriksaan yang teliti terhadap detail prosedural.
Jalur logis diseluruh perangkat lunak dan kolaborasi antar-komponen diuji
dengan menguji serangkaian kondisi dan atau loop spesifik.
Salah satu teknik dalam pengujian
White-Box Testing adalah pengujian jalur dasar (Basis Path Testing). Basis Path
Testing diusulkan pertama kali oleh Tom McCabe.
Berbagai teknik pengujian white box
lainnya meliputi:
·
Statement Coverage
·
Decision Coverage
·
Branch Coverage
·
Condition Coverage
·
Multiple Condition Coverage
·
Finite State Machine Coverage
·
Path Coverage
·
Control flow testing
·
Data flow testing
Jenis-Jenis
White Box Testing
White box testing mencakup beberapa
jenis pengujian yang digunakan untuk mengevaluasi kegunaan aplikasi, blok kode,
atau paket perangkat lunak tertentu. Beberapa jenis-jenis white box testing
adalah sebagai berikut.
· Unit
Testing
Jenis
pengujian white box Ini sering
digunakan sebagai jenis pengujian pertama yang dilakukan pada aplikasi.
Pengujian Unit dilakukan pada setiap unit atau blok kode saat dikembangkan.
· Memory
Leak Testing
Memory
leak atau kebocoran memori adalah penyebab utama dari aplikasi yang berjalan
lebih lambat.
· White
Box Penetration Test
Dalam
pengujian penetrasi ini, penguji memiliki informasi lengkap tentang kode sumber
aplikasi, informasi jaringan terperinci, alamat IP yang terlibat, dan semua
informasi server tempat aplikasi berjalan. Tujuannya adalah untuk menyerang
kode dari beberapa sudut untuk mengekspos ancaman keamanan dari dalam.
·
White
Box Mutation Testing
Pengujian
mutasi kotak putih sering digunakan untuk menemukan teknik pengkodean terbaik
yang digunakan untuk memperluas solusi dan kinerja perangkat lunak.
Langkah
atau Tahapan White Box Testing
Tahap
ini menganalisis seluruh alur logika yang terdapat pada sintaks kode perangkat
lunak agar kita mengetahui pada bagian mana saja pengujian akan dilakukan.
Pada tahap ini
seluruh alur logika yang telah didefinisikan dibuat uji kasusnya.
Pengujian
dilakukan pada setiap test case atau uji kasus yang sebelumnya telah dibuat.
Pada tahap ini kita juga dapat mulai membuat laporan dari hasil pengujian