Senin, 31 Mei 2010

PENGUJIAN BLACK BOX

 Pengujian black box berfokus pada persyaratan fungsional perangkat lunak. Disebut juga pengujian behavioral atau pengujian partisi. Pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian input yang sepenuhnya menggunakan semua persyaratan fungsional untuk
suatu program. Pengujian black box berusaha menemukan :
· Fungsi-fungsi yang tidak benar atau hilang
· Kesalahan interface
· Kesalahan dalam struktur data atau akses database eksternal.
· Kesalahan kinerja
· Inisialisasi dan kesalahan terminasi.
 Dengan mengaplikasikan teknik black box, maka kita menarik serangkaian test case yang
memenuhi kriteria berikut :
· Test case yang mengurangi, dengan harga lebih dari satu, jumlah test case
tambahan yang harus di desain untuk mencapai pengujian yang dapat
dipertanggungjawabkan.
· Test case yang member tahu kita sesuatu mengenai kehadiran atau ketidakhadiran
kelas kesalahan, daripada member tahu kesalahan yang berhubungan hanya
dengan pengujian spesifik.

PENGUJIAN WHITE BOX

· Pengujian White Box adalah metode desain test case yang menggunakan struktur control
desain procedural untuk memperoleh test case.
· Disebut juga pengujian glassbox.
· Dengan pengujian whitebox, perekayasa dapat melakukan :
1. Memberikan jaminan bahwa semua jalur independen pada suatu modul telah
digunakan paling tidak satu kali.
2. Menggunakan semua keputusan logis pada sisi true and false.
3. Mengeksekusi semua loop pada batasan mereka dan pada batas operasional mereka.
4. Menggunakan struktur data internal untuk menjamin validitasnya.

Atribut-Atribut Pengujian Perangkat Lunak yang Baik

1. Pengujian yang baik memiliki probabilitas yang tinggi untuk menemukan kesalahan.
2. Pengujian yang baik tidak redudan.
3. Pengujian yang baik seharusnya “jenis terbaik”,
4. Pengujian yang tidak boleh terlalu sederhana atau terlalu kompleks.

Karakteristik yang Membawa Perangkat Lunak Dapat Diuji

1. Operabilitas, Semakin baik dia bekerja, semakin efisien dia  diuji.
2. Obsaikervabilitas, “Apa yang anda lihat adalah apa yang anda uji”.
3. Kontralabilitas, “Semakin baik kita dapat mengontrol perangkat lunak, semakin banyak
pengujian yang dapat diotomasisasi dan dioptimalkan”.
4. Dekomposabilitas, “Dengan mengontrol ruang lingkup pengujian, kita dapat dengen lebih
cepat mengisolasi masalah dan melakukan pengujian kembali secara lebih halus”.
5. Kesederhaaan, “Semakin sedikit yang kita uji, semakin cepat kita dapat mengujinya’
6. Stabilitas, “Semakin sedikit perubahan, semakin sedikit gangguan dalam pengujian’.
7. Kemampuan untuk dapat dipahami, “Semakin banyak informasi yang kita miliki,
semakin halus pengujian yang akan dilakukan’.

Sasaran Pengujian Perangkat Lunak

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 dadalah pengujian yang mengungkapkan semua kesalahan yang
belum pernah ditemukan sebelumnya.

Dasar-Dasar Pengujian Perangkat Lunak

Pengembang perangkat lunak sesuai dengan sifatnya dasar mereka adalah manusia pembangun.
Pengujian mengharuskan pengembang membuang pemikiran-pemikiran
sebelumnya mengenai
“kebenaran” perangkat lunak yang baru saja dikembangkan dan mengatasi konflik minat yang
terjadi pada saat kesalahan ditemukan.

TEKNIK PENGUJIAN PERANGKAT LUNAK

Pengujian Perangkat Lunak adalah elemen kritis dari jaminan kualitas perangkat lunak
dan merepresentasikan kajian pokok dari spesifikasi, desain dan pengkodean.

Teknik Pengujian White Box dan Black Box


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.

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.

Black Box Testing dan White Box Testing

  • Black box testing
    1. Menguji fungsi-fungsi khusus dari aplikasi.
    2. 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
    1. Untuk mengetahui cara kerja suatu perangkat lunak secara internal
    2. 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
      • Menguji struktur data internal

PERANCANGAN PENGUJIAN PERANGKAT LUNAK BERORIENTASI OBYEK

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.

PEMANFAATAN MACROMEDIA FLASH 8 UNTUK PEMBUATAN SOAL MULTIPLE CHOICE part 3


C.   PENGISIAN TEKS SOAL DAN TEKS JAWABAN
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

PEMANFAATAN MACROMEDIA FLASH 8 UNTUK PEMBUATAN SOAL MULTIPLE CHOICE part 2


B.  PEMBUATAN BLANKO UNTUK SOAL DAN JAWABAN
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.