2.1 Equivalence
Partitioning
Equvalence partitioning
adalah metode black box testing yang membagi domain masukan dari suaatu program
ke dalam kelas-kelas data, dimana test cases dapat diturunkan.
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. Hal
ini digunakan untuk mengurangi masalah yang tidak mungkin untuk testing
terhadap tiap nilai dalam partisi. Hal ini digunakan untuk mengurangi masalah
yang tidak mungkin untuk testing terhadap tiap nilai masukan (lihat prinsip:
testing yang komplit tidak mungkin). Petunjuk pelaksanaan dalam melakukan equivalence partitioning, adalah sebagai
berikut:
·
Jika masukan mempunyai
jenjang tertentu, maka definisikan kategori valid dan tak valid terhadap
jenjang masukan tersebut.
·
Jika masukan membutuhkan
nilai tertentu, definisikan kategori valid dan tak valid.
·
Jika masukan membutuhkan
himpunan masukan tertentu, definisikan kategori valid dan tak valid.
·
Jika masukan adalah
Boolean, definisikan kategori valid dan tak valid.
Sedangkan
beberapa kombinasi yang mungkin dalam partisi ekuivalensi, adalah:
o Nilai
masukan yang valid atau tak valid.
o Nilai
numerik yang negatif, positif atau nol.
o String
yang kosong atau kosong.
·
Daftar (list) yang kosong atau tidak kosong.
·
File data yang ada dan
tidak, yang dapat dibaca/ditulis atau tidak.
·
Tanggal yang berada
setelah tahun 2000 atau sebelum tahun 2000, tahun kabisat atau bukan tahun
kabisat (terutama tanggal 29 Februari
2000 yang mempunyai proses tersendiri).
·
Tanggal yang berada di
bulan yang berjumlah 28, 29, 30, atau 31 hari.
·
Hari
pada hari kerja atau liburan akhir pekan.
·
Waktu
di dalam atau diluar jam kerja kantor
·
Tipe file data, seperti teks, databerformat, grafik, video, atau suara
·
Sumber atau tujuan file, seperti hard drive, floppy drive, CD-ROM, jaringan
2.2 Contoh
Ilustrasi
Suatu
fungsi, generate_grading, dengan
spesifikasi sebagai berikut :
Fungsi
mempunyai dua perintah, yaitu “Ujian” (diatas 75) dan “Tugas” (diatas 25). Fungsi
melakukan gradasi nilai kursus dalam rentang ‘A’ sampai ‘D’. Tingkat gradasi
dihitung dari kedua penanda, yang dihitung sebagai total penjumlahan nilai
“Ujian”dan nilai “Tugas”, sebagaimana dinyatakan berikut ini :
·
Lebih besar dari atau
sama dengan 70-‘A’
·
Lebih besar dari atau
sama dengan 50, tapi lebih kecil dari 70-‘B’
·
Lebih besar dari atau
sama dengan 30, tapi lebih kecil dari 50-‘C’
·
Lebih kecil dari 30-‘D’
Dimana bila nilai berada diluar rentang yang
diharapkan akan muncul pesan kesalahan (‘FM’). Semua masukan berupa integer.
2.3 Analisa
Partisi
Tester menyediakan suatu
model komponen yang dites yang merupakan partisi dari nilai masukan dan
keluaran komponen. Masukan dan keluaran dibuat dari spesifikasi dari tingkah
laku komponen
Partisi
adalah sekumpulan nilai, yang dipilih dengan suatu cara dimana semua nilai
didalam partisi, diharapkan untuk diperlakukan dengan cara yang sama oleh
komponen (seperti mempunyai proses yang sama).
Partisi untuk nilai valid
dan tidak valid harus ditentukan
Untuk fungsi generate_grading, terdapa dua masukan
·
Ujian
·
Tugas
Nilai masukan dapat berupa nilai bukan integer. Sebagai contoh :
·
Ujian = real number
·
Ujian = alphabetic
·
Tugas = real number
·
Tugas = alphabetic
Berikutnya, keluaran dari fungsi generate_grading,yaitu :
Partisi equivalence
juga termasuk nilai yang tidak valid. Sulit untuk mengidentifikasi keluaran
yang tidak dispesifikasikan, tapi harus tetap dipertimbangkan, seolah-olah
dapat dihasilkan/terjadi, misal :
·
Gradasi = E
·
Gradasi = A+
·
Gradasi = null
pada contoh ini, didapatkan 19 partisi equivalence.
Dalam pembuatan partisi equivalence, tester harus
melakukan pemilihan secara subyektif.
Contohnya, penambahan masukan dan keluaran tidak
valid. Karena subyektifitas
ini, maka partisi equivalence dapat
berbeda-beda untuk tester yang
berbeda
2.4 Pendesainan
Test Cases
Test
cases didesain untuk menguji partisi
Suatu test
case menyederhanakan hal-hal berikut
:
·
Masukan komponen
·
Partisi yang diuji
·
Keluaran yang diharapkan
dari test case
Dua
pendekatan pembuatan test case untuk
menguji partisi, adalah:
1. Test
cases terpisah dibuat untuk tiap partisi dengan one-to-one basis
2. Sekumpulan
kecil test cases dibuat untuk mencakup semua partisi. Test case yang sama dapat diulang test cases yang lain
2.5 Partisi
One-to-one Test Case
Test
cases untuk partisi masukan”Ujian”,
adalah sebagai berikut :
Test
Case
|
1
|
2
|
3
|
Masukan Ujian
|
44
|
-10
|
93
|
Masukan Tugas
|
15
|
15
|
15
|
Total Nilai
|
59
|
5
|
108
|
Partisi yang dites
|
0≤ e
≤ 75
|
e
< 0
|
e
< 75
|
Keluaran yang diharapkan
|
B
|
FM
|
FM
|
Suatu nilai acak 15 digunakan untuk masukan “Tugas”.
Test cases untuk
partisi masukan “Tugas”, adalah sebagai berikut :
Test
Case
|
4
|
5
|
6
|
Masukan Ujian
|
44
|
40
|
40
|
Masukan Tugas
|
8
|
-15
|
47
|
Total Nilai
|
48
|
25
|
87
|
Partisi yang dites
|
0 ≤ c
≤ 25
|
c
< 0
|
c
< 25
|
Keluaran yang diharapkan
|
C
|
FM
|
FM
|
Suatu nilai acak 40 digunakan untuk masukan “Ujian”.
Test cases
untuk partisi masukan tidak valid lainnya, adalah sebagai berikut ;
Test
Case
|
7
|
8
|
9
|
10
|
Masukan Ujian
|
48.7
|
‘q’
|
40
|
40
|
Masukan Tugas
|
15
|
15
|
12.76
|
‘g’
|
Total Nilai
|
63.7
|
?
|
52.76
|
108
|
Partisi yang dites
|
real
|
alpha
|
real
|
alpha
|
Keluaran yang diharapkan
|
FM
|
FM
|
FM
|
FM
|
Test cases untuk
partisi keluaran valid, adalah sebagai berikut :
Test
Case
|
11
|
12
|
13
|
Masukan Ujian
|
-10
|
12
|
32
|
Masukan Tugas
|
-10
|
5
|
13
|
Total Nilai
|
-20
|
17
|
45
|
Partisi yang dites
|
t ≤ 0
|
0≤t ≤
30
|
30≤t
≤ 50
|
Keluaran yang diharapkan
|
C
|
D
|
C
|
Test
Case
|
14
|
15
|
16
|
Masukan Ujian
|
40
|
60
|
80
|
Masukan Tugas
|
22
|
20
|
30
|
Total Nilai
|
66
|
80
|
110
|
Partisi yang dites
|
50 ≤
t ≤ 70
|
70 ≤
t ≤ 100
|
t ≤
100
|
Keluaran yang diharapkan
|
C
|
D
|
C
|
Nilai masukan “Ujian” dan “Tugas” diambil dari total
nilai “Ujian” dengan nilai “Tugas”. Dan akhirnya,
partisi keluaran tidak valid, adalah :
Test
Case
|
17
|
18
|
19
|
Masukan Ujian
|
-10
|
100
|
null
|
Masukan Tugas
|
0
|
10
|
null
|
Total Nilai
|
-10
|
110
|
?
|
Partisi yang dites
|
E
|
A+
|
null
|
Keluaran yang diharapkan
|
FM
|
FM
|
FM
|
Test caces
minimal untuk multi partisi.
Pada kasus test
cases di atas banyak yang mirip, tapi
mempunyai target partisi ekuivalensi yang berlainan. Hal ini memungkinkan untuk
mengembangkan test cases tunggal yang menguji multi partisi
dalam satu waktu.
Pendekatan ini memungkinkan tester untuk mengurangi jumlah test
cases yang dibutuhkan untuk mencakup
semua partisi ekuivalensi.
Contoh:
Test Case
|
1
|
MasukanUjian
|
60
|
MasukanTugas
|
20
|
Total Nilai
|
80
|
Keluaran yang
diharapkan
|
A
|
Test case di atas menguji tiga partisi:
-
0 ≤ Ujian ≤ 75
-
0 ≤ Tugas≤ 25
-
Hasil gradasi =
A : 70 ≤Ujian + Tugas≤ 100
Hal yang sama, test cases dapat dibuat untuk menguji multi
partisi untuk nilai tidak valid:
Test Case
|
2
|
MasukanUjian
|
-10
|
MasukanTugas
|
-15
|
Total Nilai
|
-25
|
Keluaran yang
diharapkan
|
FM
|
Test case di atas menguji tiga
partisi:
-
Ujian< 0
-
Tugas< 0
-
Hasil gradasi =
FM : Ujian + Tugas< 0
Perbandingan pendekatan one-to-one
dengan minimalisasi.
Kekurangan dari pendekatan one-to-one
membutuhkan lebih banyak test cases. Bagaimana juga identifikasi dari
partisi memakan waktu lebih lama daripada penurunan dan eksekusi test cases. Tiap penghematan untuk mengurangi
jumlah test cases, relatif kecil dibandingkan dengan biaya pemakaian teknik dalam
menghasilkan partisi.
Kekurangan dari pendekatan minimalisasi adalah sulitnya menentukan penyebab
dari terjadinya kesalahan. Hal ini akan menyebabkan debugging menjadi lebih menyulitkan, daripada pelaksanaan proses
testingnya sendiri.
2.6 Contoh
Pengujian
Sebuah aplikasi perbankan otomatis,
dimana aplikasi ini digunakan oleh nasabah untuk bertransaksi dengan bank menggunakan
ATM.
Untuk aksesnya menggunakan password/PIN dengan 4 digit dan diikuti
dengan serangkaian perintah kata kunci yang memicu berbagai fungsi perbankan.
Sebagian input data dari aplikasi
ini adalah :
q Password/PIN : 4 digit
q Pilihan menu :
“penarikan”, “pembayaran”
“informasi” , “transfer”, dll
Pembahasan ;
Kondisi input yang sesuai dengan
masing2 elemen data untuk aplikasi perbankan tersebut adalah :
q Password/PIN : kondisi input range(4 digit numeric)
q Pilihan menu : kondisi input himpunan (berisi beberapa
pilihan/perintah)
Data test case
yang didesain adalah :
Password/PIN
(kondisi input : range)
Ø Valid (0000, 1111, 1234, 9876, 999)
Ø Invalid (000, 789, 555, 999, 100)
Ø Invalid (00, 11, 99, 12, 89)
Pilihan menu
(kondisi input : himpunan)
Ø Valid (“penarikan”, “pembayaran”, “informasi”, “transfer”)
Ø Invalid (1, 3, 5, 0)
Ø Invalid (cancel,
stop, enter, clear)
0 komentar:
Post a Comment