30 Mar 2014

Black Box dan White Box Testing

Bila kita belajar testing dan implementasi sistem, biasanya tidak terlepas yang namanya pengujian white box atau biasa disebut white box testing, lalu apa sebenarnya pengertian white box testing dan black box testing dan contoh nya itu sendiri ? Nah untuk mengetahui lebih lanjut mengenai pengertian white box  dan contoh dari white box testing anda bisa membacanya berikut ini :

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 :

  • 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 menjalankan strategi White Box Testing

  • Mendefinisikan semua alur logika
  • Membangun kasus untuk digunakan dalam pengujian
  • Mengevaluasi semua hasil pengujian
  • Melakukan pengujian secara menyeluruh

A) 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.

Tabel 1. Notasi Diagram Alir

white box testing
Untuk mengilustrasikan kegunaan dari diagram alir dapat dilihat pada gambar dibawah ini.

pengertian pengujian white box

Gambar bagian (a) digunakan untuk menggambarkan struktur kontrol program, sedangkan gambar bagian (b) setiap lingkaran disebut dengan flow graph node, merepresentasikan satu atau lebih perintah prosedural. Urutan dari kotak simbol proses dan belah ketupat simbol keputusan dapat digambarkan menjadi sebuah node, sedangkan anak panah disebut edges, menggambarkan aliran dari kontrol sesuai dengan diagram alir.

Sebuah edge harus berakhir pada sebuah node walaupun tidak semua node merepresentasikan perintah prosedural. Area yang dibatasi oleh edge dan node disebut region, area diluar graph juga dihitung sebagai region.

Setiap representasi rancangan prosedural dapat diterjemahkan kedalam flow graph. Gambar (a) dibawah ini merupakan bagian dari PDL (Program Design Language) dan flow graph-nya (perhatikan nomor untuk setiap perintahnya).

white box example

Ketika kondisi gabungan ditemukan, maka penggambaran flow graph akan menjadi lebih rumit. Kondisi gabungan biasanya muncul jika satu atau lebih operator Boolean (OR, AND, NAND, NOR) ditemukan dalam perintah, seperti terlihat pada gambar (b) dibawah ini :

white box contoh
Contoh yang kedua mengenai penggambaran flow chart dan flow graf:

white box contoh basis patch

Gambar 5. Contoh yang kedua metode basis path

B) Kompleksitas Siklomatis (Cyclomatic Complexity)


Kompleksitas Siklomatis adalah metriks perangkat lunak yang memberikan pengukuran kuantitatif terhadap kompleksitas logis suatu program. Ketika digunakan dalam konteks metode ujicoba berbasis alur, nilai yang didapat akan menentukan jumlah jalur independen dalam himpunan path, serta akan memberi nilai batas atas bagi jumlah pengujian yang harus dilakukan, untuk memastikan bahwa semua pernyataan telah dieksekusi sedikitnya satu kali.
Jalur independent adalah jalur yang terdapat dalam program yang mengintroduksi sedikitnya satu rangkaian pernyataan proses atau kondisi baru.
Berdasarkan contoh PDL yang pertama, maka jalur independent yang didapat:
Jalur 1 : 1 – 11
Jalur 2 : 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11
Jalur 3 : 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11
Jalur 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 sebelumnya Ketika ditetapkan dalam graf alur, maka independent path harus bergerak sedikitnya 1 edge yang belum pernah dilewati sebelumnya.
Kompleksitas cyclomatic dapat dicari dengan salah satu dari 3 cara berikut :
1. Jumlah region dari grafik alur mengacu kepada komplesitas cyclomatic
2. Kompleksitas cyclomatic V(G) untuk grafik alur G didefinisikan sebagai:
V(G) = E – N + 2, dimana E = jumlah edge, dan N = jumlah node
3. Kompleksitas cyclomatic V(G) untuk grafik alur G didefinisikan sebagai:
V(G) = P + 1, dimana P = jumlah predicates nodes yang diisikan dalam grafik alor G
Simpul Predikat adalah penggambaran suatu node yang memiliki satu atau lebih inputan, dan lebih dari satu output.
Berdasarkan flow graph gambar (b) diatas, maka kompleksitas cyclomatic-nya dapat di hitung sebagai berikut :

  1. Grafik alir 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.
Berdasarkan contoh PDL yang kedua, maka jalur independent yang didapat :
Jalur 1 : 1,2,3 – 4 – 5 – 10 – 11 – 12
Jalur 2 : 1,2,3 – 4 – 6 – 7 – 9 – 10 – 11 – 12
Jalur 3 : 1,2,3 – 4 – 8 – 9 – 10 – 11 – 12

Contoh pengujian white-box
Menurut kebutuhan segitiga diberikan di bawah ini untuk menyelesaikan proses dan menyelesaikan tes:
1) masukan kondisi:
1, kondisi 1: a + b c
2, kondisi 2: a + c b
3, kondisi 3: b + c a
4, kondisi 04:00
5, kondisi 5-0
6, 7 kondisi 6-0, kondisi 7: a == b
8, kondisi 8: a == c
9, kondisi 9: b == c
10, kondisi 10: a2 + b2 c2 ==
11, kondisi 11: a2 + b2 c2 ==
12, kondisi 12: c2 + a2 == b2
2) output:
1, tidak dapat terbentuk segitiga
2, sebuah segitiga sama sisi
3, segitiga sama kaki
4, segi tiga siku-siku
5, segitiga umum
6, beberapa pihak tidak memenuhi pembatasan

Kesetaraan Partisi (EP) / Analisis Nilai Batas (BVA)

Partisi kesetaraan (EP) dan analisis nilai batas (BVA) memberikan strategi untuk menulis kasus pengujian white-box. Tidak diragukan lagi, setiap kali Anda menghadapi segala jenis nomor atau membatasi dalam persyaratan, Anda harus waspada untuk masalah EP / BVA.
Sebagai contoh, seseorang mungkin ingin membeli rumah, tetapi mungkin atau mungkin tidak memiliki cukup uang. Mengingat EP / BVA, saya ingin memastikan kasus uji kami meliputi:
1. properti biaya $ 100, telah memiliki $ 200 (kelas kesetaraan “memiliki cukup uang”)
2. properti biaya $ 100, memiliki $ 50 (kelas kesetaraan, “tidak punya cukup uang”)
3. properti biaya $ 100, $ 100 maka (nilai batas)
4. properti biaya $ 100, memiliki $ 99 (nilai batas)
5. properti biaya $ 100, memiliki $ 101 (nilai batas)

Dengan loop pemrograman (seperti perulangan while), pertimbangkan EP dan melaksanakan loop di tengah operasional terikat mereka. Untuk BVA, Anda akan ingin memastikan bahwa Anda menjalankan loop tepat di bawah, sudah tepat, dan tepat di atas kondisi batas mereka.


Black Box Testing

Black Box pengujian adalah metode pengujian perangkat lunak yang menguji fungsionalitas aplikasi yang bertentangan dengan struktur internal atau kerja (lihat pengujian white-box). Pengetahuan khusus dari kode aplikasi / struktur internal dan pengetahuan pemrograman pada umumnya tidak diperlukan. Uji kasus dibangun di sekitar spesifikasi dan persyaratan, yakni, aplikasi apa yang seharusnya dilakukan. Menggunakan deskripsi eksternal perangkat lunak, termasuk spesifikasi, persyaratan, dan desain untuk menurunkan uji kasus. Tes ini dapat menjadi fungsional atau non-fungsional, meskipun biasanya fungsional. Perancang uji memilih input yang valid dan tidak valid dan menentukan output yang benar. Tidak ada pengetahuan tentang struktur internal benda uji itu. Metode uji dapat diterapkan pada semua tingkat pengujian perangkat lunak: unit, integrasi, fungsional, sistem dan penerimaan. Ini biasanya terdiri dari kebanyakan jika tidak semua pengujian pada tingkat yang lebih tinggi, tetapi juga bisa mendominasi unit testing juga.
  Teknik khas Black Box Testing desain meliputi:  
1. DECISION TABLE  
Decision Tablel adalah cara yang tepat belum kompak untuk model logika rumit, seperti diagram alur dan jika-then-else dan switch-laporan kasus, kondisi mengaitkan dengan tindakan untuk melakukan, tetapi dalam banyak kasus melakukannya dengan cara yang lebih elegan. Pada tahun 1960-an dan 1970-an berbagai “Decision Table Based bahasa seperti Filetab sangat populer untuk pemrograman bisnis.
  2. ALL-PAIRS TESTING  
All-pairs testing atau pairwise testing adalah metode pengujian perangkat lunak kombinatorial bahwa, untuk setiap pasangan parameter masukan ke sistem (biasanya, sebuah algoritma perangkat lunak), tes semua kombinasi yang mungkin diskrit parameter tersebut. Menggunakan vektor uji dipilih dengan cermat, hal ini dapat dilakukan jauh lebih cepat daripada pencarian lengkap semua kombinasi dari semua parameter, dengan parallelizing pengujian pasangan parameter. Jumlah tes biasanya O (nm), dimana n dan m adalah jumlah kemungkinan untuk masing-masing dua parameter dengan pilihan yang paling. Alasan di balik semua-All-pairs testing ini: yang sederhana dalam sebuah program umumnya dipicu oleh parameter masukan tunggal. Kategori paling sederhana berikutnya bug terdiri dari mereka bergantung pada interaksi antara pasangan parameter, yang bisa ditangkap dengan menguji semua-pasangan. yang melibatkan interaksi antara tiga atau lebih parameter secara progresif kurang umum [2], sementara pada saat yang sama waktu semakin lebih mahal untuk mencari oleh pengujian mendalam, yang sebagai batas pengujian lengkap semua input yang mungkin. Banyak metode pengujian menganggap semua-pasang pengujian sistem atau subsistem sebagai kompromi biaya-manfaat yang wajar antara sering komputasi tidak layak tingkat tinggi metode pengujian kombinatorial, dan metode yang kurang lengkap yang gagal untuk menjalankan semua pasangan yang mungkin dari parameter. Karena tidak ada teknik pengujian dapat menemukan semua bug, semua-pasangan pengujian biasanya digunakan bersama dengan berbagai teknik jaminan mutu seperti unit testing, eksekusi simbolik, pengujian bulu halus, dan memeriksa kode.
  3. STATE TRANSITION TABLE
Dalam teori automata dan logika sekuensial, state transition table adalah tabel yang menunjukkan apa yang negara (atau negara dalam kasus robot terbatas nondeterministic) suatu semiautomaton terbatas atau mesin finite state akan pindah ke, berdasarkan kondisi saat ini dan masukan lainnya. Sebuah tabel negara pada dasarnya adalah sebuah tabel kebenaran di mana beberapa input adalah kondisi saat ini, dan output termasuk negara berikutnya, bersama dengan keluaran lain. state transition table adalah salah satu dari banyak cara untuk menentukan mesin negara, cara lain menjadi diagram negara, dan persamaan karakteristik.
  4. EQUIVALENCE PARTITIONING
Equivalence partitioning adalah pengujian perangkat lunak teknik yang membagi data masukan dari unit perangkat lunak menjadi beberapa partisi data dari mana test case dapat diturunkan. Pada prinsipnya, uji kasus dirancang untuk menutupi setiap partisi minimal sekali. Teknik ini mencoba untuk mendefinisikan kasus uji yang mengungkap kelas kesalahan, sehingga mengurangi jumlah kasus uji yang harus dikembangkan. Dalam kasus yang jarang Equivalence partitioning juga diterapkan pada output dari komponen perangkat lunak, biasanya itu diterapkan pada masukan dari komponen diuji. Partisi ekivalen biasanya berasal dari spesifikasi persyaratan untuk atribut masukan yang mempengaruhi pengolahan benda uji. Sebuah masukan telah rentang tertentu yang rentang sah dan lainnya yang tidak valid. Data yang tidak valid di sini tidak berarti bahwa data tidak benar, itu berarti bahwa data ini terletak diluar dari partisi tertentu. Hal ini mungkin lebih tepat dijelaskan oleh contoh fungsi yang mengambil sebuah parameter bulan. Jangkauan bulan adalah 1 sampai 12, mewakili Januari-Desember. Jangkauan ini disebut partisi. Dalam contoh ini ada dua partisi lebih lanjut rentang tidak valid. Partisi pertama akan menjadi tidak valid <= 0 dan partisi tidak valid kedua akan menjadi> = 13.
 5. BOUNDRY VALUES ANALYSIS
Boundary value analysis merupakan suatu teknik pengujian perangkat lunak di mana tes dirancang untuk mencakup perwakilan dari nilai-nilai batas. Nilai-nilai di tepi sebuah partisi kesetaraan atau sebesar nilai terkecil di kedua sisi tepi. Nilai dapat berupa rentang masukan atau keluaran dari komponen perangkat lunak. Karena batas-batas tersebut adalah lokasi umum untuk kesalahan yang mengakibatkan kesalahan perangkat lunak mereka sering dilakukan dalam kasus-kasus uji.

Sumber
http://ayuliana_st.staff.gunadarma.ac.id/Downloads/files/2511/Pertemuan+04+-+%28Software+Testing+Techniques%29.pdf
http://blog-arul.blogspot.com/2012/12/pengujian-whitebox-testing.html#ixzz2NIeivxjn
Beizer, B. (1990). Software Testing Techniques. Boston, International Thompson Computer Press
http://billyped.blogspot.com/2013/07/definisi-black-box.html

0 komentar:

Posting Komentar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Eagle Belt Buckles