MODUL PERKULIAHAN
W182100023 – Testing
dan Implementasi
Sistem Informasi
Run test yaitu menjalankan dan mencari kesalahan dan bug. Report test adalah laporan
hasil testing kepada developer serta memberikan konklusi apakah suatu software tersebut
layak digunakan atau tidak. 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. White box testing adalah suatu
pengujian oleh software atau aplikasi dengan melihat modul untuk menganalisis kode
program ada yang salah atau tidak. Bila suatu modul yang diproduksi tidak memenuhi
syarat, kode akan dikompilasi ulang dan periksa lagi hingga mencapai apa yang
diharapkan dalam arti bahwa white box testing menguji dengan cara melihat pure code
dari suatu perangkat lunak atau aplikasi yang diuji tanpa mempedulikan tampilan atau UI
dari aplikasi tersebut.
Artinya, white box menguji perangkat lunak dari sisi kode atau bagaimana teknis
penulisan program dilakukan. Menurut Pressman (2012, hlm. 588) White box testing
adalah sebuah filosofi perencanaan uji kasus yang menggunakan struktur kontrol yang
dijelaskan sebagai bagian dari perancangan perangkat komponen untuk menghasilkan
test case itu sendiri.
Menurut Pressman (2012, hlm. 588) Dengan menggunakan metode pengujian kotak
putih, kita dapat memperoleh test case yang:
a. Menjamin bahwa semua jalur independen dalam sebuah modul telah dieksekusi
setidaknya satu kali.
b. Melakukan semua keputusan logis pada sisi benar dan yang salah.
c. Melaksanakan semua loop pada batas mereka dan dalam batas-batas operasional
mereka.
d. Melakukan struktur data internal untuk memastikan kesahihannya.
Dapat dilihat bahwa white box testing dilakukan untuk memastikan seluruh kode berjalan
dengan baik tanpa celah atau kesalahan yang dapat menghasilkan cacat dari segi
pemrograman.
Sementara itu Rossa dan Shalahuddin (2013) berpendapat bahwa White-Box Testing
merupakan pengujian perangkat lunak dari segi desain dan kode apakah mampu
menghasilkan fungsi-fungsi, masukan dan keluaran yang sesuai dengan spesifikasi
kebutuhan. Dapat dikatakan pengujian ini dilakukan dengan memeriksa logic dari kode
program.
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
White box testing dapat dengan efektif menemukan kesalahan logika, ketidaksesuaian
asumsi, dan berbagai kesalahan ketik yang terdapat pada kode perangkat lunak.
a. 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 (terutama pengulangan while) dapat membuat perangkat lunak terus
memakan resource perangkat keras dan menyebabkan galat ke seluruh sistem.
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.
Salah satu teknik dalam pengujian White-Box Testing adalah pengujian jalur dasar (Basis
Path Testing). Basis Path Testing diusulkan pertama kali oleh Tom McCabe. Metode ini
memungkinkan penguji dapat mengukur kompleksitas logis dari desain procedural dan
menggunakannya sebagai pedoman untuk menetapkan himpunan basis dari semua jalur
eksekusi (Pressman, 2012).
1. Statement Coverage
Makna statement atau pernyataan bahasa pemrograman dalam white box testing
adalah baris kode atau instruksi yang mampu dipahami oleh komputer.
Selanjutnya, computer akan bertindak sesuai dengan kode atau instruksi tersebut.
Teknik pengujian statement coverage setidaknya dilakukan 1 kali pada
kemungkinan setiap statement yang ada. Tujuannya adalah untuk menemukan
kode yang eror atau memiliki bug, sehingga kode tidak bisa berjalan di komputer.
2. Loop Testing
Teknik pengujian loop merupakan salah satu teknik mendasar pada berbagai
macam algoritma. Penguji akan melakukan beberapa strategi pengujian saat
menjalankan loop testing, yaitu nested loops, simple loops, dan concatenated
loops.
Loop testing akan memeriksa kondisi akhir dari kode looping pada program,
seperti while, do-while, for,dan jenis serupa. Apakah teknik yang programmer
terapakan sudah berjalan dengan benar atau belum.
3. Branch Coverage
Dalam Bahasa pemrograman, brancah seperti pernyataan IF yang memiliki dua
opsi jawaban yaitu “benar” dan ‘salah”. Teknik branch coverage memastikan
bahwa fungsi percabangan benar dan salah telah berjalan dengan baik.
Melalui branch coverage, developer dapat mengidentifikasi kesalahan terkait
pernyataan bersyarat. Setiap cabang atau jalur setidaknya harus berjalan sekali
selama penggunaan software.
7. Path Coverage
Path coverage merupakan Teknik pengujian perangkat lunak untuk memeriksa
mana saja jalur yang dilewati pada status awal program berjalan. Path coverage
menguji status awal, status tengah, dan akhir untuk memastikan software berjalan
dengan baik. Teknik path coverage lebih akurat karena developer maupun tester
menguji program secara menyeluruh. Sering diterapkan untuk menguji program-
program kompleks.
• Unit Testing
Jenis pengujian kotak putih Ini sering digunakan sebagai jenis pengujian pertama
yang dilakukan pada aplikasi. Pengujian Unit dilakukan pada setiap unit atau blok
kode saat dikembangkan.
Pada dasarnya pengujian unit atau unit testing ini biasanya dilakukan oleh
programmer. Sebagai pengembang perangkat lunak, tentunya kita akan
• Integration testing
Integration testing melibatkan pengujian integrasi beberapa komponen atau unit
perangkat lunak. Tujuannya untuk memastikan komponen-komponen tersebut telah
bekerja sama dengan benar. Dapat dilakukan dengan dua cara yakni secara manual
dan dengan memanfaatkan alat penguji otomatis.
• Code Review
Merupakan teknik pengujian white box manual yang melibatkan peninjauan kode oleh
programmer. Pengujian akan melakukan identifikai kesalahan, kerentanan, atau area
White box testing merupakan pengujian dengan dasar pada pengecekan di dalam detail
desain dari suatu rancangan pemrograman untuk membagi pengujian. Dalam membuat
pengujian white box maka tester perlu memiliki pemahaman terkait pemrograman. Sebab
untuk memahami kode sumber yang dipelajari dan harus memiliki pandangan global
tentang fungsi aplikasi serta elemen yang dirancangnya. Metode white test ini dapat
diterapkan untuk tes integrasi, tes unit dan tes sistem.
Hal pertama yang sering dilakukan seorang penguji adalah mempelajari dan memahami
kode sumber aplikasi. Karena pengujian white box melibatkan pengujian cara kerja
aplikasi, penguji harus sangat berpengetahuan dalam bahasa pemrograman yang
digunakan dalam aplikasi yang mereka uji. Selain itu, orang yang menguji harus sangat
menyadari praktik pengkodean yang aman. Keamanan sering kali menjadi salah satu
tujuan utama pengujian perangkat lunak. Penguji harus dapat menemukan masalah
keamanan dan mencegah serangan dari peretas dan pengguna naif yang mungkin
memasukkan kode berbahaya ke dalam aplikasi baik secara sadar atau tidak sadar.
Contoh
Contoh white box testing menggunakan teknik cyclomatic, di mana pada dasarnya
dengan cara menghitung jumlah siklomatik yaitu menghitung jumlah conditional I predikat
dan tambahkan 1. Misalnya terdapat lima conditional maka cyclomaticnya adalah 6.
Berikut cara menghitungnya :
1-2-3-4-5-10 yaitu suatu properti yang dimiliki orang lain, tidak mempunyai uang untuk
sewa
1-2-3-4-6-10 suatu properti yang dimiliki orang lain dan membayar sewa
1-2-3-10 yaitu properti yang dimiliki oleh pemain
1-2-7-10 yaitu properti yang tersedia dan tidak memiliki cukup uang
1-2-7-8-10 yaitu properti yang tersedia, memiliki uang dan tidak ingin membelinya
1-2-7-8-9-10 yaitu properti yang tersedia, memiliki uang dan membelinya.
Pengertian white box testing menurut para ahli, bahwa white box testing merupakan suatu
filosofi perencanaan uji kasus atau test case yang menggunakan struktur control yang
merupakan sebagai bagian dari perancangan perangkat komponen untuk menghasilkan
uji kasus atau test case.
Untuk menerapkan pernyataan dalam contoh pengujian kotak putih di atas, kasus uji
WhiteBox adalah
A = 1, B = 1
A = -1, B = -3
Daftar Pustaka
1. Paul Ammann, Jeff Offutt. Introduction to Software Testing 2nd Edition. Cambridge
University Press 2017. ISBN: 9781107172012
2. Charles S. Wasson. System Engineering Analysis, Design and Development:
Concepts, Principles and Practices. Wiley 2016. ISBN: 978-1-118-44226-5
3. Ali Mili, Fairouz Tchier. Software Testing Concept and Operation. Wiley 2015.
ISBN: 978-1-118-66287-8
4. Roger Pressman, Bruce Maxim. Software Engineering: A Practitioner’s Approach,
8th Edition. McGraw-Hill Education 2014. ISBN: 9780078022128 2.
5. Kenneth E. Kendall, Julie E. Kendall. Systems Analysis and Design 9th Edition.
Pearson 2013. ISBN: 978-0133023442
6. https://serupa.id/white-box-testing-definisi-teknik-jenis-tahapan-dsb/