Tehnik Pengujian white-box berfokus pada struktur control program. Test case dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan bahwa semua kondisi logis telah diuji. Pengujian basic path, tehnik pengujian white-box, menggunakan grafik (matriks grafiks) untuk melakukan serangkaian pengujian yang independent secara linear yang akan memastikan cakupan.
Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan tehnik white-box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi. Pengujian black-box didesain untuk mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program.
Tehnik pengujian black-box berfokus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan menpartisi domain input dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam.
Metode pengujian graph-based mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi ekuivalensi membagi domain input ke dalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa kemampuan program untuk menangani data pada batas yang dapat diterima.
Metode pengujian yang terspesialisasi meliputi sejumlah luas kemampuan perangkat lunak dan area aplikasi. GUI, arsitektur client atau server, dokumentasi dan fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan tehnik khusus untuk pengujian perangkat lunak.
Adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean.
Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas.
Meningkatnya visibilitas (kemampuan) perangkat lunak sebagai suatu elemen sistem dan “biaya” yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya perencanaan yang baik melalui pengujian yang teliti. Pada dasarnya, pengujian merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat dianggap sebagai hal yang merusak daripada membangun.
Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah:
1.Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan
2.Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya
3.Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya
Sasaran itu berlawanan dengan pandangan yang biasanya dipegang yang menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada kesalahan yang ditemukan. Data yang dikumpulkan pada saat pengujian dilakukan memberikan indikasi yang baik mengenai reliabilitas perangkat lunak dan beberapa menunjukkan kualitas perangkat lunak secara keseluruhan, tetapi ada satu hal yang tidak dapat dilakukan oleh pengujian, yaitu pengujian tidak dapat memperlihatkan tidak adanya cacat, pengujian hanya dapat memperlihatkan bahwa ada kesalahan perangkat lunak.
Sebelum mengaplikasikan metode untuk mendesain test case yang efektif, perekayasa perangkat lunak harus memahami prinsip dasar yang menuntun pengujian perangkat lunak, yaitu:
Øsemua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan, maksudnya mengungkap kesalahan dari cacat yang menyebabkan program gagal.
ØPengujian harus direncanakan lama sebelum pengujian itu mulai, maksudnya semua pengujian dapat direncanakan dan dirancang sebelum semua kode dijalankan.
ØPrinsip Pareto berlaku untuk pengujian perangkat lunak, maksudnya dari 80% kesalahan yang ditemukan selama pengujian dapat ditelusuri sampai 20% dari semua modul program.
ØPengujian harus mulai “dari yang kecil” dan berkembang ke pengujian “yang besar”, Selagi pengujian berlangsung maju, pengujian mengubah focus dalam usaha menemukan kesalahan pada cluster modul yang terintegrasi dan akhirnya pada sistem.
ØPengujian yang mendalam tidak mungkin karena tidak mungkin mengeksekusi setiap kombinasi jalur skema pengujian dikarenakan jumlah jalur permutasi untuk program menengah pun sangat besar.
ØUntuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independent
Dalam lingkungan yang ideal, perekayasa perangkat lunak mendesain suatu program computer, sebuah sistem atau produk dengan testabilitas dalam pikirannya. Hal ini memungkinkan individu yang berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah. Testabilitas adalah seberapa mudah sebuah program computer dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi lebih mudah. Procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.
Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut, digunakan 4 kategori yang berbeda dari tehnik desain test case: Pengujian white-box, pengujian black-box, Integrasi Bottom-Up dan Integrasi Top-Down.
Test input dan output untuk fungsi yang ada tanpa memperhatikan prosesnya
Beberapa jenis kesalahan yang dapat diidentifikasi :
Fungsi tidak benar atau hilang
Kesalahan antar muka
Kesalahan pada struktur data (pengaksesan basis data)
Kesalahan inisialisasi dan akhir program
Kesalahan performasi.
White Box Testing
Untuk mengetahui cara kerja suatu perangkat lunak secara internal
Untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur kendali dari prosedur yang dirancang
Pelaksanaan pengujian white box :
Menjamim seluruh independent path dieksekusi paling sedikit satu kali. Independent path adalah jalur dalam program yang menunjukkan paling sedikit satu kumpulan proses ataupun kondisi baru.
Menjalani logical decision pada sisi dan false
Mengeksekusi pengulangan (looping) dalam batas-batas yang ditentukan
Pengujian adalah suatu proses pengeksekusian program yang bertujuan untuk menemukan kesalahan (Berard, 1994). Pengujian sebaiknya menemukan kesalahan yang tidak disengaja dan pengujian dinyatakan sukses jika berhasil memperbaiki kesalahan tersebut. Selain itu, pengujian juga bertujuan untuk menunjukkan kesesuaian fungsi-fungsi perangkat lunak dengan spesifikasinya. Pengujian dapat dikategorikan atas : 1. Pengujian terhadap proses pengembangan sistem dan dokumendokumen pendukung. Proses berarti sejumlah aktivitas yang didukung oleh dokumen yang mendeskripsikan aktivitas-aktivitas. 2. Pengujian terhadap analisis dan model perancangan. Dalam sistem berorientasi objek, pengujian model analisis dan perancangan adalah hal yang sangat penting. 3. Pengujian secara statik dan dinamik untuk implementasi. Tujuannya adalah mencari kesalahan sedini mungkin dalam proses, tetapi kesalahan dalam kode untuk sistem yang besar dan kompleks tidak dapat dihindarkan. Pengujian statik merupakan inspeksi kode untuk menemukan kesalahan logic. Pengujian dinamik merupakan eksekusi dengan data uji untuk menemukan kesalahan dalam kode. Perangkat lunak berorientasi objek berbeda dari perangkat lunak procedural (konvensional) dalam hal analisis, perancangan, struktur dan teknik-teknik pengembangannya. Bahasa pemrograman berorientasi objek mempunyai ciri-ciri adanya pembungkusan (encapsulation), keanekaragaman (polymorphism), dan pewarisan (inheritance) yang membutuhkan dukungan pengujian tertentu. Fokus pengujian perangkat lunak berorientasi objek dimulai pada hasil analisisnya, dilanjutkan pada hasil perancangannya, dan diakhir pada hasil pemrogramannya. Model yang dihasilkan pada analisis dan perancangan harus diperiksa terutama dalam hal : 1. Semantic correctness, yaitu kesesuaian model dengan domain permasalahan di dunia nyata. Jika model merefleksikan dunia nyata secara akurat, berarti model tersebut benar secara semantik, dan 2. Consistency, yaitu kesesuaian kelas dengan objek turunannya maupun kesesuaian asosiasi kelas dengan kelas lainnya.
1.Klik pada layer pertanyaan --> klik pada frame ke-2 --> ubah dulu kursor menjadi Text Tool (V) -->klik pada kotak Soal No. -->ketik tulisan agar menjadi Soal No.1, salanjutnya klik pada kotak soal --> ketik tulisan berikut :
Diketahui unsure-unsur P, Q, R, S, T dengan nomor atom berturut-turut 1, 6, 7, 11, 17. Pasangan unsure yang dapat membentuk ikatan ion adalah…..
a.Klik pada kotak jawaban A --> ketik tulisan P dan R
b.Klik pada kotak jawaban B --> ketik tulisan P dan T
c.Klik pada kotak jawaban C --> ketik tulisan Q dan R
d.Klik pada kotak jawaban D --> ketik tulisan S dan P
e.Klik pada kotak jawaban E --> ketik tulisan S dan T
2.Ulangi langkah 1 untuk mengetik soal No.2 sampai soal No.30
3.Langkah berikutnya setelah semua soal dan jawaban selesai dimasukkan adalah memberikan tambahan script untuk opsi jawaban yang benar didalam setiap nomor soal, misalkan : Soal No.1 --> jawaban yang benar adalah opsi E --> cara merubahnya sebagai berikut :
a.Klik layer pertanyaan --> klik frame ke-2
b.Klik opsi jawaban E (khususnya huruf ‘E’)agar aktif
c.Tekan tombol F9 untuk masuk ke panel action
d.Tambahkan script “skor++”
SEMULA
SESUDAH
On (release){
gotoAndPlay(3) ;
}
On (release){
gotoAndPlay(3) ;
}
4.Ulangi langkah nomor 3 untuk menyelesaikan soal nomor 2 sampai soal nomor 30
1.Klik pada layer action dan klik di frame ke-2 -->tekan dan tahan tombol keyboard Ctrl +Shift secara bersamaan, kemudian klik pada frame ke-32 miliknya layer backround.
2.Setelah itu tekan tombol keyboard F6 untuk memasukkan Insert Keyframes.
3.Klik pada layer pertanyaan agar layer ini yang aktif -->klik pada frame ke-2 -->tekan tombol Shift, kemudian klik pada frame ke-32 agar frame 2 s.d 32 terblok hitam -->klik kanan mouse -->pilih pada pilihan Remove Frames.
4.Klik layer pertanyaan -->klik pada frame ke-2 -->klik kanan mouse -->pilih pada pilihan Insert Blank Keyframe.
5.Klik layer pertanyaan -->klik pada frame ke-2 -->ubahlah kursor menjadi text tool (T), kemudian lakukan pengaturan pada panel properties sebagai berikut :
a.Pilih Text Type pada pilihan : Dynamic Text
b.Pilih jenis huruf, misalkan : Tahoma
c.Pilih ukuran huruf, misalkan : 16
d.Pilih warna huruf, misalkan : biru muda
e.Pilih line type pada pilihan : Multiline
f.Buat kotak di stage untuk tempat menuliskan soal dngan ukuran 22,5 x 3 cm dan buat juga kotak sekaligus ditulis tulisan “Soal No.”
6.Masih di layer pertanyaan pada frame ke-2 -->ubahlah kursor menjadi text tool (T), kemudian lakukan pengaturan pada panel properties sebagai berikut :
a.Warna huruf, misalkan menjadi kuning, lainnya sama seperti langkah 6.a-b-c-e
b.Buat kotak di stage untuk tempat menuliskan jawaban soal pilihan berganda dengan ukuran 20 x 1,5 cm
c.Buat kotak di stage yang berukuran 1 x 1 cm untuk tempat menuliskan teks huruf “A”, “B”, “C”, “D”, dan “E”
7.Masih di layer pertanyaan pada frame ke-2 -->ubah kursor menjadi Selection Tool (V), kemudian :
a.Klik tekx “A” agar aktif -->tekan tombol keyboard F8 sehingga muncul tampilan Convert to Symbol. Isikan pada bagian Name : tulisan 1A, dan pada Type : pilihlah Button. Setelah selesai klik ok.
b.Tekan tombol keyboard F9 untuk masuk ke panel actions, sehingga tampilan panel menjadi Actions-Button, kemudian ketikkan script :
On (release){
gotoAndPlay(3) ;
}
c.Lakukan hal yang sama seperti langkah 7.a dan 7.b tetapi untuk teks “B”; teks “C”; teks “D”; dan teks “E”. jangan lupa mengganti pada Name : 1B; Name : 1C; Name : 1D; dan Name : 1E.
8.Masih di layer pertanyaan pada frame ke-2 -->ubah kursor menjadi Selection Tool (V), lalu klik dobel pada tulisan “A” sehingga tampilan berubah dengan cara :
a.Klik pada bagian “Over”--> klik kanan mouse --> pilih Insert Keyframes --> ubahlah warnanya, misalkan menjadi merah dengan cara klik pada panel Color
b.Klik pada bagian “Down” --> klik kanan mouse --> pilih Insert Keyframes --> ubahlah warnanya, misalkan menjadi biru muda dengan cara klik pada panel Color
c.Klik pada bagian “Hit” --> klik kanan mouse --> pilih Insert Keyframes --> ganti kursor menjadi Rectangles Tool (R) --> buat kotak bujur sangkar berwarna hijau yang menutupi tulisan “A”
d.Setelah selesai klik tulisan scene 1 untuk kembali ke layar utama
9.Ulangi langkah 8 untuk opsi jawaban pilihan ganda B sampai E
10.Menggandakan blangko soal dan jawaban yang telah kita buat pada langkah 4 sampai langkah 9 untuk digandakan di layer pertanyaan pada frame ke-3 sampai frame ke-31. Caranya:
a.Klik layer pertanyaan --> klik frame ke-2 --> klik kanan mouse --> pilih pada pilihan copy frames
b.Klik pada frame ke-3 --> klik kanan mouse --> pilih pada pilihan Paste frames
c.Ulangi langkah 10.b, tetapi untuk frame ke-4 s.d. frame ke-31
d.Jika benar akan dihasilkan 30 soal, tetapi soalnya semuanya sama
11.Mengubah script pada opsi pilihan jawaban A-B-C-D-E untuk soal nomor 2 sampai nomor 30 agar pada saat di klik pada jawaban tersebut, maka akan menuju ke soal berikutnya. Caranya sebagai berikut :
a.Klik pada layer pertanyaan --> pilih frame ke-3 untuk masuk ke soal nomor 2
b.Klik pada opsi jawaban A sehingga aktif --> tekan tombol keyboard F9 untuk masuk ke panel action à ubahlah script yang ada yaitu dari gotoAndPlay(3) diubah menjadi gotoAndPlay(4) yang diubah angkanya dari angka 3 menjadi angka 4 --> tekan F9 lagi untuk menutupnya.
c.Ulangi langkah 11.a dan langkah 11.b untuk opsi jawaban B, C, D, dan E (lihat table berikut untuk mempermudah dalam pengeditan script)
Soal Nomor
Nomor frame pada layer pertanyaan
Opsi jawaban
Script sebelum
Script sesudah
1
2
A– B – C – D - E
gotoAndPlay(3)
gotoAndPlay(3)
2
3
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(4)
3
4
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(5)
4
5
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(6)
5
6
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(7)
6
7
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(8)
7
8
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(9)
8
9
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(10)
9
10
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(11)
10
11
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(12)
11
12
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(13)
12
13
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(14)
13
14
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(15)
14
15
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(16)
15
16
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(17)
16
17
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(18)
17
18
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(19)
18
19
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(20)
19
20
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(21)
20
21
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(22)
21
22
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(23)
22
23
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(24)
23
24
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(25)
24
25
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(26)
25
26
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(27)
26
27
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(28)
27
28
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(29)
28
29
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(30)
29
30
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(31)
30
31
A – B – C – D - E
gotoAndPlay(3)
gotoAndPlay(32)
Jika pengeditan script benar, maka pada saat kita klik opsi jawaban akan menuju ke soal berikutnya.