White Box Testing dan Black Box Testing , Perbedaannya Serta Contohnya.
I. White Box Testing
Pengertian White Box Testing Testing adalah cara pengujian dengan melihat ke dalam modul untuk meneliti kode-kode program yang ada, dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses bisnis yang dilakukan, maka baris-baris program, variabel, dan parameter yang terlibat pada unit tersebut akan dicek satu persatu dan diperbaiki, kemudian di-compile ulang.
engan menggunakan !hite box akan didapatkan kasus uji yang " # $enguji semua keputusan logikal # $enguji seluruh %oop yang sesuai dengan dengan batasannya # $enguji seluruh struktur data internal yang menjamin validitas
I.1 Kelebihan White Box Testing
# &esalahan %ogika igunakan pada sintaks 'i() dan pengulangan. imana White Box Testing akan mendet mendeteks eksii kondis kondisi-ko i-kondi ndisi si yang yang tidak tidak sesuai sesuai dan mendete mendeteksi ksi kapan kapan proses proses pengulangan akan berhenti. # &etidaksesuaian asumsi $enampilkan asumsi yang tidak sesuai dengan kenyataan, untuk di analisa dan diperbaiki. # &esalahan ketik *alaman +
$endeteksi bahasa pemrograman yang bersi(at case sensitive.
I.2. Kelemahan White Box Testing
ntuk perangkat lunak yang tergolong besar, White Box Testing dianggap sebagai strategi yang tergolong boros, karena akan melibatkan sumber daya yang besar untuk melakukannya.
I.. Basis Path Testing
Pengertian Basis Path Testing. Basis Path Testing memungkinkan perancang test case mendapatkan ukuran kompleks logical dari perancangan prosedural dan menggunakan ukuran ini sebagai petunjuk untuk mende(inisikan himpunan jalur yang akan diuji. Basis Path menggunakan notasi graph atau (lo! graph untuk menggambarkan aliran kontrolnya. %ingkaran node, menggambarkan satu atau lebih perintah prosedural. rutan proses dan keputusan dapat dipetakan dalam satu node. Tanda panah edge, menggambarkan aliran kontrol. /etiap node harus mempunyai tujuan node. 0egion adalah daerah yang dibatasi oleh edge dan node. Termasuk daerah diluar gra(ik alir.
I.!. Cyclomatic Com"lexity
Pengertian 1yclomatic 1omplexity. 1yclomatic 1omplexity merupakan suatu sistem pengukuran yang menyediakan ukuran kuantitati( dari kompleksitas logika suatu program. Pada Basis Path Testing, hasil dari cyclomatic complexity digunakan untuk menentukan banyaknya independent paths. 2ndependent path adalah sebuah kondisi pada program yang menghubungkan node a!al dengan node akhir. Terdapat 3 persamaan yang digunakan, yaitu" V(G)= E - N + 2 atau V(G)= P + 1
Keterangan#
*alaman 3
456 cyclomatic complexity untuk (lo! graph 5 76Jumlah edgepanah 86Jumlah nodelingkaran P6Jumlah predicate node
Contoh Testing White Box 1#
$enggunakan gra(ik aliran ini, kita dapat menghitung jumlah jalur independen melalui kode. &ami melakukan ini dengan menggunakan metrik disebut nomor cyclomatic $c1abe, +9:;, yang didasarkan pada teori gra(ik. 1ara termudah untuk menghitung jumlah siklomatik adalah dengan menghitung jumlah conditional < predikat diamond dan tambahkan +. alam contoh di atas, ada lima conditional . =leh karena itu, jumlah cyclomatic kami adalah ;, dan kami memiliki enam jalur independen melalui kode. Jadi kita sekarang dapat menghitungnya" +. +-3->-?-@-+A properti yang dimiliki oleh orang lain, tidak mempunyai uang untuk se!a 3. +-3->-?-;-+A properti yang dimiliki oleh orang lain, membayar se!a >. +-3->-+A properti yang dimiliki oleh pemain *alaman >
?. +-3-:-+A properti yang tersedia, tidak memiliki cukup uang @. +-3-:--+A properti yang tersedia, punya uang, tidak ingin membelinya ;. +-3-:--9-+A properti yang tersedia, punya uang, dan membelinya &ami ingin menulis kasus pengujian untuk memastikan bah!a setiap jalur yang akan diuji setidaknya sekali. /eperti dikatakan di atas, jumlah siklomatik adalah batas ba!ah pada jumlah kasus uji yang akan kita tulis. ji kasus yang ditentukan dengan cara ini adalah yang kami gunakan dalam pengujian basis patch.
Contoh Peng$%ian White Box 2# Ste" 1" 1ontoh prosedur di ba!ah ini menunjukkan bagaimana laporan algoritma
dipetakan ke node gra(ik, nomor di sebelah kiri. public double calculate(int amount) { -1-
double rushCharge = 0;
-1-
if (nextday.euals(!yes!) ) {
-"-
rushCharge = 1#.$0; %
-&-
double tax = amount ' .0"$;
-&-
if (amount = 1000) {
-#-
shipcharge = amount ' .0* + rushCharge; %
-$-
else if (amount = "00) {
-*-
shipcharge = amount ' .0, + rushCharge; %
--
else if (amount = 100) {
-,-
shipcharge = 1&."$ + rushCharge; %
--
else if (amount = $0) {
-10-
shipcharge = .$ + rushCharge; %
-11- else if (amount = "$) { -1"-
shipcharge = ."$ + rushCharge; % else {
-1&-
shipcharge = $."$ + rushCharge; %
*alaman ?
-1#- total = amount + tax + shipcharge; -1#- return total; % end calculate
iba!ah ini adalah (lo!chart dari contoh program diatas "
Ste" 2" $enentukan kompleksitas cyclomatic dari gra(ik aliran. 45 6 7 - 8 C 3 6 +9 - +? C 3 6 : Keterangan# 7 " Jumlah Busur atau %ink 8 " Jumlah /impul
2ni menjelaskan bah!a batas atas pada ukuran basis set. Drtinya, memberikan jumlah jalur independen yang perlu kita cari. Ste" " $enentukan dasar jalur independen Path +" + - 3 - > - @ - : - 9 - ++ - +> - +? Path 3" + - > - ? - +? Path >" + - > - @ - ; - +? Path ?" + - > - @ - : - - +? Path @" + - > - @ - : - 9 - +A - +? Path ;" + - > - @ - : - 9 - ++ - +3 - +? Path :" + - > - @ - : - 9 - ++ - +> - +?
*alaman @
Ste" !" $enyiapkan test cases bah!a pelaksanaan kekuatan setiap jalur di set dasar.
path + 3 > ? @ ; :
nextday amount yes +A no +@AA no >AA no +@A no :@ no >A no +A
expected result >A.? EEEE.EE >?@.:@ +:?.+3@ 9A.>:@ >9.?3@
[email protected]:@
Penyataan pengulangan statement di tengah-tengah blok diperlukan meskipun ada gambaran sampai akhir, Jika itu adalah simbol terminal tambahan. &embali dari ekspresi boolean diperlakukan jika ada penyataan statement II. Black Box Testing
alam testing dan implementasi sistem dikenal 3 metode pengujian yang populer, yakni pengujian black box dan pengujian !hite box, untuk maksud dan contoh pengujian !hite box beberapa !aktu lalu sudah pernah saya share, jadi untuk yang kali ini membahas black box testing dan contoh dari pengujian black box itu sendiri. Black-Box Testing merupakan pengujian yang ber(okus pada spesi(ikasi (ungsional dari perangkat lunak, tester dapat mende(inisikan kumpulan kondisi input dan melakukan pengetesan pada spesi(ikasi (ungsional program. II.1 Ciri&ciri black box testing
+. Black box testing ber(okus pada kebutuhan (ungsional pada so(t!are, berdasarkan pada spesi(ikasi kebutuhan dari so(t!are. 3. Black box testing bukan teknik alternati( daripada !hite box testing. %ebih daripada itu, ia merupakan pendekatan pelengkap dalam mencakup error dengan kelas yang berbeda dari metode !hite box testing. >. Black box testing melakukan pengujian tanpa pengetahuan detil struktur internal dari sistem atau komponen yang dites. juga disebut sebagai behavioral testing, speci(ication based testing, input
Pada black box testing terdapat jenis teknik disain tes yang dapat dipilih berdasarkan
pada tipe testing yang akan digunakan, yang diantaranya " +. 7Fuivalence 1lass Partitioning 3. Boundary 4alue Dnalysis >. /tate Transitions Testing *alaman ;
?. 1ause-7((ect 5raphing II.2. Kategori error yang akan diketah$i melal$i black box testing #
Gungsi yang hilang atau tak benar
7rror dari antar-muka
7rror dari struktur data atau akses eksternal database
7rror dari kinerja atau tingkah laku
7rror dari inisialisasi dan terminasi
II.. '($i)alence "artitioning
$erupakan metode black box testing yang membagi domain masukan dari suatu program ke dalam kelas-kelas data, dimana test cases dapat diturunkan HB1/9:aI. 7Fuivalence partitioning berdasarkan pada premis masukan dan keluaran dari suatu komponen yang dipartisi ke dalam kelas-kelas, menurut spesi(ikasi dari komponen tersebut, yang akan diperlakukan sama ekuivalen oleh komponen tersebut. apat juga diasumsikan bah!a masukan yang sama akan menghasilkan respon yang sama pula. 8ilai tunggal pada suatu partisi ekuivalensi diasumsikan sebagai representasi dari semua nilai dalam partisi. II.!. *nalisa "artisi "ada e($i)alence "artitioning black box
*alaman :
+. Tester menyediakan suatu model komponen yang dites yang merupakan partisi dari nilai masukan dan keluaran komponen. 3. $asukan dan keluaran dibuat dari spesi(ikasi dari tingkah laku komponen. >. 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. ?. Partisi untuk nilai valid dan tidak valid harus ditentukan. II.+. Contoh black box testing dengan e($i)alence "artitioning# Contoh Peng$%ian Black Box 1#
Pemeliharaan data untuk aplikasi bank yang sudah diotomatisasikan. Pemakai dapat memutar nomor telepon bank dengan menggunakan mikro komputer yang terhubung dengan pass!ord yang telah ditentukan dan diikuti dengan perintah-perintah. ata yang diterima adalah " - &ode area " kosong atau > digit. - Pre(ix
" > digit atau tidak dia!ali A atau +.
- /u((ix
" ? digit.
- Pass!ord " ; digit al(anumerik. - Perintah
" check, deposit, dll.
/elanjutnya kondisi input digabungkan dengan masing-masing data elemen dapat ditentukan sebagai berikut"
&ode area " kondisi input, Boolean kode area mungkin ada atau tidak kondisi input, range nilai ditentukan antara 3AA dan 999.
Pre(ix " kondisi input range K 3AA atau tidak dia!ali A atau +.
/u((ix " kondisi input nilai ? digit.
Pass!ord " kondisi input boolean pass!ordmungkin diperlukan atau tidak kondisi input nilai dengan ; karakter string.
Perintah " kondisi input set berisi perintah-perintah yang telah dide(inisikan.
Contoh Peng$%ian Black Box 2# 1ontoh lain pengujian black box berdasarkan kasus pengujian salah satu aplikasi, dalam hal ini misalnya nama admin yang benar yaitu LadminM dan kata sandinya yaitu L+3>M
Tabel pengujian black-box pada validasi login admin aplikasi sistem pakar
*alaman
Skenario "eng$%ian
o.
Test case
-asil yang dihara"kan
-asil "eng$%ian
Kesim"$lan
8ama" &ata sandi" -
/istem akan menolak akses login dan menampilkan pesan L Mohon isi dulu nama admin dan kata sandiM
/esuai harapan
4alid
3.
*anya mengisi data nama admin dan mengosongkan data kata sandi, lalu langsung mengklik tombol '$asuk).
8ama" admin &ata sandi" -
/istem akan menolak akses login dan menampilkan pesan L Mohon isi dulu salah satu data yang masih kosong M
/esuai harapan
4alid
>.
*anya mengisi data kata sandi dan mengosongkan data nama admin, lalu langsung mengklik tombol '$asuk).
8ama" &ata sandi" +3>
/istem akan menolak akses login dan menampilkan pesan L Mohon isi dulu salah satu data yang masih kosong M
/esuai harapan
4alid
?.
$enginputkan dengan kondisi salah satu data benar dan satu lagi salah, lalu langsung mengklik tombol '$asuk).
8ama" mimin salah. &ata sandi" +3> benar.
/istem akan menolak akses login dan menampilkan pesan L Nama pengguna atau kata sandi salah! Silakan ulangi dengan data yang benar M
/esuai harapan
4alid
@.
$enginputkan sintaks SQL Injection pada kedua data login, lalu mengklik tombol '$asuk).
8ama" ' =0 )+N6)+ &ata sandi" ' =0 )+N6)+
/istem akan menolak akses login dan menampilkan pesan L Nama pengguna atau kata sandi salah! Silakan ulangi dengan data yang benar M
/esuai harapan
4alid
;.
$enginputkan data login yang benar, lalu mengklik tombol '$asuk).
8ama" admin &ata sandi" +3>
/istem menerima akses login dan kemudian langsung menampilkan (orm pakar
/esuai harapan
4alid
+.
$engosongkan semua isian data login, lalu langsung mengklik tombol '$asuk).
Keterangan#
- 6 kosong tidak diisi.
II.. Kelebihan black box testing
-
apat memilih subset test secara e(ekti( dan e(isien apat menemukan cacat $emaksimalkan testing investmen *alaman 9
II./. Kelemahan black box testing - Tester tidak pernah yakin apakah P% tersebut benar-benar lulus uji. III. Perbedaan White Box 0 Black Box III.1. White box Str$kt$ral
ilakukan oleh penguji yang mengetahui tentang OD.
$elakukan testing pada so(t!are
ilakukan seiring dengan tahapan pengembangan so(t!are atau pada tahap testing.
III.2. 3etode BlackBox 4$ngsional
ilakukan oleh penguji 2ndependent.
$elakukan pengujian berdasarkan apa yang dilihat, hanya (okus terhadap (ungsionalitas dan output. Pengujian lebih ditujukan pada desain so(t!are sesuai standar dan reaksi apabila terdapat celah-celah bug
ilakukan setelah !hite box testing.
5*4T*6 P7ST*K*
+. http"<<+A. http"<
*alaman +A