Minggu, 30 Maret 2014

04.29 - 2 comments

METODE WHITE BOX DAN BLACK BOX TESTING

1. WHITE BOX TESTING

Pengujian perangkat lunak perlu dilakukan untuk mengevaluasi baik secara manual maupun otomatis untuk menguji apakah perangkat lunak sudah memenuhi persyaratan atau belum, dan untuk menentukan perbedaan antara hasil yang diharapkan dengan hasil sebenarnya.

Tujuan pengujian perangkat lunak adalah :
- Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
- Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan.
- Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak yang diuji dengan spesifikasi yang telah ditentukan.

Teknik pengujian dapat dilakukan dengan menggunakan pengujian White-Box dan Black-Box
Berikut ini penjelasan tentang white box :
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 :

- 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 / bagan alir


 

 Flow Graph 



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 untuk 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
1. 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.

Menurut Rich Sharpe, kami telah melakukan analisis historis puluhan ribu file kode sumber, menerapkan metrik individu kepada mereka, yang McCabe adalah salah satu. Untuk setiap file, kami menganalisis metrik, bersama dengan tingkat cacat untuk file itu, dan melakukan korelasi.

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 probalitas rawan kesalahan


2. METODE BLACK BOX


Black-Box Testing merupakan pengujian yang berfokus pada spesifikasi fungsional dari perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan pengetesan pada spesifikasi fungsional program. 

Ciri-Ciri Black Box Testing
  1. Black box testing berfokus pada kebutuhan fungsional pada software, berdasarkan pada spesifikasi kebutuhan dari software.
  2. Black box testing bukan teknik alternatif daripada white box testing. Lebih daripada itu, ia merupakan pendekatan pelengkap dalam mencakup error dengan kelas yang berbeda dari metode white box testing. 
  3. Black box testing melakukan pengujian tanpa pengetahuan detil struktur internal dari sistem atau komponen yang dites. juga disebut sebagai behavioral testing, specification-based testing, input/output testing atau functional testing
Pada black box testing terdapat jenis teknik design tes yang dapat dipilih berdasarkan pada tipe testing yang akan digunakan, yang diantaranya  :
  1. Equivalence Class Partitioning
  2. Boundary Value Analysis
  3. State Transitions Testing
  4. Cause-Effect Graphing

Kategori error yang akan diketahui melalui black box testing  :
  • Fungsi yang hilang atau tak  benar
  • Error  dari antar-muka
  • Error  dari struktur data atau  akses eksternal database
  • Error  dari kinerja atau tingkah  laku
  • Error  dari inisialisasi dan  terminasi 

 
Equivalence Partitioning 
Merupakan metode black box testing yang membagi domain masukan dari suatu program ke dalam kelas-kelas data, dimana test cases dapat diturunkan [BCS97a]. Equivalence partitioning berdasarkan pada premis masukan dan keluaran dari suatu komponen yang dipartisi ke dalam kelas-kelas, menurut spesifikasi dari komponen tersebut, yang akan diperlakukan sama (ekuivalen) oleh komponen tersebut. Dapat juga diasumsikan bahwa masukan yang sama akan menghasilkan respon yang sama pula. Nilai tunggal pada suatu partisi  ekuivalensi diasumsikan sebagai  representasi dari semua nilai  dalam partisi.

Analisa partisi pada Equivalence Partitioning Black Box 
  1. Tester menyediakan suatu model komponen yang dites yang merupakan partisi dari nilai masukan dan keluaran komponen.
  2. Masukan dan keluaran dibuat dari spesifikasi dari tingkah laku komponen.
  3. Partisi adalah sekumpulan nilai, yang dipilih dengan suatu cara dimana semua nilai di dalam partisi, diharapkan untuk diperlakukan dengan cara yang sama oleh komponen (seperti mempunyai proses yang sama).
  4. Partisi untuk nilai valid dan tidak valid harus ditentukan.

Contoh Black Box Testing dengan Equivalence Partitioning :
Pemeliharaan data untuk aplikasi bank yang sudah diotomatisasikan. Pemakai dapat memutar nomor telepon bank dengan menggunakan mikro komputer yang terhubung dengan password yang telah ditentukan dan diikuti dengan perintah-perintah. Data yang diterima adalah :
-        Kode area        : kosong atau 3 digit
-        Prefix               : 3 digit atau tidak diawali 0 atau 1
-        Suffix              : 4 digit
-        Password         : 6 digit alfanumerik
-        Perintah           : check, deposit, dll
Selanjutnya kondisi input digabungkan dengan masing-masing data elemen  dapat ditentukan sebagai berikut:
  • Kode area : kondisi input, Boolean –kode area mungkin ada atau tidak kondisi input, range –nilai ditentukan antara 200 dan 999
  • Prefix  : kondisi input range > 200 atau tidak diawali 0 atau 1
  • Suffix  : kondisi input nilai 4 digit
  • Password : kondisi input boolean –passwordmungkin diperlukan atau  tidak kondisi input nilai dengan 6 karakter string
  • Perintah   : kondisi input set berisi perintah-perintah yang telah didefinisikan
Source :


1. Rekayasa Perangkat Lunak Pendekatan Praktisi (Buku Satu), (Roger S. Pressman, Ph.D. 2002 : 536)
2. Rosa A. S. - Black Box Testing
3. Pusat Pengembangan Bahan Ajar UMB, Ir. Pranto Busono, M.Kom – Testing & Implementasi
4. http://www.aivosto.com/project/help/pm-complexity.html