Equivalence Partitioning
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:
- · Nilai masukan yang valid atau tak valid.
- · Nilai numerik yang negatif, positif atau nol.
- · 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
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.
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
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. 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.
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 :
·
Password/PIN : 4 digit
·
Pilihan menu : “penarikan”, “pembayaran”“informasi”
, “transfer”, dll
Kondisi input yang sesuai dengan masing2 elemen data untuk
aplikasi perbankan tersebut adalah :
·
Password/PIN : kondisi input range(4 digit numeric)
·
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)
Referensi
media masa
Komentar
Posting Komentar