Anda di halaman 1dari 11

1

MODUL PERKULIAHAN

W182100023 – Testing
dan Implementasi
Sistem Informasi

White Box Testing

Abstrak Sub-CPMK 1.2

Pengujian White Box Mampu menjelaskan metode


pengujian
white-box

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.

Testing dan Implementasi Sistem


2021
2 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
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.

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 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.

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.

Testing dan Implementasi Sistem


2021
3 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
b. Ketidaksesuaian Asumsi
Whitebox testing dapat mendeteksi asumsi yang tidak sesuai dengan kenyataan,
untuk kemudian di analisa dan diperbaiki.
c. 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. 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).

Testing dan Implementasi Sistem


2021
4 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
Berbagai teknik pengujian white box lainnya meliputi:

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.

4. Basis Path Testing


Basis path testing merupakan Teknik pengujian yang berguna untuk menguji
setiap kemungkinan jalur independen. Pengukurannya mengacu pada
kompleksitas kode program serta mendifinisikan alur yang akan dieksekusi.

Teknik ini memungkinkan penguji mendapatkan ukuran kompleksitas logical pada


perancangan prosedural. Selanjutnya penguji akan meggunakan penguhjian
sebagai petunjuk untuk mendefinisikan basis set pada jalur pengerjaan.
Testing dan Implementasi Sistem
2021
5 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
5. Compound Condition Coverage
Teknik ini penguji melakukan pengujian pada setiap kondisi. Mereka
menggunakan beberapa jalur dan komninasi jalur yang berbeda. Semua
kombinasi yang ada setidaknya harus diuji sebanyak satu kali.

6. Data Flow Coverage


Teknik ini melibatkan pengujian data dan variabel di dalam kode. Tujuannya untuk
memastikan data dan variabel sudah terdefinisi dengan benar. Data flow coverage
juga membantu mengidentifikasi kesalahan dalam kode.

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.

8. Control flow testing


Tujuan pengujian ini adalah memastikan semua pernyataan dijalankan dengan
benar. Selain itu, control flow testing juga membantu memastikan tidak ada
pengulangan atau rekursi tak terbatas.

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 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

Testing dan Implementasi Sistem


2021
6 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
mengembangkan beberapa baris kode, satu fungsi atau objek dan mengujinya untuk
memastikannya berfungsi sebagaimana mestinya.

Pengujian Unit membantu mengidentifikasi sebagian besar bug di awal siklus


pengembangan perangkat lunak. Bug yang diidentifikasi pada tahap ini biasanya lebih
mudah untuk diperbaiki.

• Memory Leak Testing


Memory leak atau kebocoran memori adalah penyebab utama dari aplikasi yang
berjalan lebih lambat. Quality assurance yang berpengalaman dalam mendeteksi
kebocoran memori sangat penting jika kita membutuhkan perangkat lunak yang
memiliki performa cepat karena memliki pengguna dan data yang berskala beesar.

• 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. Pada
dasarnya pengujian ini dilakukan untuk mendapatkan best approach serta clean code
yang dapat membuat kinerja serta maintainability perangkat lunak meningkat.

• 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

Testing dan Implementasi Sistem


2021
7 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
yang butuh perbaikan. Code review biasanya dilakukan oleh programmer yang
mengembangkan aplikasi, tetapi bisa dijuga dilakukan oleh tim peninjau kode khusus.

• Code Coverage Analysis


Teknik ini melibatkan pengukuran berapa banyak kode selama pengujian. Dengan
Code coverage analysis ini penguji dapat mengetahui area dari kode yang belum diuji
lalu memastikan bahwa seluruh jalur kode dijalankan.

• Static Code Analysis


Merupakan teknik pengujian white box yang berjalan secara otomatis. Analisis ini
melibatkan kode sumber dari perangkat lunak. Tujuannya untuk mengidentifikasi bug,
eror, ataupun potensi masalah.

Langkah atau Tahapan White Box Testing


Pada dasarnya tahapan pengujian kotak putih adalah persiapan, buat dan lakukan
pengujian, dan buat laporannya. Untuk lebih jelasnya, berikut adalah penjabaran dari
langkah atau tahapan white box testing.

1. Mendefinisikan semua alur logika


Tahap ini menganalisis seluruh alur logika yang terdapat pada sintaks kode
perangkat lunak agar kita mengetahui pada bagian mana saja pengujian akan
dilakukan.
2. Membangun kasus untuk digunakan dalam pengujian
Pada tahap ini seluruh alur logika yang telah didefinisikan dibuat uji kasusnya.
3. Melakukan pengujian
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.

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.

Testing dan Implementasi Sistem


2021
8 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
Umumnya pengujian white box digunakan untuk :
• Keputusan yang bersifat logis yang digunakan pada kondisi benar atau salah
• Membuat dan memberikan jaminan bahwa seluruh jalur yang independen hanya
menggunakan modul minimal satu kali
• Syarat yang dilakukan dalam menjalankan strategi pengujian white box
• Mengeksekusi seluruh pengulangan yang ada ke batas operasional dan nilai di setiap
kondisi maupun situasi
• Membuat dan membangun kasus yang digunakan pada tahap pengujian
• Mendefinisikan seluruh alur logika yang ada
• Pengujian yang dilaksanakan harus menyeluruh
• Hasil pengujian yang sudah didapatkan akan dievaluasi kembali

Bagaimana Anda melakukan Pengujian White Box?


Kami telah membaginya menjadi dua langkah dasar untuk memberi Anda penjelasan
sederhana tentang pengujian white box. Inilah yang dilakukan penguji saat menguji suatu
aplikasi menggunakan teknik pengujian white box:

LANGKAH 1) Pahami Source Code

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.

LANGKAH 2) Buat Test Case dan Eksekusi


Langkah dasar kedua dalam pengujian white box melibatkan pengujian kode sumber
aplikasi untuk aliran dan struktur yang tepat. Salah satu caranya adalah dengan menulis
lebih banyak kode untuk menguji kode sumber aplikasi. Penguji akan mengembangkan
tes kecil untuk setiap proses atau rangkaian proses dalam aplikasi. Metode ini
mengharuskan penguji memiliki pengetahuan mendalam tentang kode dan sering

Testing dan Implementasi Sistem


2021
9 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
dilakukan oleh pengembang. Metode lainnya termasuk Pengujian Manual, pengujian
coba-coba, dan penggunaan alat pengujian seperti yang akan kami jelaskan lebih lanjut di
artikel ini.

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.

Testing dan Implementasi Sistem


2021
10 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana
Tujuan pengujian WhiteBox dalam rekayasa perangkat lunak adalah untuk memverifikasi
semua cabang keputusan, loop, dan pernyataan dalam kode.

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/

Testing dan Implementasi Sistem


2021
11 Informasi Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Ariyani Wardhana

Anda mungkin juga menyukai