Anda di halaman 1dari 11

Pengujian White Box Testing

Pengujian ke white box testing adalah menguji yang di dasarkan kepada


pengecekkan ke dalam detail rancangan, penggunaan yang di lakukan struktur
control dari suatu desain pemograman untuk dapat membagi pengujian ke
beberapa kasus pengujian. Dan di dapat bahwasanya white box testing
menggungakan petunjuk untuk menghasilkan program yang di harapkan dan
efisien.

Metode pengujian pada white box testing ini sering di lakukan untuk

1. Memberikan dan membuat suatu jaminan bahwa seluruh jalur-jalur yang


independen hanya menggunakan modul minimal satu kali.
2. Keputusan yang sifatnya logis dapat di gunakan di semua kondisi true
(benar) atau false (salah).
3. Mengeksekusi seluruh perulangan yang ada ke pada batas nilai dan
operasional di setiap situasi dan kondisi.
4. Syarat yang di lakukan dalam menjalankan strategi white box testing
5. Mendefinisikan tentang seluruh alur-alur logika yang ada.
6. Membangun dan membuat suatu kasus yang akan di gunakan untuk tahap
pengujian.
7. Hasil pengujian yang telah di dapatkan akan di lakukan eveluasi kembali.
8. Pengujian yang di lakukan haruslah secara menyeluruh.
Contoh White Box Testing
Contoh Testing White Box 1

Menggunakan grafik aliran ini, kita dapat menghitung jumlah jalur independen
melalui kode. Kami 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 kami adalah 6, dan kami
memiliki enam jalur independen melalui kode. Jadi kita 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)

Contoh Pengujian White Box 2


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;
}
-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 inia dalah flowchart dari contoh program diatas :

Step 2: Menentukan kompleksitas cyclomatic dari grafikaliran.

V(G) = E – N + 2
= 19 – 14 + 2
=  7

Keterangan:

E : Jumlah Busur atau Link

N : Jumlah Simpul
Ini menjelaskan bahwa  batas ataspada ukuran basis set. Artinya, memberikan
jumlah jalur independen yang perlu kita cari.

Step 3: Menentukandasarjalurindependen

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

Software Testing: Perhitungan Cyclomatic Complexit


Cyclomatic Complexity adalah sebuah software metric yang menyediakan ukuran
kuantitatif dari kompleksitas logika dari sebuah program. Dengan menggunakan hasil
pengukuran atau perhitungan dari metric cyclomatic complexity, kita dapat menentukan
apakah sebuah program merupakan program yang sederhana atau kompleks berdasarkan
logika yang diterapkan pada program tersebut. Apabila dikaitkan dengan pengujian
perangkat lunak (software testing), cyclomatic complexity dapat digunakan untuk
menentukan berapa minimal test caseyang harus dijalankan untuk menguji sebuah
program dengan menggunakan teknik basis path testing. Pada pengujian basis path, aliran
control logika digambarkan dengan menggunakan flow graph. Berikut ini adalah notasi
struktur kontrol pada flow graph untuk menggambarkan sekuensial, seleksi, maupun
perulangan:
Notasi lingkaran disebut sebagai flow graph node yang digunakan untuk
menggambarkan statement-statement berikut:
1. Satu atau lebih statement secara sekuensial yang dikelompokkan
2. Percabangan seleksi dari satu statement kedua pilihan statement (seleksi)
3. Penggabungan dua statement yang dilanjutkan pada satu statement yang sama
(merge)
Sedangkan notasi garis panah disebut sebagai edge atau link,
menggambarkan aliran kontrol. Setiap edge harus dihubungkan dari/ke
sebuah node, meskipun node tersebut tidak mewakili sebuah statement khusus.
Area yang dibatasi oleh node dan edge disebut sebagai region. Contoh
pembuatan flow graph dari source code yang sudah dibuat atau
dari flowchart yang dibuat sebelumnya dapat dibaca lebih detail pada artikel
berikut “Basis Path Testing: Flow Graph”.
Berikut ini adalah contoh sebuah flow graph:

Dari flow graph yang
sudahtersedia, cyc lomatic
complexity dari sebuah program dapat dibuat dengan menggunakan rumus
dibawah ini:

V(G)      : cyclomatic complexity


E              : total jumlah edge
N             : total jumlah node
Pada contoh flow graph di atas (Gambar 2.), dapat dihitung cyclomatic
complexity-nya sebagai berikut:
V(G)      = 11 edges – 9 nodes + 2 = 4
Angka  4 dari hasil perhitungan cyclomatic complexity menunjukan
jumlah independent path dari basis path testing, atau dengan kata lain
menunjukkan jumlah pengujian yang harus dijalankan untuk memastikan
semua statement pada program dijalankan minimal sekali
(semua statement telah diuji).
Hasil independent path pada contoh di atas dapat dijabarkan sebagai berikut:
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
Catatan:

 independent path adalah setiap path yang dilalui program yang menunjukkan


satu set baru dari pemrosesan statement atau dari sebuah kondisi baru
 independent path pada flow graph harus melewati sedikitnya satu edge yang
belum pernah dilewati oleh path sebelumnya
 independent path selalu dimulai dari node awal hingga ke node terakhir
 independent path yang dibuat pertama kali adalah independent path terpendek
Selain dengan menggunakan rumus di atas, cyclomatic complexity dapat
ditentukan dengan dua cara lain:
1. Menentukan jumlah region dari flow graph.
Pada contoh di atas, terdapat 4 region, sehingga cyclomatic complexity = 4.
2. Menentukan jumlah node simpul/bercabang ditambahkan dengan angka 1.
Pada contoh di atas, terdapat 3 node simpul (1; 2,3; dan 6) sehingga total
cyclomatic complexitynya adalah 3+1=4.
Untuk mendapatkan pemahaman yang lebih dalam, pada artikel ini
disertakan sebuah contoh lain flow graph untuk perhitungan cyclomatic
complexity sebagai berikut:

Perhitungan cyclomatic complexity dengan menggunakan 3 cara:

1. V(G) = 17 edges – 13 nodes + 2 = 6


2. V(G) = 6 region
3. V(G) = 5 node simpul + 1 = 6

Black-box Testing

Pada Black Box Testing dilakukan pengujian yang didasarkan pada detail aplikasi seperti tampilan
aplikasi, fungsi-fungsi yang ada pada aplikasi, dan kesesuaian alur fungsi dengan bisnis proses yang
diinginkan oleh customer. Black-box Testing ini lebih menguji ke Tampilan Luar(Interface) dari suatu
aplikasi agar mudah digunakan oleh Customer. Pengujian ini tidak melihat dan menguji souce code
program. Black-box Testing bekerja dengan mengabaikan struktur control sehingga perhatianya hanya
terfokus pada informasi domain.

Keuntungan dari Black-box Testing :

1. Penguji tidak perku memiliki pengetahuan tentang baasa pemograman tertentu


2. Pengujian yang dilakukan berdasarkan sudut pandang user agar dapat mengungkapkan
inkosistensi atau ambiguitas dalam spesifikasi.
3. Programmer dan tester memiliki ketergantungan satu sama lain

Kekurangan Black-box Testing :

1. Uji kasus sulit disain tanpa spesifikasi yang jelas


2. Kemungkinan memiliki pengulangan tes yang sudah dilakukan oleh programmer
3. Beberapa bagian back end tidak diuji sama sekali.

Teknik Black-box Testing

1. Equivalence Partitioning Cara kerja teknik ini adalah dengan melakukan partition atau
pembagian menjadi beberapa partisi dari input data.
2. Boundary Value Analysis Teknik ini lebih fokus kepada boundary, dimana adakah error dari luar
atau sisi dalam software, minimum, maupun maximum nilai dari error yang didapat.
3. Fuzzing Fuzz merupakan teknik untuk mencari bug / gangguan dari software dengan
menggunakan injeksi data yang terbilang cacat ataupun sesi semi-otomatis.
4. Cause-Effect Graph Ini adalah teknik testing dimana menggunakan graphic sebagai pacuannya.
Dimana dalam grafik ini menggambarkan relasi diantara efek dan penyebab dari error tersebut.
5. Orthogonal Array Testong Dapat digunakan jika input domain yang relatif terbilang kecil
ukurannya, tetapi cukup berat untuk digunakan dalam skala besar.
6. All Pair Testing Dalam teknik ini, semua pasangan dari test case di desain sedemikian rupa agar
dapat di eksekusi semua kemungkinan kombinasi diskrit dari seluruh pasangan berdasar input
parameternya. Tujuannya testing ini adalah memiliki pasangan test case yang mencakup semua
pasangan tersebut.
7. State Transition Testing ini berguna untuk melakukan pengetesan terhadap kondisi dari mesin
dan navigasi dari UI dalam bentuk grafik.

Black Box Testing : 


1. Pengujian yang didasarkan pada detail aplikasi seperti tampilan aplikasi, fungsi-fungsi yang ada
pada aplikasi, dan kesesuaian alur fungsi dengan bisnis proses yang diinginkan oleh customer.
Pengujian ini tidak melihat dan menguji souce code program.
2. Kegiatan Tester :
3. membuat test case untuk menguji fungsi-fungsi yang ada pada aplikasi
4. membuat test case untuk menguji kesesuaian alur kerja suatu fungsi di aplikasi dengan
requirement yang dibutuhkan customer untuk fungsi tersebut mencari bugs / error dari
tampilan (interface) aplikasi
Hasil dari pengujian dengan black box ada beberapa hasil pengujian yang belum sesuai
dengan realisasi yang diharapkan sehingga dilakukan beberapa perbaikan sesuai
dengan masalah yang didapatkan, berikut perbaikan yang dilakukan :

 Perbaikan pertama dilakukan pengecekan warna peta yang ada kemunculan


warna yang sama. Langkah yang dilakukan untuk memperbaiki bug tersebut
dengan mengecek logika warna dan menambahkan field status warna pada tabel
untuk memudahkan pemberian warna sehingga warna muncul sesuai yang
diharapkan.
 Perbaikan kedua dilakukan pengecekan fungsi tampilan yang tidak sesuai
dengan perbedaan pada akses device layar yang berbeda. Langkah yang
dilakukan dengan menambahkan style menggunakan “Bootstrap”. Bootstrap
merupakan framework untuk membangun desain web secara responsive.
Artinya, tampilan web yang dibuat oleh bootstrap akan menyesuaikan ukuran
layar dari browser yang kita gunakan baik di desktop, tablet ataupun mobile-
device
 Setelah perbaikan dilakukan maka dilakukan pengujian ulang dengan black box.
Pengujian hanya dilakukan pada fungsi yang belum sesuai yang diharapkan.
Pengujian ulang black box pada prototype aplikasi pemetaan hama dan penyakit
ikan yang dijelaskan pada tabel dibawah ini.

Anda mungkin juga menyukai