Pengujian Perangkat Lunak Heri Setiawan
White Box Testing
White-Box Testing Ujicoba Whitebox merupakan metode desain uji kasus yang menggunakan struktur kontrol dari desain prosedural untuk menghasilkan kasus-kasus uji. Dengan menggunakan metode ujicoba whitebox, para pengembang software dapat menghasilkan kasus-kasus uji yang : 1. Menjamin bahwa seluruh independent paths dalam modul telah dilakukan sedikitnya satu kali, 2. Melakukan seluruh keputusan logikal baik dari sisi benar maupun salah, 3. Melakukan seluruh perulangan sesuai batasannya dan dalam batasan operasionalnya 4. Menguji struktur data internal untuk memastikan validitasnya
Mengapa menghabiskan banyak waktu dan usaha dengan menguji logikal software??? Hal ini dikarenakan sifat kerusakan alami dari software itu sendiri, yaitu : 1. Kesalahan logika dan kesalahan asumsi secara proposional terbalik dengan kemungkinan bahwa alur program akan dieksekusi. Kesalahan akan selalu ada ketika mendesain dan implementasi fungsi, kondisi atau kontrol yang keluar dari alur utama. Setiap harinya pemrosesan selalu berjalan dengan baik dan dimengerti sampai bertemu kasus spesial yang akan mengarahkannya kepada kehancuran. 2. Sering percaya bahwa alur logikal tidak akan dieksekusi ketika dikenyataannya, mungkin akan dieksekusi dengan basis regular. Alur logika program biasanya berkebalikan dari intuisi, yaitu tanpa disadari asumsi mengenai alur kontrol dan data dapat mengarahkan pada kesalahan desain yang tidak dapat terlihat hanya dengan satu kali ujicoba.
3. Kesalahan typographical (cetakan) bersifat random. Ketika program diterjemahkan kedalam kode sumber bahasa pemrograman, maka akan terjadi kesalahan pengetikan. Banyak yang terdeteksi dengan mekanisme pemeriksaan sintaks, tetapi banyak juga yang tidak terdeteksi sampai dengan dimulainya ujicoba. Karena alasan tersebut diatas, maka ujicoba whitebox testing diperlukan selain blackbox testing
Kelebihan Yang Terdapat Di White Box Testing Kesalahan Logika Menggunakan sintax if dan sintax pengulangan. Dan langkah selanjutnya metode white box testing ini akan mencari dan mendeteksi segala kondisi yang di percaya tidak sesuai dan mencari kapan suatu proses perulangan di akhiri. Ketidaksesuaian Asumsi Menampilkan dan memonitori beberapa asumsi yang di yakini tidak sesuai dengan yang di harapkan atau yang akan di wujudkan, untuk selanjutnya akan di analisa kembalai dan kemudian di perbaiki. Kesalahan Pengetikan Mendeteksi dan mencarian bahasa-bahasa pemograman yang di anggap bersifat case sensitif.
Kelemahan White Box Testing Pada perangkat lunak yang jenisnya besar, metode white box testing ini dianggap boros karena melibatkan banyak sumberdaya untuk melakukannya.
UJICOBA BERBASIS ALUR (BASIS PATH TESTING) Ujicoba berbasis alur merupakan teknik ujicoba whitebox pertama yang diusulkan oleh Tom McCabe. Metode berbasis alur memungkinkan perancang kasus uji untuk menghasilkan ukuran kompleksitas logikal dari desain prosedural dan menggunakan ukuran ini untuk mendefinisikan himpunan basis dari alur eksekusi. Kasus uji dihasilkan untuk melakukan sekumpulan basis yang dijamin untuk mengeksekusi setiap perintah dalam program, sedikitnya satu kali selama ujicoba.
Notasi graf Alur (Path Graph Notation) Notasi sederhana untuk merepresentasikan alur kontrol disebut graf alur (flow graph), seperti gambar dibawah ini :
Pengujian white-box (glass box), adalah metode desain test case yang menggunakan struktur kontrol desain prosedural untuk memperoleh test case. Dengan menggunakan metode pengujian white-box, perekayasa sistem dapat melakukan test case untuk memberikan jaminan bahwa [19]: Semua jalur independen pada suatu modul ditelusuri minimal 1 kali Semua jalur keputusan logis True/False dilalui Semua loop dieksekusi pada batas yang tercantum dan batas operasionalnya Struktur data internal digunakan agar validitas terjamin
Pengujian white-box bisa dilakukan dengan pengujian basis path, metode ini merupakan salah satu teknik pengujian struktur kontrol untuk menjamin semua statemen dalam setiap jalur independen program dieksekusi minimal 1 kali. Perhitungan jalur independen dapat dilakukan melalui metrik Cyclomatic Complexity. Sebelum menghitung nilai Cyclomatic Complexity, harus diterjemahkan desain prosuderal ke grafik alir, kemudian dibuat flow graphnya, seperti pada gambar di bawah ini.
Flowchart
Flow Graft Dari gambar flowgraph di atas didapat : Path 1 = 1 11 Path 2 = 1 2 3 4 5 10 1 11 Path 3 = 1 2 3 6 8 9 10 1 11 Path 4 = 1 2 3 6 7 9 10 1 11
Path 1,2,3,4 yang telah didefinisikan diatas merupakan basis set unt uk diagram alir. Cyclomatic complexity digunakan untuk mencari jumlah path dalam satu flowgraph. Dapat dipergunakan rumusan sebagai berikut : 1. Jumlah region grafik alir sesuai dengan cyclomatic complexity. 2. Cyclomatix complexity V(G) untuk grafik alir dihitung dengan rumus: V(G) = E N + 2. (1) Dimana: E = jumlah edge pada grafik alir N = jumlah node pada grafik alir
Cyclomatix complexity V(G) juga dapat dihitung dengan rumus: V(G) = P + 1.. (2) Dimana P = jumlah predicate node pada grafik alir Dari Gambar di atas dapat dihitung cyclomatic complexity: 1. Flowgraph mempunyai 4 region 2. V(G) = 11 edge 9 node + 2 = 4 3. V(G) = 3 predicate node + 1 = 4 Jadi cyclomatic complexity untuk flowgraph adalah 4
Nilai Cyclomatic Complexity Cyclomatic Complexity yang tinggi menunjukkan prosedur kompleks yang sulit untuk dipahami, diuji dan dipelihara. Ada hubungan antara Cyclomatic Complexity dan resiko dalam suatu prosedur. Hubungan antara Cyclomatic Complexity dan Resiko CC Type of Procedure Risk 1-4 A simple procedure Low 5-10 A well structured and stable procedure Low 11-20 A more complex procedure Moderate 21-50 A complex procedure, alarming High >50 An error-prone, extremely troublesome, untestable procedure Very high
Biasanya batas maksimum nilai yang dapat diterima Cyclomatic Complexity adalah 10. Nilai-nilai lain, seperti 15 atau 20, juga telah diusulkan. Terlepas dari batas yang tepat, jika Cyclomatic Complexity melebihi 20, harus dipertimbangkan hal itu. Prosedur dengan kompleksitas yang tinggi cyclomatic harus disederhanakan atau dipecah menjadi beberapa prosedur yang lebih kecil.
Grafik di bawah ini menunjukkan korelasi Cyclomatic Complexity (CC) nilai-nilai pada tingkat file (x-sumbu) terhadap kemungkinan kesalahan yang ditemukan dalam file-file (y-axis). Hasil penelitian menunjukkan bahwa file yang memiliki nilai CC 11 memiliki probabilitas terendah rawan kesalahan (28%). File dengan nilai CC 38 memiliki probabilitas 50% menjadi rawan kesalahan. File yang mengandung nilai-nilai CC dari 74 dan naik sampai dengan 98% ditambah probabilitas rawan kesalahan.
Contoh 1 : Pengujian Basis Path... 1 9
Pengujian Basis Path... 2 0
Pengujian Basis Path... 2 1
Pengujian Basis Path... Menentukan jalur independen menggunakan metrik Kompleksitas Siklomatis : 1. V(G) = jumlah region 3 2. V(G) = E N + 2 (11-10) + 2 = 3 3. V(G) = P + 1 2 + 1 = 3 dimana E = jml busur/link N= jml simpul 2 2
Contoh 2 : 1 bottom > top 2 while bottom <= top 3 if (elemarray [mid] == key 8 4 (if (elemarray [mid]< key 9 5 6 7 Binary search flow graph
Independent paths 1, 2, 3, 8, 9 1, 2, 3, 4, 6, 7, 2, 8, 9 1, 2, 3, 4, 5, 7, 2, 8, 9 1, 2, 8, 9 Pengujian Basis Path... Test cases harus ditentukan sehingga semua path tsb tereksekusi. 24
Pengujian Basis Path... Graph Metrik adalah matrik empat persegi yang mempunyai ukuran yang sama dengan jumlah node pada flowgraph metrik merupakan software yang dikembangkan untuk membantu uji coba basis path atau struktur data Masing-masing baris dan kolom mempunyai hubungan dengan node yang telah ditentukan dan pemasukan data matrik berhubungan dengan hubungan (edge) antar node. 2 5
Pengujian Basis Path...
Pengujian Basis Path...
Pengujian Basis Path... Hubungan bobot menyediakan tambahan informasi tentang aliran kontrol. Secara simpel hubungan bobot dapat diberi nilai 1 jika ada hubungan antara node atau nilai 0 jika tidak ada. Dapat juga hubungan bobot diberi tanda dengan : Kemungkinan link (edge) dikerjakan Waktu yang digunakan untuk proses selama traversal dari link Memori yang diperlukan selama traversal link Sumber daya yang diperlukan selama traversal link 2 8
Soal : Latihan Pengujian Basis Path... Tentukan independen path..? 2 9
Latihan Pengujian Basis Path... Jawab : Dari gambar: Path 1 = 1-11 Path 2 = 1-2 - 3-4 - 5-10 - 1-11 Path 3 = 1-2 - 3-6 - 8 9-10 - 1-11 Path 4 = 1-2 - 3-6 - 7-9 - 10-1 - 11 Path 1,2,3,4 yang telah didefinisikan diatas merupakan basis set untuk diagram alir. 3 0
Latihan Pengujian Basis Path... Flowgraph mempunyai 4 region V(G) = 11 edge - 9 node + 2 = 4 V(G) = 3 predicate node + 1 = 4 Jadi cyclomatic complexity untuk flowgraph adalah 4 3 1
Soal : 2. Latihan Pengujian Graph Metrik... 3 2
Jawab : 2. Latihan Pengujian Graph Metrik... awal akhir 2-1=1 2-1=1 1-1=0 2-1=1 1-1=0 1-1=0 1-1=0 1-1=0 3 + 1 = 4
Terima Kasih