CLICK HERE FOR BLOGGER TEMPLATES AND MYSPACE LAYOUTS »

Kamis, 02 April 2009

Testing dan Implementasi "BLACKBOX TESTING"

BLACKBOX TESTING

Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karna itu ujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan metode whitebox.

Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya :
1. Fungsi-fungsi yang salah atau hilang
2. Kesalahan interface
3. Kesalahan dalam struktur data atau akses database eksternal
4. Kesalahan performa
5. kesalahan inisialisasi dan terminasi

Tidak seperti metode whitebox yang dilaksanakan diawal proses, ujicoba blackbox diaplikasikan dibeberapa tahapan berikutnya. Karena ujicoba blackbox dengan sengaja mengabaikan struktur kontrol, sehingga perhatiannya difokuskan pada informasi domain. Ujicoba didesain untuk dapat menjawab pertanyaanpertanyaan berikut :
1. Bagaimana validitas fungsionalnya diuji?
2. Jenis input seperti apa yang akan menghasilkan kasus uji yang baik ?
3. Apakah sistem secara khusus sensitif terhadap nilai input tertentu ?
4. Bagaimana batasan-batasan kelas data diisolasi?
5. Berapa rasio data dan jumlah data yang dapat ditoleransi oleh sistem?
6. Apa akibat yang akan timbul dari kombinasi spesifik data pada operasi sistem?

Dengan mengaplikasikan ujicoba blackbox, diharapkan dapat menghasilkan sekumpulan kasus uji yang memenuhi kriteria berikut :
1. kasus uji yang berkurang, jika jumlahnya lebih dari 1, maka jumlah dari ujikasus tambahan harus didesain untuk mencapai ujicoba yang cukup beralasan
2. Kasus uji yang memberitahukan sesuatu tentang keberadaan atau tidaknya suatu jenis kesalahan, daripada kesalahan yang terhubung hanya dengan suatu ujicoba yang spesifik Equivalence Partioning Equivalence partioning merupakan metode ujicoba blackbox yang membagi domain input dari program menjadi beberapa kelas data dari kasus ujicoba yang dihasilkan. Kasus uji penanganan single yang ideal menemukan sejumlah kesalahan (misalnya : kesalahan pemrosesan dari seluruh data karakter) yang
merupakan syarat lain dari suatu kasus yang dieksekusi sebelum kesalahan umum diamati.

Equivalence partioning berusaha untuk mendefinisikan kasus uji yang menemukan sejumlah jenis kesalahan, dan mengurangi jumlah kasus uji yang harus dibuat. Kasus uji yang didesain untuk Equivalence partioning berdasarkan pada evaluasi dari ekuivalensi jenis/class untuk kondisi input. Class-class yang ekuivalen merepresentasikan sekumpulan keadaan valid dan invalid untuk kondisi input. Biasanya kondisi inputb dapat berupa spesifikasi nilai numerik, kisaran nilai, kumpulan nilai yang berhubungan atau kondisi boolean.

Ekuivalensi class dapat didefinisikan dengan panduan berikut :
1. Jika kondisi input menspesifikasikan kisaran/range, maka didefinisikan 1 yang valid dan 2 yang invalid untuk equivalence class
2. Jika kondisi input memerlukan nilai yang spesifik, maka didefinisikan 1 yang valid dan 2 yang invalid untuk equivalence class
3. Jika kondisi input menspesifikasikan anggota dari himpunan, maka didefinisikan 1 yang valid dan 1 yang invalid untuk equivalence class
4. Jika kondisi input adalah boolean, maka didefinisikan 1 yang valid dan 1 yang invalid untuk equivalence class

Misalkan, terdapat data terpelihara untuk sebuah aplikasi perbankan otomatis. User dapat mengaksesnya dari komputer pribadinya dengan menyediakan password 6 digit, dan mengikuti serangkaian perintah keyword yang mengakses berbagai fungsi perbankan. Software yang digunakan untuk aplikasi perbankan menerima data dalam bentuk :
^ Area code – blank atau 3 digit nomor
^ Prefix – 3 dgit nomor yang tidak diawali oleh 0 atau 1
^ Suffix – 4 digit nomor
^ Password – 6 digit alphanumerik
^ Commands – ”check”, ”deposit”, ”bill pay”, dsb

Kondisi input yang dihubungkan dengan setiap elemen data untuk aplikasi perbankan dapat dispesifikasikan sebagai :

Area code : kondisi input, Boolean – area code boleh ada maupun tidak
Kondisi input, Range – nilai didefinisikan antara 200 dan 999, dengan beberapa
pengecualian khusus (misal : tidak ada nilai > 905) dan syarat (misal : seluruh area code memiliki angka 0 atau 1 pada posisi digit ke-2)

Prefix : kondisi input, Range – nilai yang dispesifikasikan > 200

Suffix : kondisi input, Value – sepanjang 4 digit

Password : kondisi input, Boolean – Password boleh ada maupun tidak kondisi input, Value – 6 string karakter

Command : kondisi input, Set – mengandung perintah-perintah yang ada diatas

Aplikasikan panduan untuk derivasi dari class-class yang ekuivalen, kasus uji untuk setiap domain input data item dapat di bentuk dan dieksekusi. Kasus uji dipilih sehingga sejumlah atribut dari equivalence class dieksekusi sekali saja.

Boundary Value Analysis

Sejumlah besar kesalahan cenderung terjadi dalam batasan domain input dari pada nilai tengah. Untuk alasan ini boundary value analysis (BVA) dibuat sebagai teknik ujicoba. BVA mengarahkan pada pemilihan kasus uji yang melatih nilai-nilai batas. BVA merupakan desain teknik kasus uji yang melengkapi equivalence partitioning. Dari pada memfokuskan hanya pada kondisi input, BVA juga menghasilkan kasus uji dari domain output.

Panduan untuk BVA hampir sama pada beberapa bagian seperti yang disediakan untuk equivalence partitioning :

1. Jika kondisi input menspesifikasikan kisaran yang dibatasi oleh nilai a dan b, kasus uji harus dibuat dengan nilai a dan b, sedikit diatas dan sedikit dibawah a dan b

2. Jika kondisi input menspesifikasikan sejumlah nilai, kasus uji harus dibuat dengan melatih nilai maksimum dan minimum, juga nilai-nilai sedikit diatas dan sedikit dibawah nilai maksimum dan minimum tersebut.

3. Aplikasikan panduan 1 dan 2 untuk kondisi output. Sebagai contoh, asumsikan tabel temperatur VS tabel tekanan sebagai output dari program analisis engineering. Kasus uji harus didesain untuk membuat laporan output yang menghasilkan nilai maksimum(dan minimum) yang mungkin untuk tabel masukan

4. Jika struktur data program internal telah mendeskripsikan batasan (misal : array ditetapkan maks. 100), maka desain kasus uji yang akan melatih struktur data pada batasan tersebut.

Kebanyakan pengembang software secara intuitif melakukan BVA pada beberapa tingkatan. Dengan mengaplikasikan panduan diatas, ujicoba batasan akan lebih lengkap, selain itu memiliki kemungkinan pendeteksian kesalahan yang lebih tinggi
Cause-Effect Graphing Techniques Caeuse-effect graphing merupakan desain teknik kasus ujicoba yang menyediakan representasi singkat mengenai kondisi logikal dan aksi yang berhubungan. Tekniknya mengikuti 4 tahapan berikut :

1. Causes (kondisi input), dan Effects (aksi) didaftarkan untuk modul dan identifier yang dtujukan untuk masing-masing
2. Causes-effect graph (seperti pada gambar dibawah) dibuat
3. Graph dikonversikan kedalam tabel keputusan
4. Aturan tabel keputusan dikonversikan kedalam kasus uji

Versi sederhana dari simbol graph cause-effect seperti dibawah ini. Terdapat hubungan causes ci dengan effects ei. Lainnya merupakan batasan relationship yang dapat diaplikasikan pada causes maupun effects.

0 komentar: