White Box Testing pada Rekayasa Perangkat Lunak

Pengujian White box testing merupakan salah satu metode pengujian pada perangkat lunak yang memiliki tujuan untuk memeriksa komponen perangkat lunak apakah berjalan semestinya dengan melihat internal kode (source code) dari perangkat lunak tersebut. Dengan menggunakan metode pengujian white box maka alur perangkat lunak dapat diuji.

Baca Juga: Pengujian perangkat lunak Black Box, White Box dan Gray Box

Pengertian White Box Testing

Menurut Pressman (2010:485), white box testing adalah metode perancangan test case yang menggunakan penjelasan struktur kontrol sebagai bagian dari component-level design untuk membuat test cases.

Dengan menggunakan metode white box testing, software engineer dapat membuat test case yang:

  1. Pertama menjamin semua jalur indepeden di dalam modul telah dieksekusi sekurangnya sekali,
  2. Kedua menguji semua keputusan logikal pada nilai boolean (yakni: true dan false),
  3. Ketiga menjalankan semua perulangan (loop) pada batasannya dan dalam batas operasionalnya, dan
  4. Terakhir menguji struktur data internal untuk memastikan kebenarannya.

Penggunaan dan Persyaratan dalam White Box Testing

Penggunaan metode pengujian white box testing dilakukan untuk :

  • Memberikan jaminan bahwa semua jalur independen suatu modul digunakan minimal satu kali
  • Menggunakan semua keputusan logis untuk semua kondisi true atau false
  • Mengeksekusi semua perulangan pada batasan nilai dan operasional pada setiap kondisi.
  • Menggunakan struktur data internal untuk menjamin validitas jalur keputusan.

Persyaratan dalam melakukan Pengujian White Box Testing

  • Pertama Medefinisikan semua alur logika.
  • Kedua Membangun kasus untuk digunakan dalam pengujian.
  • Ketiga Mengevaluasi semua hasil pengujian.
  • Keempat Melakukan pengujian secara menyeluruh.

Perbedaan White Box Testing dengan Black box testing

White-box testingBlack-box testing
Mengetahui cara kerja internal suatu produk, uji bahwa semua operasi internal dilakukan sesuai dengan spesifikasi dan semua komponen internal telah dilakukanMengetahui fungsi tertentu yang telah dirancang untuk melakukan produk, Tes untuk melihat apakah fungsi itu sepenuhnya operasional dan bebas dari kesalahan
Melibatkan tes yang berkonsentrasi pada pemeriksaan detail prosedural yang ketatTermasuk tes yang dilakukan di antarmuka perangkat lunak
Jalur logis melalui perangkat lunak diujiTidak peduli dengan struktur logis internal perangkat lunak
Uji kasus menggunakan rangkaian kondisi dan loop tertentu 
Perbedaan White-Box Testing dengan Black-box testing

Baca Juga: Cara Pengujian Black Box Testing

Kelebihan dan kekurangan Pengujian White Box Testing

Kelebihan White Box Testing:

  • Kesalahan logika, digunakan pada sintaks ‘if’ dan pengulangan. Dimana White Box Testing akan mendeteksi kondisi-kondisi yang tidak sesuai dan mendeteksi kapan proses pengulangan akan berhenti.
  • Ketidaksesuaian asumsi, Menampilkan asumsi yang tidak sesuai dengan kenyataan, untuk dianalisa dan diperbaiki
  • Kesalahan ketik, Mendeteksi bahasa pemrograman yang bersifat case sensitive

Kekurangan White Box Testing:

  • Untuk perangkat lunak yang tergolong besar, White Box Testing dianggap sebagai strategi yang tergolong boros. Hal ini dikarenakan akan melibatkan sumber daya yang besar untuk melakukan pengujian tersebut.

Jenis-jenis White Box Testing

Uji Coba Basis Path (Basis path testing)

Merupakan teknik Pengujian White Box Testing yang diusulkan Tom McCabe. Metode basis path memungkinkan perancang test case untuk membuat pengukuran kompleksitas logikal dari rancangan prosedural dan menggunakan pengukuran ini sebagai panduan untuk mendefinisikan himpunan basis dari jalur eksekusi. Test case yang dibuat untuk menguji himpunan basis dijamin akan mengeksekusi setiap statement di dalam program sekurangnya sekali pada saat pengujian.

Notasi Diagram Alir

Pengujian White Box testing - Notasi Diagram Alir (Flow Graph)
Notasi Diagram Alir (Flow Graph)

Lingkaran (disebut: node), menggambarkan satu/lebih perintah prosedural. Urutan proses dan keputusan dapat dipetakan dalam satu node. Tanda panah (edge), menggambarkan aliran kontrol. Setiap node harus mempunyai tujuan node. Region adalah daerah yang dibatasi oleh edge dan node. Termasuk daerah diluar grafik alir. Contoh menterjemahkan pseudo code ke grafik alir

1 : do while record masih ada baca record
2 : if record ke 1 = 0
3 : then proses record
    simpan di buffer naikan counter
4 : else if record ke 2 = 0
5 :           then riser counter
6 :           proses record
              simpan pada file
7a: endif
    endif
7b: enddo
8 : end
Pengujian White Box testing - Contoh menterjemahkan pseudo code ke grafik alir
Contoh menterjemahkan pseudo code ke grafik alir

Nomor pada pseudo code berhubungan dengan nomor node. Apabila ditemukan kondisi majemuk (compound condition) pada pseudo code pembuatan grafik alir menjadi rumit. Kondisi majemuk mungkin terjadi pada operator Boolean (AND, OR, NAND, NOR) yang dipakai pada perintah if. Contoh :

if A or B
   then procedure x
   else procedure y
endif
Pengujian White Box Testing - kondisi majemuk (compound condition) pada pseudo code
kondisi majemuk (compound condition) pada pseudo code

Node dibuat terpisah untuk masing-masing kondisi A dan B dari pernyataan IF A OR B. Masing-masing node berisi kondisi yang disebut pridicate node dan mempunyai karakteristik dua atau lebih edge darinya.

Cyclomatic Complexity

Cyclomatic complexity adalah metrik software yang menyediakan ukuran kuantitatif dari kekompleksan logikal program. Apabila digunakan dalam konteks metode uji coba basis path untuk Pengujian White Box Testing, nilai yang dihitung untuk cyclomatic complexity menentukan jumlah jalur independen dalam basis set suatu program dan memberi batas atas untuk jumlah uji coba yang harus dikerjakan untuk menjamin bahwa seluruh perintah sekurang-kurangnya telah dikerjakan sekali

Jalur independent adalah jalur yang melintasi atau melalui program dimana sekurang-kurangnya terdapat proses perintah yang baru atau kondisi yang baru.

Cyclomatic Complexity
Cyclomatic Complexity

Path (jalur) yang didapatkan Dari gambar:

  1. Pertama = 1 – 11
  2. kedua = 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11
  3. Ketiga = 1 – 2 – 3 – 6 – 8 – 9 …: 10 – 1 – 11
  4. Keempat = 1 – 2 – 3 – 6 – 7 – 9 – 10 – 1 – 11
  5. 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
    Dimana:
    E = jumlah edge pada grafik alir
    N = jumlah node pada grafik alir
  3. Cyclomatix complexity V(G) juga dapat dihitung dengan rumus:
    V(G) = P + 1
    Dimana P = jumlah predicate node pada grafik alir

Pada Gambar 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

Melakukan Test Case

Metode uji coba basis path juga dapat diterapkan pada perancangan prosedural rinci atau program sumber untuk Pengujian White Box Testing. Prosedur rata-rata pada bagian berikut akan digunakan sebagai contoh dalam pembuatan test case.

PROCEDURE RATA-RATA
INTERFACE RESULT rata, total, input, total.valid
INTERFACE RESULT nilai, minim, max
TYPE NILAl (1:100) IS SCALAR ARRAY;
TYPE rata, total. input, total.valid, max.minim, jumlah IS SCALAR;
TYPE I IS INTEGER;
I = 1;
total. input = total. valid = 0;
jumlah = 0;
DO WHILE nilai(i) <> -999 .and. total.input < 100
      tambahkan total.input dengan 1;
      IF nilai(i) >= minimum .and. nilai(i} <=max;
            THEN tambahkan total.valid dengan I;
            jumlah=jumlah + nilai(i);
      ELSE skip;
      END IF
      tambahkan i dengan 1;
ENDDO
IF total. valid> 0
      THEN rata =jumlah/total. valid;
ELSE rata = -999;
ENDIF
END

Langkah-Iangkah pembuatan test case:

  1. Dengan mempergunakan perancangan prosedural atau program sumber sebagai dasar, digambarkan diagram alirnya.
Diagram Alir prosedur rata
Diagram Alir prosedur rata
Diagram Alir prosedur rata
Diagram Alir prosedur rata
  1. Tentukan cyclomatic complexity untuk diagram alir yang telah dibuat:
    • V(G) = 6 region
    • V (G) = 17 edge – 13 node + 2 = 6
    • V(G) = 5 predicate node + 1 = 6
  2. Tentukan independent path pada flowgraph Dari hasil perhitungan cyclomatic complexity terdapat 6 independent path yaitu:
    • Perama : 1-2-10-11-13
    • Kedua : 1-2-10-12-13
    • Ketiga : 1-2-3-10-11-13
    • Keempat : 1-2-3-4-5-8-9-2-..
    • Kelima : 1-2-3-4-5-6-8-9-2-..
    • Keenam : 1-2-3-4-5-6-7-8-9-2-…
  3. Buat test case yang akan mengerjakan masing-masing path pada basis set. Data yang dipilih harus tepat sehingga setiap kondisi dari predicate node dikerjakan semua.

Graph Metrik

Dikenal sebagai sebuah software yang dikembangkan untuk membantu uji coba basis path atau struktu data. Graph metrik adalah matrik empat persegi yang mempunyai ukuran yang sama dengan jumlah node pada flowgraph. Masing-masing baris dan kolom mempunyai hubungan dengan node yang telah ditentukan dan pemasukan data matrik berhubungan dengan hubungan (edge) antar node. Contoh sederhana pemakaian graph metrik dapat digambarkan sebagai berikut :

Graph matrik
Graph matrik

Hubungan bobot menyediakan tambahan informasi tentang aliran kontrol. Secara simpel hubungan bobot dapat diberi nilai 1 jika ada hubungan antara node atau nilai 0 jika tidak ada hubungan. Dapat juga hubungan bobot diberi tanda dengan:

  • Kemungkinan link (edge) dikerjakan
  • Waktu yang digunakan untuk proses selama traversal dari link
  • Memori yang diperlukan selama traversal link
  • Sumber daya yang diperlukan selama traversal link

Pengujian Loop

Loop merupakan kendala yang sering muncul untuk menerapkan algoritma dengan tepat. Uji coba loop merupakan teknik pengujian white box yang fokusnya pada validitas dari loop. Kelas loop yaitu : loop sederhana, loop tersarang, loop terangkai, loop tidak terstruktur. Pengujian terjadi dengan memvariasikan nilai batas loop. Contoh:

for (i = 0; i < MAX_INDEX; i++)

while (currentTemp >= MINIMUM_TEMPERATURE)

Loop Sederhana (Testing of Simple Loops)

  1. Lewati loop secara keseluruhan (skip the loop entirely)
  2. Hanya satu yang melalui loop (only one pass through the loop)
  3. melalui loop (two passes through the loop)
  4. m melalui loop, jika m < n (m passes the loop where m < n)
  5. n – 1, n, n+1 melewati loop

‘N’ adalah jumlah maksimum lintasan yang diizinkan melalui loop

  • Simple Looping atau dikenal juga dengan Basic Looping adalah perulangan yang sangat
  • sederhana yang akan mengeksekusi  program tanpa batasan waktu. Perulangan akan berhenti
  • ketika ada statement EXIT atau EXIT WHEN.
  • Sintak Dasar:
    Dibawah ini adalah sintak dasar penggunaan Simple Looping / Perulangan sederhana.
    1
    LOOP
    2
    (statement);
    3
    END LOOP;

Loop Bersarang (Testing of Nested Loops)

  1. Mulai dari lingkaran terdalam; Atur semua loop lainnya ke nilai minimum
  2. Lakukan tes loop sederhana untuk loop terdalam sambil menahan loop luar pada nilai parameter iterasi minimumnya; Tambahkan tes lain untuk nilai out-of-range atau dikecualikan
  3. Bekerja ke luar, melakukan tes untuk loop berikutnya, namun menjaga semua loop luar lainnya pada nilai minimum dan loop nested lainnya menjadi nilai “khas”
  4. Lanjutkan sampai semua loop telah diuji

Loop bersambung (Testing of Concatenated Loops)

  • Untuk loop independen, gunakan pendekatan yang sama seperti loop sederhana
  • Jika tidak, gunakan pendekatan yang diterapkan untuk loop bersarang

Loop tidak terstruktur (Testing of Unstructured Loops)

  • Mendesain ulang kode untuk mencerminkan penggunaan praktik pemrograman terstruktur
  • Bergantung pada desain yang dihasilkan, gunakan pengujian untuk loop sederhana, loop bersarang, atau loop concatenated

Referensi

http://universitaspendidikan.com/pengertian-white-box-dan-contoh-white-box-testing/ http://avi.staff.gunadarma.ac.id/Downloads/files/19070/M5+WhiteBox+Testing.pdf

Handy dan Susilo, J. (2014). Aplikasi Pengujian White Box IBII Online Jugde. Jurnal Informatika dan Bisnis, 3(2), 56-69.

Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005

Baca Juga:

Tinggalkan komentar

error: Content is protected !!