Design Test Case White Box Testing
Daftar Isi
- Link Materi
- Pendahu1uan
- Pengertian White Box Testing
- Kelebihan dan Kekurangan White Box Testing
- Jenis-Jenis White Box Testing
- Langkah atau Tahapan White Box Testing
- Teknik-Teknik Pengujian
- Trik Pengujian
- Refrensi
Link Materi
Materi pertemuan 3. White Box Testing
Pendahu1uan
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.
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:
- Menjamin bahwa semua jalur independen dalam sebuah modul telah dieksekusi setidaknya satu kali.
- Melakukan semua keputusan logis pada sisi benar dan yang salah.
- Melaksanakan semua loop pada batas mereka dan dalam batas-batas operasional mereka.
- 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.
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.
- 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.
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 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.
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.
- 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. - Membangun kasus untuk digunakan dalam pengujian
Pada tahap ini seluruh alur logika yang telah didefinisikan dibuat uji kasusnya. - 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.
Teknik-Teknik Pengujian
Berikut ini adalah teknik yang dapat digunakan untuk melakukan white box testing pada perangkat lunak:
- Basis path testing
Teknik pertama adalah basis path testing. Teknik bertujuan untuk mengukur kompleksitas kode program dan mendefinisikan alur yang dieksekusi.
- Branch coverage
Kemudian ada branch coverage. Pengujian ini dirancang agar setiap branch code diuji setidaknya satu kali.
- Condition coverage
Selanjutnya adalah teknik condition coverage, tujuannya untuk menguji seluruh kode agar menghasilkan nilai TRUE atau FALSE. Dengan begitu, tester dapat memastikan perangkat lunak dapat bekerja dan mengeluarkan output sesuai dengan input dari pengguna.
- Loop testing
Ada juga teknik loop testing. Pengujian ini yang wajib dilakukan untuk menguji berbagai perulangan/looping yang ada dalam program, seperti do-while, for, dan while. Dalam pengujian ini kamu juga dapat memeriksa kondisi dari perulangan, apakah sudah berjalan dengan benar atau tidak.
- Multiple condition coverage
Berikutnya adalah multiple condition coverage. Teknik ini dilakukan untuk menguji seluruh kombinasi dari kode yang mungkin digunakan dalam berbagai kondisi. Seluruh kombinasi harus diuji minimal satu kali, tujuannya untuk memastikan perangkat lunak agar berjalan dengan baik.
- Statement coverage
Teknik terakhir adalah statement coverage. Teknik ini dilakukan minimal satu kali untuk menguji setiap statement dalam perangkat lunak. Dengan pengujian ini, kamu dapat mengetahui kode-kode yang error sehingga dapat segera memperbaikinya.
Trik 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.
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
Langkah untuk melakukan pengujian white test yaitu :
- Mencari tahu program atau fitur yang ingin kamu tes
- Alur yang mungkin ada di dalam diagram alur disiapkan
- Mengidentifikasi semua jalur yang mungkin dari diagram alur
- Spesifikasi input dituliskan, kondisi pelaksanaan hingga hasil yang diharapkan dan prosedur pengujian.
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.
White box testing dan black box testing sama-sama merupakan software testing, di mana keduanya memiliki perbedaan. Berikut akan kami jelaskan:
White box testing atau struktural
- Dilakukan pengujian white box erat kaitannya dengan performa dan keamanan dari suatu software termasuk pengujian pada kode, alur data, implementasi, dan kegagalan dalam software.
- Pengujian ini dilakukan oleh orang yang memahami struktural internal serta kode dari software.
- Secara beriringan dilakukan dengan tahap development software.
Black box testing atau fungsional:
- Pengujian yang dilakukan sesuai hal yang diamati dan hanya fokus pada fungsional serta output dari software. Di mana dilakukan pengujian guna menguji desain suatu perangkat lunak.
- Pengujian yang dilakukan secara independen yang tak membutuhkan penguji yang tahu dengan baik menulis code program.
Black box testing dilakukan sesudah white box testing berakhir.
Refrensi
https://itbox.id/blog/white-box-testing-adalah/
https://serupa.id/white-box-testing-definisi-teknik-jenis-tahapan-dsb/
https://123dok.com/article/cakupan-pernyataan-cabang-dan-jalur-definisi-test-case.q7oev0ky
https://www.dicoding.com/blog/white-box-testing/
https://glints.com/id/lowongan/white-box-testing-adalah/
https://www.mahendrawardana.com/id/testing-dan-implementasi-si/design-test-case-white-box-testing
https://www.youtube.com/@MahendraWardana