PENERAPAN METODA WHITE-BOX TESTING UNTUK MENGETAHUI KESESUAIAN KEBUTUHAN NON-FUNGSIONAL PRODUK PADA PERANGKAT A B S T R A K

dokumen-dokumen yang mirip
PENGUJIAN PERANGKAT LUNAK

Nama : Rendi Setiawan Nim :

Dibuat Oleh : 1. Andrey ( )

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

BAB 6 METODE PENGUJIAN

1. Dr. I Ketut Eddy Purnama, ST.,MT. 2. Ahmad Zaini, ST.,M.Sc. Asti Nurhayati

MAKALAH DESAIN TEST CASE. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

SOFTWARE TESTING. Ratna Wardani

Teknik Informatika S1

TEKNIK PENGUJIAN PERANGKAT LUNAK PERTEMUAN 14

14. PENGUJIAN PERANGKAT LUNAK Dasar-dasar Pengujian 14.2 Teknik Pengujian 14.3 Strategi Pengujian dan V&V

DESAIN TEST CASE. Tugas ke 11 Rekayasa Perangkat Lunak

TESTING PROGRAM. Pertemuan Nurul Adhayanti

White Box Testing dan Black Box Testing, Perbedaannya Serta Contohnya.

Tugas Rekayasa Perangkat Lunak

TEKNIK PENGUJIAN PERANGKAT LUNAK PERTEMUAN 14

SATUAN ACARA PERKULIAHAN MATA KULIAH TESTING & IMPLEMENTASI SISTEM (KA) KODE / SKS : KK / 3 SKS

A. Pengujian Perangkat Lunak

TESTING SW SE6161 Perancangan dan Analisis Perangkat Lunak 1

Teknik Pengujian (2) Whitebox Testing

Hubungan antara rencana pengujian dan proses pengembangan system. Tim RPL 1 3

TEKNIK PENGUJIAN PERANGKAT LUNAK. Ign.F.Bayu Andoro.S, M.Kom

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

Teknik Informatika S1

TEKNIK PENGUJIAN PERANGKAT LUNAK (Software Testing Techniques)

PENGUJIAN PERANGKAT LUNAK (SOFTWARE TESTING)

Silabus dan Satuan Acara Perkuliahan

Software Testing Technique

Teknik Unit Testing. Pressman, Roger S/W Engineering edisi 5/7 chapter 17

Teknik Informatika S1

TESTING & IMPLEMENTASI SISTEM 4KA. Teknik Pengujian Perangkat Lunak. helen.staff.gunadarma.ac.id

Materi. Definisi Test Case White Box Testing Blackbox Testing Teknik Testing yang Lain Penggunaan Metode Tes

TUGAS MAKALAH. Testing dan Implementasi Sistem White Box Testing

Pengujian Software. Teknik Pengujian Software. Apa yang Ditunjukan Pengujian. Tujuan Pengujian. Prinsip Pengujian. Testability : Kemudahan Diuji

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Black-Box Testing. Julian Supardi, M.T. Sumber Slide: Oerip S. Diterjemahkan Oleh: Rosa Ariani Sukamto.

SATUAN ACARA PERKULIAHAN MATA KULIAH TESTING & IMPLEMENTASI SISTEM (JURUSAN SISTEM INFORMASI) KODE / SKS : AK / 3 SKS

Testing dan Implementasi Sistem

Testing is the exposure of a system to trial input to see wheter it produces corect output Adalah proses eksekusi suatu program dengan maksud

Sistem (3 sks) Black Box Testing (1) Black Box Testing

Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak

REKAYASA PERANGKAT LUNAK. 3 sks Sri Rezeki Candra Nursari reezeki2011.wordpress.com

Gambar (a) PDL for test design

Pengujian Sistem Informasi Pengelolaan Pelatihan Kerja Upt. BLK Kabupaten Kudus dengan Metode Whitebox Testing

TEKNIK PENGUJIAN PERANGKAT LUNAK

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

White Box Testing Merupakan metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case.

Teknik-Teknik Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

Rekayasa Perangkat Lunak TI1153

BAB II LANDASAN TEORI. sehingga komputer dapat memproses input menjadi output.

ABSTRAKSI DEKOMPOSISI PENGUJIAN Dalam REKAYASA PERANGKAT LUNAK

DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

Pengujian Perangkat Lunak

BAB II LANDASAN TEORI. pengertian. Secara garis besar ada dua kelompok pendekatan, yaitu:

CONTOH PENGUJIAN BLACK BOX DAN WHITE BOX

Rancang Bangun Aplikasi Web Pencarian Rute Terpendek Antar Gedung di Kampus Menggunakan Algoritma Floyd-warshall

BAB III METODOLOGI PENELITIAN. dalam pengumpulan data atau informasi guna memecahkan permasalahan dan

BAB II LANDASAN TEORI. implementasi serta pasca implementasi.(rizky, 2011:21). performasi dan fungsi yang diinginkan.

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB III OBJEK DAN METODE PENELITIAN

TESTING DAN IMPLEMENTASI SISTEM APLIKASI DATA MATA KULIAH

BAB V IMPLEMENTASI SISTEM. tersebut siap diterapkan atau diimplementasikan. Tahap Implementasi Sistem

SATUAN ACARA PERKULIAHAN(SAP)

Definisi Black Box. pemenuhan sistem atau komponen dengan kebutuhan fungsional tertentu. q Menurut Myers (1979) :

SATUAN ACARA PERKULIAHAN PROGRAM STUDI : S1 SISTEM INFORMASI

BAB I PENDAHULUAN 1.1 Latar Belakang

Testing dan Implementasi Sistem Lukman Hakim dan Suwanto R

BAB II LANDASAN TEORI. pembelian dilakukan dengan mengubah bentuk barang. 2003). Menurut Soemarso S.R (1994) kegiatan pembelian dalam perusahaan

BAB 5 FAKTOR PENGUJIAN

BAB I PENDAHULUAN 1.1. Latar belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB II LANDASAN TEORI

Rekayasa Perangkat Lunak Pengujian Perangkat Lunak. Teknik Informatika UNIKOM

METODE PENGUJIAN PERANGKAT LUNAK

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB III OBJEK DAN METODE PENELITIAN

PENDEKATAN WHITE BOX TESTING UNTUK MENENTUKAN KUALITAS PERANGKAT LUNAK DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN C++ Sa diyah Noor Novita Alfisahrin

TINJAUAN PUSTAKA. Pengujian adalah proses eksekusi program untuk menemukan kesalahan.

BAB III OBJEK DAN METODE PENELITIAN. berlokasi di Jl. Leuwi Panjang No. 111 Bandung Telpon Terbaik dalam pelayanan servis di bengkel.

SATUAN ACARA PERKULIAHAN (SAP)

SATUAN ACARA PERKULIAHAN MATA KULIAH REKAYASA PERANGKAT LUNAK KODE/SKS : TI11. C342 / 2 SKS

Testing dan Implementasi Sistem Informasi

BAB II LANDASAN TEORI

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB I PENDAHULUAN 1.1 Latar Belakang

Dasar-dasar Pengujian Perangkat Lunak. Minggu ke 5

BAB I PENDAHULUAN 1.1 Latar Belakang

Teknik Pengujian (3) Blackbox Testing

Rekayasa Perangkat Lunak

Teknik Informatika S1

UNIVERSITAS MERCU BUANA FAKULTAS : ILMU KOMPUTER PROGRAM STUDI : SISTEM INFORMASI

BAB V IMPLEMENTASI SISTEM

PENGUJIAN PERANGKAT LUNAK DENGAN MENGGUNAKAN METODE WHITE BOX DAN BLACK BOX

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

BAB II LANDASAN TEORI. harapan akan memperoleh laba dari adanya transaksi-transaksi tersebut dan. atas barang atau jasa dari pihak penjual ke pembeli.

Teknik Informatika S1

SATUAN ACARA PERKULIAHAN (SAP)

Transkripsi:

PENERAPAN METODA WHITE-BOX TESTING UNTUK MENGETAHUI KESESUAIAN KEBUTUHAN NON-FUNGSIONAL PRODUK PADA PERANGKAT Oleh : Yulison Herry Chrisnanto A B S T R A K Pengujian merupakan aspek penting dalam proses pembangunan perangkat lunak komputer, karena produk perangkat lunak harus dapat merepresentasikan seluruh persyaratan yang telah ditetapkan pada awal produk tersebut diinginkan, oleh karena itu melalui proses pembangunan yang terkendali akan sampai pada area pengujian. Hasil pengujian akan memberikan indikasi keberhasilan proyek perangkat lunak. Serangkaian pengujian perlu dilakukan, untuk memastikan baik sisi fungsionalitas ataupun non-fungsionalitas sistem dapat diukur kesesuainya. Tulisan ini lebih membahas pada pengujian menggunakan metoda white-box testing yang akan digunakan untuk menguji sisi kebutuhan non-fungsionalitas dari sistem perangkat lunak. Pengujian diarahkan pada skenario menemukan bugs dari kode program. Pada kasus pengujian pada tulisan ini yaitu menguji algoritma pencarian secara biner yang diimplementasikan pada sebuah bahasa pemrograman, dimana kesesuaian antara algoritmanya dengan implementasi pada pengkonstruksi kodenya (bahasa yang dipilih adalah bahasa C). Semua jalur independen pada setiap keputusan logis harus dilalui, sehingga pengukuran dapat dilakukan. Kata Kunci : pengujian, white-box testing, kebutuhan non-fungsional (NFR) PENDAHULUAN Perangkat lunak komputer merupakan bagin penting dalam dunia teknologi informasi dan komunikasi, karena melalui perangkat lunak ini, seluruh kemampuan sebuah sistem komputasi dapat memenuhi keinginan pelanggan ketika dioperasikan. Perangkat lunak dibangun melalui konsep logik yang menjadi fondasinya, perangkat lunak tidak mengalami masa usang (wear out), namun demikian perangkat lunak harus senantiasa memenuhi perubahan kebutuhan melalui siklusnya (software developmen life cycle). Serangkaian pengujian sangat diperlukan untuk mengetahui tingkat kesesuaian dalam pemenuhan kebutuhan yang dipersyaratkan, keberhasilan dalam pengujian akan ditentukan juga oleh seberapa baik dan cermat penyusunan skenario uji. Dalam proses rekayasa perangkat lunak, beberapa pengujian, antara lain blackbox testing dan white-box testing. Pengujian ditujukan untuk meningkatkan mutu dari perangkat lunak serta melakukan verifikasi dan validasi. Pendekatan black-box testing merupakan metoda pengujian yang diturunkan dari spesifikasi kebutuhan secara fungsional tanpa memperhatikan struktur dari kode program, dikenal juga dengan istilah data-driven, input/ output driven atau requirement-based PENERAPAN METODA WHITE-BOX TESTING ( Yulison Herry Chrisnanto) 35

testing, karena hanya aspek fungsional dari perangkat lunak yang akan diuji. Berbeda dengan black-box testing, white-box testing, dimana perangkat lunak dipandang sebagai kotak transparan yang nampak terlihat kode programnya. Pada pengujian white-box testing, kasus uji diturunkan dari struktur kode program. White-box testing sering disebut sebagai glass-box testing, logic-driven testing atau designbased testing. Pengujian white-box, sering digunakan untuk mendapatkan keselahan teknis dari struktur kode program melalui serangkaian kasus uji yang dirancang untuk memastikan setiap alur logika dalam kode program terawasi dan dapat dieksekusi secara tepat. Pada tulisan ini akan dibahas aspek pengujian yang dirancang untuk medapatkan kesesuaian kebutuhan nofungsional dari sebuah perangkat lunak. Kebutuhan Perangkat Lunak Kebutuhan perangkat lunak adalah deskripsi lengkap dari perilaku sebuah sistem perangkat lunak yang akan dikembangkan yang berisi sekumpulan use cases yang menggambarkan interaksi pemakai sistem dengan perangkat lunak. Kebutuhan perangkat lunak memuat kebutuhan fungsional sistem dan kebutuhan non-fungsional sistem dengan batasan yang ditetapkan serta dapat diimplementasikan. Kebutuhan perangkat lunak didokumentasikan secara lengkap memuat seluruh kebutuhan dari perangkat lunak yang akan dekembangkan. Keberhasilan dari produk perangkat lunak akan ditentukan oleh pemahaman yang baik dari kebutuhan itu sendiri. Produk perangkat lunak harus memenuhi seluruh kebutuhan yang ditetapkan oleh pelanggan, oleh karena itu sistem perangkat lunak harus menyediakan layanan-layanan yang dibutuhkan untuk dapat dioperasikan. Kebutuhan Fungsional Merupakan pernyataan layanan yang menggambarkan kemampuan (behaviors functions atau services) sistem perangkat lunak untuk memenuhi aspek fungsional. Kebutuhan perangkat lunak mengacu pada persyaratan sistem yang sangat penting dalam proses rekayasa perangkat lunak, seperti kebutuhan spesifikasi teknis, parameter rancangan sistem, pengolahan data dan lain-lain. Berbeda dengan kebutuhan non-fungsional yang difokuskan pada pemenuhan persyaratan yang didasarkan pada parameter kinerja sistem, atribut mutu perangkat lunak, kehandalan dan keamanan, waktu respon. Dengan demikian kebutuhan fungsional sistem lebih mengarah pada fungsi apa yang diinginkan pelanggan dapat dipenuhi oleh sistem secara baik. Dalam pemodelan sistem, kebutuhan fungsional harus menggambarkan aktivitas sistem yang digambarkan melalui use cases. Beberapa tipe dari kebutuhan fungsional antara lain : aturan bisnis; fungsi-fungsi administratif, kebutuhan pelaporan, histori data, kebutuhan regulator. Kebutuhan Non-Fungsional Kebutuhan non-fungsional merupakan serangkaian atribut mutu atau karakteristik mutu dari perangkat lunak komputer. Kebutuhan nonfungsional akan memberikan batasan pada kebutuhan fungsional sistem, misalnya sebuah sistem dapat mencatat transaksi penjualan pada sebuah swalayan dengan benar, namun dalam ARISTOTELES VOL. 10 NO. 1, OKTOBER 2012 : HAL. 35 44 36

proses pencatatan tersebut dibutuhkan respon time dari sistem yang dipersyaratkan pada ukuran tertentu, apabila persyaratan waktu respon tidak dipenuhi oleh sistem, maka kebutuhan secara keseluruhan menjadi tidak tercapai. Kebutuhan non-fungsional atau dikenal dengan NFR, diarahkan pada pendefinisian atribut mutu sistem yang dipersyaratkan, antara lain : kinerja waktu respon, throughput, utilisasi, skalabilitas sistem, kapasitas, ketersediaan, kehandalan, kemampuan memulihkan kegagalan sistem, keamanan, pengaturan, integritas data, interoperability. Setiap persyaratan baik fungsional maupun non-fungsional harus dapat ditelusuri dengan baik, sehingga untuk memastikan terpenuhinya kebutuhan-kebutuhan tersebut harus dilakukan serangkain pengujian, baik black-box testing, maupun white-box testing. White-box Testing White-box testing merupakan teknik yang dilakukan para pengembang perangkat lunak untuk memverifikasi kode program seperti yang diharapkan. Berdasarkan IEEE, Tahun 1990, definisi white-box testing adalah : White-box testing is testing that takes into account the internal mechanism of a system or component, dengan kata lain, white-box testing diarahkan pada pengujian teknis dari mekanisme sistem secara internal.white-box testing juga dikenal sebagai structural testing, clear boxtesting dan glas box-testing[3]. Konotasi dari clear box dan glass box mengidikasikan bahwa penguji dapat melihat secara penuh cara kerja produk perangkat lunak secara internal, khususnya aspek logika dan stuktur dari kode program. Dalam menggunakan white-box testing ini, para software engineer dapat merancang kasus uji, antara lain (1) menguji jalur independen dalam modul atau unit program; (2) menguji keputusan logis baik dari sisi benar maupun sisi salah; (3) mengeksekusi pengulangan-pengulangan; dan (4) menguji struktur data secara internal untuk memastikan validitasnya. (Pressman-2001)[2]. Ada enam tipe pengujian, yaitu : pengujian unit, pengujian integrasi, pengujian sistem/ fungsi, pengujian keberterimaan, pengujian regresi dan pengujian beta. White-box testing digunakan untuk tiga pengujian dari enam tipe pengujian, diantaranya : a. Unit Testing, berdasarkan IEEE pada tahun 1990, bahwa unit testing merupakan pengujian secara individual dari hardware ataupun unit perangkat lunak atau kelompok dari unit-unit yang berhubungan. Unit adalah komponen dari perangkat lunak yang tidak dapat dibagi lagi menjadi komponenkomponen lainnya (IEEE, 1990). Para software engineer menulis kasus uji pada white-box testing untuk menguji kode program dalam unit bekerja dengan benar. Pengujian unit menjadi penting untuk memastikan kode program telah tepat sebelum diintegrasikan dengan kode program lainnya ( unit lainnya). Apabila kode program sudah diintegrasikan dengan yang lainnya, maka apabila ada kegagalan akan lebih sulit untuk ditemukan. Pengujian unit rata-rata dapat menemukan bug dalam program masih dibawah 100%. PENERAPAN METODA WHITE-BOX TESTING ( Yulison Herry Chrisnanto) 37

b. Pengujian integrasi, adalah pengujian yang dilakukan dalam komponenkomponen dari perangkat lunak, komponen perangkat keras, atau kombinasi dari keduanya serta pengujian dilakukan untuk mengevaluasi interaksi diantaranya. (IEEE, 1990). Kasus uji dirancang secara eksplisit untuk menguji antarmuka diatara berbagai unit. Kasus uji ini dapat disebut sebagai kasus uji Black-box, dimana para penguji memahami bahwa kasus uji membutuhkan beberapa unit program yang berinteraksi. c. Pengujian Regresi, adalah tindakan verifikasi terhadap sistem atau komponen untuk memastikan bahwa perubahan atau modifikasi tidak memberikan dampak yang tidak diidingkan sehingga sistem masih tetap sesuai dengan kebutuhan sistem yang telah ditentukan.seperti pengujian integrasi, pengujian regresi dapat dilakukan melalui kasus uji dalam black-box tersting, kasus uji white-box testing, atau kombinasi keduanya. White-box testing dengan Stubs dan Drivers Dengan white-box testing, penguji harus menjalankan kode program dengan masukan yang telah ditentukan serta memeriksa apakah kode program menghasilkan output seperti yang diharapkan. Pengujian seperti ini dapat dilakukan oleh pemrogram dalam bentuk kode program yang dipisahkan dengan kode program lainnya, serta menguji secara terpisah menggunakan main drivers yang digunakan untuk memanggil kode program yang akan diuji. Sebagai contoh, akan diuji sebuah kode program yang ditulis dalam sebuah procedure movepoint (MyPoint, 5), yaitu untuk memindahkan sebuah objek bernama point, dengan sembarang posisi ke posisi 5, baik absis maupun ordinatnya, maka diperlukan sebuah main driver untuk memanggilnya, sehingga hasil kode program yang terdapat pada procedure movepoint tersebut dapat dilihat kesesuainya. Berikut ini contoh sederhana bagi kasus di atas, yaitu : Procedure tersebut akan dipanggil untuk dieksekusi melalui main drivers, seperti contoh berikut ini : Menurunkan Kasus Uji Kasus uji dapat diturunkan melalui paling tidak ada dua cara, yaitu : basis path testing dan equivalence partitioning/ Boundary value analysis. Basis path testing diperkenalkan pada tahun 1976 oleh McCabe, yaitu teknik pengujian untuk memastikan bahwa semua jalur independen yang ada pada kode program diuji secara keseluruhan dengan mengeksekusi program. Setiap jalur independen paling tidak telah satu kali diuji untuk mengetahui kondisi logiknya. Dalam menggunakan teknik basis path, diperlukan diagram yang menggambarkan segmen-segmen dari kode program. Penggambaran diagram basis-path harus dilakukan dengan cermat, karena alur dari setiap segmen kode program merepresentasikan logika dari program. Pada pengujian white-box perlu diperhatikan kasus uji ARISTOTELES VOL. 10 NO. 1, OKTOBER 2012 : HAL. 35 44 38

yang akan dirancang, karena kasus uji yang dirancang akan menentukan seberapa banyak bugs yang ditemukan pada kode program/ unit program, semakin banyak bugs yang ditemukan, maka pengujian akan berindikasi pada semakin baiknya kode program yang akan dihasilkan. Basic Path Testing Merupakan teknik untuk menguji semua jalur indenpenden pada kode program, pengujian paling tidak satu kali melalaui semua jalur independen yang ada pada keputusan logis pada kode program. Racangan pengujian untuk basis path testing diperlukan sebuah diagram yang akan merepresentasikan keputusan logik. Sebagai contoh, dalam sebuah kebutuhan pemrosesan pencatian data dengan metoda binary search, dengan skenario sebagai berikut : Sistem menerima masukan sebuah bilangan yang akan dicari pada sebuah tempat penyimpanan (struktur data menggunakan array dengan panjang tertentu). Pada awal proses sistem akan menginisialisasi nilai awal, akhir dan tengah. Nilai awal=1, nilai akhir=jumlah elemen yang ada pada tempat, dan tengah berisi nilai tengah + nilai akhir dibagi 2. Nilai tengah akan selalu diupdate selama pencarian berlangsung. Pada proses pencarian, sistem akan membandingkan nilai pada elemen tengah dengan masukan yang akan dicari, apabila sama maka sistem akan menyatakan pencarian ditemukan dan dihentikan. Apabila tidak sama, sistem memeriksa ketidaksamaan tersebut apakah nilai pada posisi tengah lebih besar dengan yang dicari? Jika ya, maka akhir akan bernilai tengah 1, sebaliknya sistem akan mengubah nilai awal menjadi tengah + 1. Demikian dilakukan berulang hingga yang dicari ditemukan atau pencarian telah memeriksa semua elemen pada tempat penyimpanan. Adapun algoritma pencarian secara bagi dua (binary search), seperti berikut ini : Algoritma Pencarian Biner (binary search) PENERAPAN METODA WHITE-BOX TESTING ( Yulison Herry Chrisnanto) 39

Berikut ini akan digambarkan diagram proses pencarian data dengan binary search tersebut dengan notasi graph berarah, sebagai berikut : Gambar 1. Rancangan kasus uji menggunakan graph Dengan menggunakan graph, maka dapat ditentukan jumlah jalur independen dalam kode program. Pengukuran jumlah jalur independen tersebut dikenal dengan cyclomatic number (McCabe, 1976), dimana penggambarannya didasarkan pada teori graph. Untuk menghitung cyclomatic number, dapat dilakukan dengan cara menghitung jumlah independent path yang ada pada kode program tersebut. Berdasarkan kasus di atas, jumlah independent path sebanyak 4, yang terdiri dari : 1. 1-2-3-4-8-2--9 2. 1-2-3-4-5-7-8-2-9 3. 1-2-9 4. 1-2-3-5-6-8-2-9 Dengan diagram tersebut, dapat dihitung kekomplekan cyclomatic dengan definisi : V(G) = E N +2, dimana E adalah jumlah busur pada graph dan N adalah jumlah node, maka V(G) = 11 9 + 2 = 4 Atau dengan definisi simpul predikat, yaitu jumlah node yang memiliki lebih dari satu tujuan (digambarkan dengan anak panah) : dimana P jumlah predikat, yaitu 3 buah, sehingga berdasarkan definisi : V(G) = P + 1, maka V(G) = 3 + 1 = 4 Dengan menggunakan dua definisi di atas, complexity cyclomatic dari diagram di atas akan menghasilkan nilai yang sama, yaitu : 4. Equivalence Partitioning/ Boundary Value Analysis Equivalence partitioning (EP) dan boundary value analysis (BVA), merupakan sebuah strategi pengujian dalam menulis kasus uji dalam whitebox testing. Berdasarkan kasus di atas, maka EP/ BVA dapat digunakan untuk menentukan kasus ujinya, sebagai berikut : a. Masukan x bernilai sama dengan T[Tengah] b. Masukan x bernilai lebih besar dari T[Tengah] c. Masukan x bernilai lebih kecil dari T[Tengah] d. Masukan x bernilai sembarang yang tidak ada pada T Berdasarkan contoh di atas, dimisalkan isi elemen dari array T adalah {1,3,4,6,7,9,10,15,17}, sehingga nilai Tengah = 5 (berasal dari 1 + 9 / 2), dengan demikian untuk kasus uji pertama nilai x yang akan dimasukan adalah : 7, sedangkan kasus uji yang kedua, nilai x dapat sembarang nilai yang lebih besar dari 7 yang ada pada T, dan kasus uji ketiga, nilai x dengan sembarang nilai lebih kecil dari 7 yang ada pada T, dan yang terakhir, adalah ARISTOTELES VOL. 10 NO. 1, OKTOBER 2012 : HAL. 35 44 40

kasus uji dengan memasukan nilai x sembarang yang tidak ada pada T. Control-Flow / Coverage Testing Merupakan pengujian yang dilakukan untuk melihat setiap kasus uji memasuki area yang diinginkan serta mendapatkan respon dari masukan tersebut. Pengukuran untuk pengujian seperti ini disebut sebagai coverage, yaitu ukuran yang dapat dilihat pada setiap kasus uji. Sebagai contoh untuk kasus uji di atas, setiap jalur independen diupayakan untuk diberikan nilai keluaran, sehingga untuk setiap masukan dari kasus uji dapat diketahui area mana yang dimasuki pada keseluruhan kode program. Coverage testing terdiri dari empat pengujian, yaitu : method coverage, statement coverage, branch coverage dan condition coverage. Method Coverage Method/ function coverage adalah sebuah pengukuran dari prosentase eksekusi setiap path dalam sebuah method atau function pada kasus uji. Setiap pengujian akan selalu diharapkan berjalan dilakukan 100%, seperti pada kasus uji pada gambar 1, diketahui ada paling tidak 4 kasus uji yang mungkin untuk dilakukan, sehingga setiap jalur pengujian bernilai coverage 25 %, itu artinya setiap kasus uji memiliki prosentase pelaksanaan sesuai dengan coverage total 100 %. Statement Coverage Statement coverage memiliki keserupaan dengan method coverage, namun pada statement coverage, pengujian diarahkan pada pengujian setiap statement pada kode program sesuai dengan kasus uji yang telah dirancang. Seperti pada Algoritma pencarian biner sebagai contoh kasus pengujian, statement-statement sebagai baris-baris yang dapat diuji sesuai dengan kasus ujinya. Semua baris statement yang akan diuji pada setiap alur lojik akan berupa prosesntase banyak baris dari total baris pada kode program. Diupayakan statement coverage sebesar 100%, artinya semua statement pada kode program sudah dilakukan uji. Branch Coverage Branch coverage adalah pengukuran prosentase dari titik-titik percabangan (ekspresi boolean) yang ada pada kode program yang akan dievaluasi baik sisi true ataupun sisi false dalam kasus uji. Seperti penggalan program sesusai dengan algoritma pencarian biner, seperti berikut ini : Untuk setiap percabangan dievaluasi nilai ekspresi boolean yang dihasilkan sebagai true atau false. Setiap percangan merupakan simpul predikat yang dapat berisi multiple logical seperti pada persyaratan pada pengulangan, yaitu : while(awal <= akhir and not Ketemu) do Pengujian dapat dilakukan dengan menggunakan tabel, seperti berikut ini: PENERAPAN METODA WHITE-BOX TESTING ( Yulison Herry Chrisnanto) 41

Tabel 1. Decision Coverage Pengujian White-Box Untuk Kebutuhan Non-Fungsional Perangkat Lunak Seperti yang telah dibahas pada bab sebelumnya, pengujian white-box diarahkan pada pemenuhan kebutuhan non-fungsional dari perangkat lunak, seperti kinerja sistem (modul program/ function), waktu respon dan lain-lain. Pengujian ini akan menggunakan modul program untuk mencari sebuah bilangan bernilai integer pada sebuah array bernama T, dimana metoda pencarian adalah binary search. Dalam pelaksanaan pengujian white-box ini diperlukan langkah-langkah sebagai berikut : Objek program yang akan digunakan dalam pengujian ini adalah kode program pencarian bilangan dengan metoda binary search yang ditulis dengan bahasa C, sebagai berikut : Langkah-langkah pengujian yang dilakukan sebagai berikut : a. Membuat flow graph dari kode program/ modul yang akan diuji b. Melakukan identifikasi dari independen path ARISTOTELES VOL. 10 NO. 1, OKTOBER 2012 : HAL. 35 44 42

c. Menghitung Ciclomatic Complexity, V(G) V(G) = E N + 2, dimana : E = 11; N = 9, sehingga V(G) = 11 9 + 2 = 4 Jika dihitung menggunakan simpul predikat : V(G) = P + 1, dimana P = 3, yaitu simpul 2, 3 dan 5. Sehingga v(g) = 3 + 1 = 4 Memberikan indikasi bahwa kode program disusun dengan tingkat kekomplekan dengan skala 4, yang artinya kompleksitas algoritma sederhana. d. Rancangan kasus uji Masukan x bernilai sama dengan T[Tengah] Masukan x bernilai lebih besar dari T[Tengah] Masukan x bernilai lebih kecil dari T[Tengah] Masukan x bernilai sembarang yang tidak ada pada T e. Pelaksanaan pengujian berdasarkan kasus uji Untuk kasus uji pertama, dimana bilangan yang dimasukan adalah 4, berdasarkan algoritma yang telah disusun, nilai tengah dari array T = (1 + 7) / 2 = 4, sehingga T[4] = 4, dengan jalur yang dilalui adalah : 1-2-3-4-8-2-9 lebih besar dari T[tengah], dengan jalur yang dilalui adalah : 1-2-3-4-5-7-8-2-9 Gambar 3. Hasil evaluasi dengan masukan 8 Kasus uji ketiga, yaitu untuk x bernilai lebih kecil dari T[tengah], dengan jalur yang dilalui adalah: 1-2-3-5-6-8-2-9 Gambar 4. Hasil evaluasi dengan masukan 2 Kasus uji terakhir (keempat), yaitu untuk x bernilai sembarang yang terdapat pada array T, dengan jalur yang dilalui adalah : 1-2-9 Gambar 2. Hasil evaluasi dengan masukan 4 Kasus uji kedua, yaitu untuk x bernilai Gambar 4. Hasil evaluasi denganb masukan 10 PENERAPAN METODA WHITE-BOX TESTING ( Yulison Herry Chrisnanto) 43

Nilai pencancah lebih besar dari jumlah elemen, menunjukan bahwa pengulangan dihentikan, artinya data yang dicari tidak ditemukan. Semua jalur logik pada kode program telah dilakukan pengujian dengan menelusuri melalui masukan yang sesuai dengan rancangan kasus ujinya. Kesimpulan dari pengujian ini adalah : algoritma pencarian secara biner belum termasuk algoritma yang kompleks dan penulisan kode program telah sesuai dengan hasil yang diharapkan. Pemenuhan kebutuhan non-fungsional dari sistem, dapat ditelusuri menggunakan whitebox testing ini, pada tulisan ini adalah kebutuhan kehandalan, yang merupakan atribut mutu dari sistem. Bahwa algoritma pencarian secara biner telah dikonstruksi secara tepat melalui kode programnya, tidak didapatkan keselahan logik. KESIMPULAN Pengujian white-box merupakan pengujian yang dilakukan berdasarkan kode program untuk mengetahui komposisi logika dari kode program dengan cara mengeksekusi kode program menggunakan main driver untuk memanggilnya. Modul/ function dari kode program yang dipilih untuk diuji, harus dipisahkan dari kode program secara keseluruhan, sehingga pelaksanaan pengujian lebih fokus pada unit yang akan diuji. Pada pelaksanaanya, pengujian perangkat lunak untuk skala besar, perlu dipertimbangkan apabila white-box testing akan digunakan dalam pengujiannya, karena pada perangkat lunak skala besar sudah barang tentu dibangun oleh sejumlah unit/ modul kode program yang banyak, sehingga membutuhkan waktu yang lama, oleh karena itu pengujian white-box dapat digunakan apabila pada pengujian fungsionalitas sistem melalui black-box testing memberikan indikasi defect. DAFTAR PUSTAKA [1]. Laurie Williams, Software Testing, 2006, www.chaudhary.org, diunduh pada tanggal 10 September 2012, pukul 13:25 WIB [2]. Pressman, R, Roger, Software Engineering:A Practitioner s Approach, McGraw-Hill, 2001 [3]. McCabe, C, T., A Software Complexity Measure, IEEE Transactions on Software Engineering SE-2:308-320, 1976 [4]. IEEE Standard 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology, 1990 BIODATA PENULIS Yulison Herry Chrisnanto Dosen Biasa Pada Program Studi Informatika / Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Jenderal Achmad Yani (UNJANI) Cimahi --------- oo0oo --------- ARISTOTELES VOL. 10 NO. 1, OKTOBER 2012 : HAL. 35 44 44