Anda di halaman 1dari 10

Halaman 1

White Box Testing dan Black Box Testing ,


Perbedaannya Serta Contohnya.
I. White Box Testing
Pengertian White Box 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.
Dengan menggunakan white box akan didapatkan kasus uji yang :
Menguji semua keputusan logikal
Menguji seluruh Loop yang sesuai dengan batasannya
Menguji seluruh struktur data internal yang menjamin validitas
I.1 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 di analisa dan
diperbaiki.
Kesalahan ketik
Mendeteksi bahasa pemrograman yang bersifat case sensitive.
I.2. Kelemahan White Box Testing
Untuk perangkat lunak yang tergolong besar, White Box Testing dianggap
sebagai strategi yang tergolong boros, karena akan melibatkan sumber daya yang
besar untuk
melakukannya.
I.3. 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 mendefinisikan himpunan jalur
Halaman 2

yang akan diuji. Basis Path menggunakan notasi graph atau flow graph untuk
menggambarkan aliran kontrolnya.
Lingkaran (node), menggambarkan satu atau 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.
I.4. Cyclomatic Complexity
Pengertian Cyclomatic Complexity. Cyclomatic Complexity merupakan suatu
sistem pengukuran yang menyediakan ukuran kuantitatif dari kompleksitas logika
suatu program. Pada Basis Path Testing, hasil dari cyclomatic complexity digunakan
untuk menentukan banyaknya independent paths. Independent path adalah sebuah
kondisi pada program yang menghubungkan node awal dengan node akhir.
Terdapat 2 persamaan yang digunakan, yaitu:
V(G)=E - N +2 atau V(G)=P +1
Keterangan:
V(G)= cyclomatic complexity untuk flow graph G
E=Jumlah edge(panah)
N=Jumlah node(lingkaran)
P=Jumlah predicate node

Contoh Testing White Box 1:

















Halaman 3





Menggunakan grafik aliran ini, kita dapat menghitung jumlah jalur independen
melalui kode. Kami 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 kami adalah 6, dan kami memiliki enam jalur
independen melalui kode. Jadi kita 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)
Kami ingin menulis kasus pengujian untuk memastikan bahwa setiap jalur yang
akan diuji setidaknya sekali. Seperti dikatakan di atas, jumlah siklomatik adalah
batas bawah pada jumlah kasus uji yang akan kita tulis. Uji kasus yang ditentukan
dengan cara ini adalah yang kami gunakan dalam pengujian basis patch.

Contoh Pengujian White Box 2:
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)
Halaman 4

{
-6- shipcharge = amount * .08 + rushCharge;
}
-7- else if (amount >= 100)
{
-8- shipcharge = 13.25 + rushCharge;
}
-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 :
























Step 2: Menentukan kompleksitas cyclomatic dari grafik aliran.
V(G) = E - N + 2
Halaman 5

= 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 kita cari.

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

Penyataan pengulangan statement di tengah-tengah blok diperlukan meskipun ada
gambaran sampai akhir, Jika itu adalah simbol terminal tambahan.
Kembali dari ekspresi boolean diperlakukan jika ada penyataan (statement)

II. Black Box Testing
Dalam testing dan implementasi sistem dikenal 2 metode pengujian yang populer,
yakni pengujian black box dan pengujian white box, untukmaksud dan contoh pengujian
white box beberapa waktu 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 berfokus pada spesifikasi fungsional dari
perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan
pengetesan pada spesifikasi fungsional program.
II.1 Ciri-ciri black box testing
Halaman 6

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 disain 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
II.2. 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












Halaman 7



II.3. 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.
II.4. 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.
II.5. Contoh black box testing dengan equivalence partitioning:
Contoh Pengujian Black Box 1:
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:
Halaman 8

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.

Contoh Pengujian Black Box 2:
Contoh lain pengujian black box berdasarkan kasus pengujian salah satu aplikasi,
dalam hal ini misalnya nama admin yang benar yaitu admin dan kata sandinya yaitu
123
Tabel pengujian black-box pada validasi login admin aplikasi sistem pakar
No.
Skenario
pengujian
Test
case
Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1.
Mengosongkan semua
isian data login, lalu
langsung mengklik
tombol Masuk.
Nama: -
Kata
sandi: -
Sistem akan menolak
akses login dan
menampilkan pesan
Mohon isi dulu nama
admin dan kata sandi
Sesuai
harapan
Valid
2.
Hanya mengisi data
nama admin dan
mengosongkan data
kata sandi, lalu
langsung mengklik
tombol Masuk.
Nama:
admin
Kata
sandi: -
Sistem akan menolak
akses login dan
menampilkan pesan
Mohon isi dulu salah
satu data yang masih
kosong
Sesuai
harapan
Valid
3.
Hanya mengisi data
kata sandi dan
mengosongkan data
nama admin, lalu
langsung mengklik
tombol Masuk.
Nama: -
Kata
sandi:
123
Sistem akan menolak
akses login dan
menampilkan pesan
Mohon isi dulu salah
satu data yang masih
kosong
Sesuai
harapan
Valid
4.
Menginputkan dengan
kondisi salah satu data
benar dan satu lagi
salah, lalu langsung
mengklik tombol
Masuk.
Nama:
mimin
(salah).
Kata
sandi:
123
(benar).
Sistem akan menolak
akses login dan
menampilkan pesan
Nama pengguna atau
kata sandi salah! Silakan
ulangi dengan data yang
benar
Sesuai
harapan
Valid
Halaman 9

No.
Skenario
pengujian
Test
case
Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
5.
Menginputkan
sintaks SQL
Injection pada kedua
data login, lalu
mengklik tombol
Masuk.
Nama:
OR
1=1
Kata
sandi:
OR
1=1
Sistem akan menolak
akses login dan
menampilkan pesan
Nama pengguna atau
kata sandi salah! Silakan
ulangi dengan data yang
benar
Sesuai
harapan
Valid
6.
Menginputkan data
login yang benar, lalu
mengklik tombol
Masuk.
Nama:
admin
Kata
sandi:
123
Sistem menerima akses
login dan kemudian
langsung menampilkan
form pakar/admin.
Sesuai
harapan
Valid
Keterangan:
- = kosong (tidak diisi).

II.6. Kelebihan black box testing
- Dapat memilih subset test secara efektif dan efisien
- Dapat menemukan cacat
- Memaksimalkan testing investmen
II.7. Kelemahan black box testing
- Tester tidak pernah yakin apakah PL tersebut benar-benar lulus uji.
III. Perbedaan White Box & Black Box
III.1. White box (Struktural)
Dilakukan oleh penguji yang mengetahui tentang QA.
Melakukan testing pada software/program aplikasi menyangkut security dan
performance program tersebut (meliputi tes code, desain implementasi, security,
data flow, software failure).
Dilakukan seiring dengan tahapan pengembangan software atau pada tahap
testing.
III.2. Metode BlackBox (Fungsional)
Dilakukan oleh penguji Independent.
Melakukan pengujian berdasarkan apa yang dilihat, hanya fokus terhadap
fungsionalitas dan output. Pengujian lebih ditujukan pada desain software sesuai
standar dan reaksi apabila terdapat celah-celah bug/vulnerabilitas pada program
aplikasi tersebut setelah dilakukan white box testing.
Halaman 10

Dilakukan setelah white box testing.
DAFTAR PUSTAKA

1. http://dasar-pendidikan.blogspot.com/2013/06/black-box-testing-dan-contoh-
pengujian.html
2. http://ismimiitsme.blogspot.com/2013/10/pengertian-dan-perbedaan-white-
box.html
3. http://bangwildan.web.id/berita-176-white-box-testing--black-box-testing.html
4. http://dasar-pendidikan.blogspot.com/2013/06/contoh-white-box-testing.html
5. http://kafegue.com/contoh-pengujian-black-box-testing/