PENGUJIAN MENGGUNAKAN METODE WHITE BOX
Kasmiah 2013-53-116
Sistem Informasi – Universitas Muria Kudus - Kudus
Email: miahnew@gmail.com
Abstrak
Pengujian adalah proses untuk menemukan error pada perangkat lunak sebelum dikirim kepada pengguna. Pengujian Software adalah kegiatan yang ditujukan untuk mengevaluasiatribut atau kemampuan program dan memastikan bahwa itu memenuhi hasil yang dicari, atausuatu investigasi yang dilakukan untuk mendapatkan informasi mengenai kualitas dari produk atau layanan yang sedang diuji (under test). Pengujian perangkat lunak juga memberikan pandangan mengenai perangkat lunak secara obyektif dan independen, yang bermanfaat dalam operasional bisnis untuk memahami tingkat risiko pada implementasinya.
Kata Kunci: Perangkat Lunak
1.1 Pengujian White Box
Pengujian white box 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%.
Penggunaan metode pengujian white box dilakukan untuk :
a. Memberikan jaminan bahwa semua jalur independen suatu modul digunakan minimal satu kali
b. Menggunakan semua keputusan logis untuk semua kondisi true atau false
c. Mengeksekusi semua perulangan pada batasan nilai dan operasional pada setiap kondisi.
d. Menggunakan struktur data internal untuk menjamin validitas jalur keputusan.
Persyaratan dalam menjalankan strategi White Box Testing
a. Mendefinisikan semua alur logika
b. Membangun kasus untuk digunakan dalam pengujian
c. Mengevaluasi semua hasil pengujian
d. Melakukan pengujian secara menyeluruh
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 validitasnyaMengapa 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.
1.2 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.
1.3 Notasi Diagram Alir (Path Graph Notation)Notasi yang digunakan untuk menggambarkan jalur eksekusi adalah notasi diagram alir (atau grafik program), yang menggunakan notasi lingkaran (simpul atau node) dan anak panah (link atau edge). Notasi ini menggambarkan aliran control logika yang digunakan dalam suatu bahasa pemrograman
1.4 Cyclomatic Complexity
Cyclomatic complexity merupakan software metric yang menyediakan ukuran kuantitatif dari komplesitas logikal suatu program. Ketika digunakan dalam konteks metode ujicoba berbasis alur, nilai yang dikomputasi untuk kompleksitas cyclomatic mendefinisikan jumlah independent path dalam himpunan basis suatu program dan menyediakan batas atas untuk sejumlah ujicoba yang harus dilakukan untuk memastikan bahwa seluruh perintah telah dieksekusi sedikitnya satu kali. Independent path adalah alur manapun dalam program yang memperkenalkan sedikitnya satu kumpulan perintah pemrosesan atau kondisi baru.
a. Contoh 1 independent path dari gambar flow graph diatas :
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
Misalkan setip path yang baru memunculkan edge yang baru, dengan path :
1 -2 –3 –4 –5 –10 -1 -2 –3 –6 –8 –9 –10 –1 –11
path diatas tidak dianggap sebagai independent path karena kombinasi path diatas telah didefinisikan sebelumnyaKetika ditetapkan dalam graf alur, makaindependent pathharus bergerak sedikitnya 1 edge yang belum pernah dilewati sebelumnya. Kompleksitas cyclomatic dapat dicari dengan salah satu dari 3 cara
berikut :
1. Jumlah region dari graf alur mengacu kepada komplesitas cyclomatic
2. Kompleksitas cyclomatic untuk graf alur G didefinisikan :
V(G) = E –N + 2
Dimana E = jumlah edge, dan N = jumlah node
3. Kompleksitas cyclomatic untuk graf alur G didefinisikan :
V(G) = P + 1
Dimana P = jumlah predicates nodes
Berdasarkan flow graph gambar (b) diatas, maka kompleksitas cyclomaticnya dapat di hitung sebagai berikut :
1. Flow graph diatas mempunyai 4 region
2. V(G) = 11 edges –9 nodes + 2 = 4
3. V(G) = 3 predicates nodes + = 4
Hasil kompleksitas cyclomatic menggambarkan banyaknya path dan batas atas sejumlah ujicoba yang harus dirancang dan dieksekusi untuk seluruh perintah dalam program.
b. Contoh 2 Pengujian White Box
Menggunakan metode Basic PathMenggunakan grafik aliran ini, dapat menghitung jumlah jalur independen
melalui kode. melakukan ini dengan menggunakan metrik disebut nomor cyclomatic (McCabe, 1976), yang didasarkan pada teori grafik. Cara termudah untuk menghitung jumlah siklomatik adalah dengan menghitung jumlah conditional / predikat (diamond) dan tambahkan 1. Dalam contoh di atas, ada lima conditional. Oleh karena itu, jumlah cyclomatic adalah 6, dan memiliki enam jalur independen melalui kode. Jadi sekarang dapat menghitungnya:
1. 1-2-3-4-5-10 (properti yang dimiliki oleh orang lain, tidak mempunyai uang
untuk sewa)
2. 1-2-3-4-6-10 (properti yang dimiliki oleh orang lain, membayar sewa)
3. 1-2-3-10 (properti yang dimiliki oleh pemain)
4. 1-2-7-10 (properti yang tersedia, tidak memiliki cukup uang)
5. 1-2-7-8-10 (properti yang tersedia, punya uang, tidak ingin membelinya)
6. 1-2-7-8-9-10 (properti yang tersedia, punya uang, dan membelinya)
c. Contoh Pengujian White Box 3
Step 1: Contoh prosedur di bawah ini menunjukkan bagaimana laporan algoritma dipetakan ke node grafik, nomor di sebelah kiri. Public double calculate(int amount) {
-1- double rushCharge = 0;
-1- if (nextday.equals("yes") )
{
-2- rushCharge = 14.50;
}
-3- double tax = amount * .0725;
-3- if (amount >= 1000)
{
-4- shipcharge = amount * .06 + rushCharge;
}
-5- else if (amount >= 200)
{
-6- shipcharge = amount * .08 + rushCharge;
}
-7- else if (amount >= 100)
{
-8- shipcharge = 13.25 + rushCharge;
12
}
-9- else if (amount >= 50)
{
-10- shipcharge = 9.95 + rushCharge;
}
-11- else if (amount >= 25)
{
-12- shipcharge = 7.25 + rushCharge;
}
else
{
-13- shipcharge = 5.25 + rushCharge;
}
-14- total = amount + tax + shipcharge;
-14- return total;
} //end calculate
Dibawah ini adalah flowchart dari contoh program diatas :
13
Step 2: Menentukan kompleksitas cyclomatic dari grafik aliran.
V(G) = E - N + 2
= 19 - 14 + 2
= 7
Keterangan:
E : Jumlah Busur atau Link
N : Jumlah Simpul
Ini menjelaskan bahwa batas atas pada ukuran basis set. Artinya, memberikan jumlah jalur independen yang perlu dicari.
Step 3: Menentukan dasar jalur independen
Path 1: 1 - 2 - 3 - 5 - 7 - 9 - 11 - 13 - 14
Path 2: 1 - 3 - 4 - 14
Path 3: 1 - 3 - 5 - 6 - 14
Path 4: 1 - 3 - 5 - 7 - 8 - 14
Path 5: 1 - 3 - 5 - 7 - 9 - 10 - 14
Path 6: 1 - 3 - 5 - 7 - 9 - 11 - 12 - 14
Path 7: 1 - 3 - 5 - 7 - 9 - 11 - 13 – 14
Step 4: Menyiapkan test cases bahwa pelaksanaan kekuatan setiap jalur di set
dasar.
path nextday amount expected result
1 yes 10 30.48
2 no 1500 ????.??
3 no 300 345.75
4 no 150 174.125
5 no 75 90.3875
6 no 30 39.425
7 no 10 15.975
Pernyataan pengulangan statement di tengah-tengah blok diperlukanmeskipun ada gambaran sampai akhir, Jika itu adalah simbol terminal tambahan. Kembali dari ekspresi boolean diperlakukan jika ada penyataan (statement)
Referensi
http://pasca.unhas.ac.id/jurnal/files/4d64757808ae5a39c29c751ea49b2a4b.pdf
http://aris-rimbawan.blogspot.co.id/2014/03/contoh-white-box-testing.html
http://rifiana.staff.gunadarma.ac.id/Downloads/files/26084/Teknik+Pengujian+per
angkat+Lunak+-+White+Box.pdf
http://agile.csc.ncsu.edu/SEMaterials/WhiteBox.pdf
http://airccse.org/journal/ijesa/papers/2212ijesa04.pdf
http://pasca.unhas.ac.id/jurnal/files/4d64757808ae5a39c29c751ea49b2a4b.pdf
http://aris-rimbawan.blogspot.co.id/2014/03/contoh-white-box-testing.html
http://rifiana.staff.gunadarma.ac.id/Downloads/files/26084/Teknik+Pengujian+per
angkat+Lunak+-+White+Box.pdf
http://agile.csc.ncsu.edu/SEMaterials/WhiteBox.pdf
http://airccse.org/journal/ijesa/papers/2212ijesa04.pdf
Tidak ada komentar:
Posting Komentar