Rabu, 16 Maret 2016

testing white box


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

Tidak ada komentar:

Posting Komentar