Pengujian White Box Kustanto 11/27/2018 Pengujian white box
White Box White box testing adalah pengujian yang didasarkan pada pengecekan terhadap detail perancangan, menggunakan struktur kontrol dari desain program secara procedural untuk membagi pengujian ke dalam beberapa kasus pengujian. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk mendapatkan program yang benar secara 100%. 11/27/2018 Pengujian white box
Pengujian white box Untuk mengetahui cara kerja suatu perangkat lunak secara internal. Untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur kendali dari prosedur yang dirancang. 11/27/2018 Pengujian white box
Pelaksanaan pengujian white box Menjamim seluruh independent path dieksekusi paling sedikit satu kali. Independent path adalah jalur dalam program yang menunjukkan paling sedikit satu kumpulan proses ataupun kondisi baru. Menjalani logical decision pada sisi dan false. Mengeksekusi pengulangan (looping) dalam batas-batas yang ditentukan. Menguji struktur data internal. 11/27/2018 Pengujian white box
Langkah-langkah white box Mendefinisikan semua alur logika Membangun kasus untuk digunakan dalam pengujian Melakukan pengujian. 11/27/2018 Pengujian white box
Kelebihan White Box Testing Kesalahan logika. Digunakan pada sintaks ‘if’ dan pengulangan. Dimana White Box Testing akan mendeteksi kondisi-kondisi yang tidak sesuai dan mendeteksi kapan proses pengulangan akan berhenti. Ketidaksesuaian asumsi. Menampilkan asumsi yang tidak sesuai dengan kenyataan, untuk di analisa dan diperbaiki. Kesalahan ketik. Mendeteksi bahasa pemrograman yang bersifat case sensitive. 11/27/2018 Pengujian white box
Kelemahan White Box Testing Untuk perangkat lunak yang tergolong besar, White Box Testing dianggap sebagai strategi yang tergolong boros, karena akan melibatkan sumber daya yang besar untuk melakukannya. 11/27/2018 Pengujian white box
Jenis white box 1. Basis path:: Metode identifikasi yang berdasarkan pada jalur,, struktur atau koneksi 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. 11/27/2018 Pengujian white box
Jenis white box 2. 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. 11/27/2018 Pengujian white box
Jenis white box 3. 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. Sumber daya (resources) yang dibutuhkan selama proses transfer dilakukan pada jalur. 11/27/2018 Pengujian white box
Control Structur Testing, meliputi; Condition testing:: Suatu metode disain test case yang memeriksa kondisi logika yang terdapat pada modul program. Data flow testing:: Metode data flow testing memilih jalur program berdasarkan pada lokasi dari definisi dan penggunaan variabel-variabel pada program. Loop testing:: suatu teknik white box testing yang berfokus pada validitas konstruksi loop secara eksklusif. Ada 4 kelas dari loop, yaitu; Simple Loops Nested Loops Concatenated Loops Unstructured Loops 11/27/2018 Pengujian white box
Contoh kasus : Imperial Taxi Services: V(G) = R = 6 V(G) = E – N + 2 = 21 – 17 + 2 = 6 V(G) = P + 1 = 5 + 1 = 6 Rumus : V(G) = R = E – N + 2 = P + 1 Keterangan : V(G) = cyclometic complexity graph R = jumlah region dalam program flow graph E = jumlah edge N = jumlah node P = jumlah decision (percabangan) 11/27/2018 Pengujian white box
Perbedaan White Box & Black Box White box (Struktural) Dilakukan oleh penguji yang mengetahui tentang QA. Melakukan testing pada software/program aplikasi menyangkut security dan performance program tersebut (meliputi tes code, desain implementasi, security, data flow, software failure). Dilakukan seiring dengan tahapan pengembangan software atau pada tahap testing. Metode BlackBox (Fungsional) Dilakukan oleh penguji Independent. Melakukan pengujian berdasarkan apa yang dilihat, hanya fokus terhadap fungsionalitas dan output. Pengujian lebih ditujukan pada desain software sesuai standar dan reaksi apabila terdapat celah-celah bug/vulnerabilitas pada program aplikasi tersebut setelah dilakukan white box testing. Dilakukan setelah white box testing.
Contoh I Proseslogin.php 11/27/2018 Pengujian white box
1. Program 11/27/2018 Pengujian white box
2. Basis Path R1 R2 R4 R3 11/27/2018 Pengujian white box A0-A5 A13 A20 15 A8 R4 A16 A9 A17 A10 R3 A18 A11 A19 A12 11/27/2018 Pengujian white box
3. Complexity Cyclometic 1. V (G) Region = V (4) 2. V (G) E – N + 2 = 23 – 21 + 2 = 4 3. V (G) P + 1 = 3 + 1 =4 11/27/2018 Pengujian white box
4. Independent Path 1. A0-A5 – A6 – A17 – A18 – A19 – A20 – A21 2. A0-A5 – A6 – A7 – A8 – A9 – A10 – A13 – A14 – A17 – A18 – A19 – A20 – A21 3. A0-A5 – A6 – A7 – A8 – A9 – A10 – A11 – A12 – A13 – A14 – A17 – A19 – A19 – A20 – A21 4. A0-A5 – A6 – A7 – A8 – A9 – A10 – A11 – A12 – A13 – A14 – A15 – A16 – A17 – A18 – A19 – A20 – A21 11/27/2018 Pengujian white box
5. Test Case III. 1. A(6) = TRUE 2. A(10) = TRUE 3. A(14) = FALSE IV. I. 1. A(6) = FALSE 2. A(10) = FALSE 3. A(14) = FALSE II. 1. A(6) = TRUE 11/27/2018 Pengujian white box
Contoh II Program Logout 11/27/2018 Pengujian white box
1. Program 11/27/2018 Pengujian white box
2. Basis Path A0 A1 A2 A3 A4 11/27/2018 Pengujian white box
3. Cyclometri complexity: a. V (G) Region = V (1) b. V (G) E – N + 2 = 4 – 5 + 2 = 1 c. V (G) P + 1 = 0 + 1 = 1 11/27/2018 Pengujian white box
4. Independent Path a. A0 – A1 – A2 – A3 – A4 11/27/2018 Pengujian white box
5. Test Case Null 11/27/2018 Pengujian white box
Latihan Edit.php A0 <?php A1 include("koneksi.php"); A2 $no_a=$_GET['no_a']; A3 $no=$_POST['noi']; A4 $go=$_POST['go']; A5 $query=mysql_query("UPDATE gol SET go='$go' WHERE no='$no_a'") or die (mysql_error()); A6 if($query){ A7 header("location:tmbktg.php"); A8 } A9 else { A10 header("location:tmbktg.php"); A11 }?> 11/27/2018 Pengujian white box
Cari: Basis path Complexity Cyclometic Independent Path Test Case 11/27/2018 Pengujian white box